<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.11/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.11/ http://www.mediawiki.org/xml/export-0.11.xsd" version="0.11" xml:lang="en">
  <siteinfo>
    <sitename>MediaWiki</sitename>
    <dbname>mediawikiwiki</dbname>
    <base>https://www.mediawiki.org/wiki/MediaWiki</base>
    <generator>MediaWiki 1.43.0-wmf.13</generator>
    <case>first-letter</case>
    <namespaces>
      <namespace key="-2" case="first-letter">Media</namespace>
      <namespace key="-1" case="first-letter">Special</namespace>
      <namespace key="0" case="first-letter" />
      <namespace key="1" case="first-letter">Talk</namespace>
      <namespace key="2" case="first-letter">User</namespace>
      <namespace key="3" case="first-letter">User talk</namespace>
      <namespace key="4" case="first-letter">Project</namespace>
      <namespace key="5" case="first-letter">Project talk</namespace>
      <namespace key="6" case="first-letter">File</namespace>
      <namespace key="7" case="first-letter">File talk</namespace>
      <namespace key="8" case="first-letter">MediaWiki</namespace>
      <namespace key="9" case="first-letter">MediaWiki talk</namespace>
      <namespace key="10" case="first-letter">Template</namespace>
      <namespace key="11" case="first-letter">Template talk</namespace>
      <namespace key="12" case="first-letter">Help</namespace>
      <namespace key="13" case="first-letter">Help talk</namespace>
      <namespace key="14" case="first-letter">Category</namespace>
      <namespace key="15" case="first-letter">Category talk</namespace>
      <namespace key="90" case="first-letter">Thread</namespace>
      <namespace key="91" case="first-letter">Thread talk</namespace>
      <namespace key="92" case="first-letter">Summary</namespace>
      <namespace key="93" case="first-letter">Summary talk</namespace>
      <namespace key="100" case="first-letter">Manual</namespace>
      <namespace key="101" case="first-letter">Manual talk</namespace>
      <namespace key="102" case="first-letter">Extension</namespace>
      <namespace key="103" case="first-letter">Extension talk</namespace>
      <namespace key="104" case="first-letter">API</namespace>
      <namespace key="105" case="first-letter">API talk</namespace>
      <namespace key="106" case="first-letter">Skin</namespace>
      <namespace key="107" case="first-letter">Skin talk</namespace>
      <namespace key="486" case="first-letter">Data</namespace>
      <namespace key="487" case="first-letter">Data talk</namespace>
      <namespace key="710" case="first-letter">TimedText</namespace>
      <namespace key="711" case="first-letter">TimedText talk</namespace>
      <namespace key="828" case="first-letter">Module</namespace>
      <namespace key="829" case="first-letter">Module talk</namespace>
      <namespace key="1198" case="first-letter">Translations</namespace>
      <namespace key="1199" case="first-letter">Translations talk</namespace>
      <namespace key="2600" case="first-letter">Topic</namespace>
      <namespace key="5500" case="first-letter">Newsletter</namespace>
      <namespace key="5501" case="first-letter">Newsletter talk</namespace>
    </namespaces>
  </siteinfo>
<page arvcontinue="20240709005800|6624241">
  <title>Wikimedia Language engineering/Incubator conversations</title>
  <ns>0</ns>
  <id>1886669</id>
  <revision>
    <id>6624044</id>
    <parentid>6476169</parentid>
    <timestamp>2024-07-09T01:12:14Z</timestamp>
    <contributor>
      <username>SSethi (WMF)</username>
      <id>7688832</id>
    </contributor>
    <comment>Add redirect to "Future of Language Incubation" page</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="16857" xml:space="preserve">#Redirect [[Future of Language Incubation]]

{{Tracked|T362368}}

{{Wikimedia engineering project information
| name = Incubator conversations
| description = Gather recommendations for improving the social and technical infrastructure to support existing and new languages
| start = 2023-12-15
| end = 
| group = [[Wikimedia Language engineering]]
| team = [[User:SSethi (WMF)]], [[User:MMunyoki (WMF)]], [[User:Aaharoni-WMF]]
}}

= High level objectives and key results =
'''Objective 1''' - There is a clear picture of the state of languages and the process of supporting existing and new languages to the Wikimedia movement. This objective is part of the [[metawiki:Wikimedia_Foundation_Annual_Plan/2023-2024|Wikimedia Foundation’s Annual Plan 2023-24]]. 

'''KR 2''' - By Q4, identify 3 key recommendations for improving the social and technical infrastructure to support existing and new languages.

Deliverable; Proposal on Language onboarding process recommendations.

= Overview =
The [https://incubator.wikimedia.org/ Incubator] was launched in 2006 with the assumption that its users would have prior wiki editing knowledge. While editing on Wikimedia wikis has significantly improved since then, the Incubator hasn't received these updates due to technical limitations. Currently, it takes several weeks for a wiki to graduate from the Incubator and only around 12 wikis are created each year &lt;ref&gt;https://incubator.wikimedia.org/wiki/Incubator:Site_creation_log&lt;/ref&gt;, showing a significant bottleneck. Various stakeholders have highlighted issues such as the absence of Wikidata, integration of content translation, and complex editing processes, affecting the user experience of both content creators &amp; reviewers. The Wayúu community even created their own version of the Incubator &lt;ref&gt;https://wikilenguasindigenas.org/es/colaborar-en-wikimedia/&lt;/ref&gt; to improve the editing experience for their members. 

The aim of these discussions is to propose technical recommendations based on existing research and resources. These suggestions will be prioritized for implementation in the Wikimedia Foundation's upcoming 2024-25 annual plan. Participants in these conversations will include language committee members, software engineers, linguists, wiki community leaders, researchers, analysts, and Incubator advocates.

= Current technical challenges =
Existing research and materials on the topic (see sections below) reveal technical challenges in every phase of language onboarding: adding new languages to the Incubator, developing and reviewing content, and creating a wiki site when a language graduates from Incubator. Each phase is slow, manual, and complex, indicating the need for improvement.

'''1. Manual complexity in adding new languages to Incubator'''

* Involves editing multiple wiki pages with advanced templates and creating Phabricator tasks.
* Tracking, approving, and rejecting requests by Language Committee members is also a labor-intensive manual process.

'''2. Complexities in developing and reviewing content in Incubator'''

* New contributors face challenges with complex and repetitive wikitext and bureaucratic procedures.
* Essential features like integration with ContentTranslation and Wikidata are missing, making editing cumbersome.
* Numerous content restrictions, such as the inability to search for content, adding citations and uploading files, hinder the process.
* Experienced volunteers reviewing content quality have to manually track disparate wiki pages and talk pages.
* Editing from a mobile device within the Incubator is extremely difficult.
* Lack of support for essential tools like appropriate keyboards, online dictionaries, spell checks, and grammar tools for many small and underserved languages.
* Finding the right translations for technical terms is a challenge in several communities.
* Machine translation is not available for smaller languages.

'''3. Slow wiki site creation process'''

* After Language Committee approval, creating wikis takes several days or even weeks.
* Manual steps for engineers involves configuring domains, setting up databases, and installing components like MediaWiki, Parsoid, and Wikidata integration.
* Maintenance and closure processes for wikis are also manual and time-consuming.

= Guiding questions =

* What specific technical areas should the Wikimedia Foundation prioritize for the Incubator? Examples include:
** Simplifying content creation
** Expediting the language approval process
** Enhancing the efficiency of site set-up process
** Integrating content translation and Wikidata
* What potential solutions can address challenges in the technical areas that need to be prioritized?
* What aspects of language onboarding can the affiliates/communities concentrate their efforts on? Examples include:
** Establishing partnerships with external organizations to provide assistance with language tools, font, and keyboard support, among others.
** Undertaking capacity-building and training initiatives, among other activities.

* [Researchers/Data Analysts] Which technical enhancements are expected to have the most significant and positive impact on the language communities?
* [For Engineers] Which solutions appear feasible, and what level of resources would be required to implement them effectively?
* [Optional] What other research has been conducted concerning the Incubator that should be addressed during these discussions?

= Proposed recommendations =

=== Prioritizing technical areas ===
'''1. Simplifying content creation''': These conversations highlighted several challenges faced by individual and their communities contributing to the Wikimedia Incubator, particularly those involving non-tech-savvy users. The main issues revolve around the technical complexity of the platform, which inhibits the editing experience compared to normal wikis. &lt;blockquote&gt;''Editing on Incubator should feel similar to editing on normal wikis, but we are far from achieving this goal.''&lt;/blockquote&gt;Some of the key challenges related to editing were discussed:

* Prefixes and URL Access: The organization of content using prefixes poses a significant challenge. While there are gadgets to hide them during editing, there are fewer technical contributors with the required expertise to both develop and maintain these tools. Furthermore, accessing pages on Incubator for a language without ISO codes is difficult. 

* Wikidata Support and Content Translation: Incubator is disconnected from Wikidata, hindering interwiki linking. The absence of the content translation tool makes it difficult for contributors, who often resort to translating articles manually across tabs. The fastest way for contributors to make new articles seems to be through translating existing articles from other languages that they understand. It is quite cumbersome for them to import content from other languages into their projects as there is no content translation tool that is available on the Incubator like on other language Wikipedias.

* Templates and CSS Stylesheets: Users need to copy-paste infoboxes and templates from other Wikipedias, and they are overly complicated to both use and maintain as they rely on other templates and stylesheets. The lack of a central repository necessitates copying and maintaining templates for each project.

* Search Features: There's a need for improved search functionality to identify code errors in templates more easily and language search boxes similar to those on Wikipedia.org.

'''2. Language approval &amp; site creation process''': Though the conversations were largely centered around the difficulty with editing experience, concerns were raised about the inconsistency in the language approval and site setup processes, where some projects are approved quickly while others face delays.

=== Potential solutions ===
These conversations highlighted the need to streamline the technical aspects of the Incubator to make editing more intuitive and accessible for all contributors, particularly those from non-technical backgrounds.

'''1. Streamlining technical infrastructure''':  Many language communities face difficulties contributing to Incubator and obtaining approval due to limited resources. Simplifying the technical infrastructure is crucial to address these challenges, including issues with prefixes, template importing, and content formatting. &lt;blockquote&gt;''We should forget about Incubator completely. And, find another way of starting wiki. Because of the complexities around it, it might take time to improve the technical side of it.''&lt;/blockquote&gt;Currently, creating a new wiki on Incubator requires starting from scratch, which is time-consuming. Establishing basic building blocks for new wikis could streamline this process. Instead of a shared infrastructure like Incubator, a placeholder production wiki for each language wiki could simplify matters, especially if it's not indexed in search results until it reaches a threshold in content. This would require solving complex infrastructure issues, but it's feasible and necessary. Speeding up the creation of new wikis is essential, and evaluating this idea is recommended. Overall, these challenges are solvable, and addressing them would benefit many contributors. There is a [[phab:T228745|related task]] filed already filed on on Phabricator about this idea.

'''2. Progress tracking''': Providing a progress bar for each test project with specific goals can motivate contributors and improve the approval process by giving them insight into their project's status.

'''3. Improving templates experience''':  Providing basic templates can simplify the editing process on wikis. Copying infoboxes from one wiki to another involves copying modules and templates, which can be complex. Starting a test wiki on Incubator is like starting from scratch. Having foundational building blocks for new wikis, like global templates, would be helpful. Including commonly used templates such as citation, references, infoboxes, and main pages at the beginning of a project can encourage community involvement and make editing more accessible. [[Global templates|'''Link to Global templates''']]. 

'''4. Improving translation processes''': It would be good to explore if we can translate directly from Incubator instead of Translatewiki.net, which is currently a lengthy process. Many of us use Translatewiki.net for translations, but its interface differs from Incubator's. It requires some expertise to translate on Translatewiki.net. Providing resources like a glossary of technical terms within Incubator could help contributors translate content more effectively, especially for those unfamiliar with technical language.  

'''5. Exploring social pathways for language onboarding''': In addition to technical improvements, exploring social pathways for language onboarding, such as enhancing the discoverability of Incubator, creating welcoming pages, and orienting communities to various Wikimedia projects (such as Wiktionary, Wikisource, etc.) that might be more relevant for them than creating a Wikipedia, and guiding them on how to contribute effectively, can help make the process more accessible and inclusive.

=== Exploring social pathways ===
'''1.''' '''Empowering resource sharing''': Facilitate a forum for affiliates to share resources regarding language onboarding and creation, without necessarily coordinating their efforts. Encourage the sharing of templates for translations and maintain a compact list of common pages needed for projects. Set weekly or monthly goals for page creation/translation with specific themes.

'''2. Enhancing social infrastructure for article development''': Develop social infrastructure to assist in understanding which articles need to be written and provide guidance for creating articles, possibly through technical solutions like automated article suggestions. Encourage diverse topic selection and improve documentation accessibility. Enhance transparency in the approval process for articles.

'''3. Outreach and partnerships for linguistic diversity''': Conduct outreach to language communities and facilitate connections with organizations experienced in providing support for in developing language tools, fonts, keyboards and apps, such as with the [https://giellatekno.uit.no/Giellatekno.eng.html Giellatekno (Center for Language Technology) at the University of Tromsø, Norway] and [[metawiki:Wikimedia_Language_Diversity_Hub|Language Diversity Hub]].

'''4. Streamlining wiki incubation''':  Streamline the process of adding wikis to Incubator and graduating them from Incubator by collaborating with local communities, affiliates, and other regional Wikimedia organizations. Encourage feedback and collaboration to expedite the process. Ensure that articles are not lost during the migration of wikis from Incubator to independent sites.

'''5. Guiding principles for new wikis''': Provide a basic set of guidelines for new wikis, including principles like neutrality, verifiability, and basic project policies, to facilitate their establishment and operation.

'''6. Enhancing community interaction''': Improve on-wiki communication channels, such as Village Pump pages, to assist newcomers in understanding how wikis function and to foster community interaction.

'''7. Increasing language committee members''': Expanding the number of language committee members can expedite the project approval process, reducing delays caused by limited manpower.

= Final recommendations =
'''Note''': Recommendations are currently being discussed with WMF engineers and relevant stakeholders. Next steps will be published here soon.

= Timeline =
December 2023–March 2024

* Recruit potential stakeholders for Incubator conversations (Dec 15th)
* Host a kick-off meeting for introductions &amp; agenda setting (Jan 12th)
* Conduct one-on-one discussions with stakeholders on key questions (Feb 9th)
* Gather stakeholder feedback asynchronously on recommendations (Feb 9th)
* Host a final meeting to finalize the recommendations (Feb 16th)
* Collect asynchronous feedback from various platforms on the proposed recommendations (e.g., Incubator talk pages, translatewiki.net, Telegram channels, etc.) (Mar 16th)
* Document final recommendations for future discussions with WMF engineers and other stakeholders (Mar 28th)

= Potential stakeholders =

* Language team, WMF
** [[metawiki:User:SSethi_(WMF)|User:SSethi_(WMF)]]
** [[User:MMunyoki (WMF)]]
** [[metawiki:User:Aaharoni-WMF|User:Aaharoni-WMF]]
** [[foundation:User:Nlaxstrom-WMF|User:Nlaxstrom-WMF]]
** [[metawiki:User:APatro_(WMF)|User:APatro_(WMF)]]
*Community Growth team, WMF
** [[User:SGill_(WMF)]]
* Members of Language diversity hub members
** [[metawiki:User:Jon_Harald_Søby|User:Jon Harald Søby]]
** [[metawiki:User:Shahadusadik|User:Shahadusadik]]
** [[metawiki:User:Tochiprecious|User:Tochiprecious]] 
* Software &amp; site reliability engineers
** [[metawiki:User:Ladsgroup|User:Ladsgroup]]
* Researchers and analysts
** [[metawiki:User:KCVelaga_(WMF)|User:KCVelaga_(WMF)]]
** [[User:CMyrick-WMF]]
* Members of Language committee
** [[metawiki:User:MF-Warburg|User:MF-Warburg]]
* Others
** [[c:User:Pgallert|User:Pgallert]]
** [[metawiki:User:Ultron90|User:Ultron90]]

= Resources =

* [https://etherpad.wikimedia.org/p/incubator-meeting-notes Notes from working group meetings]

* [[c:File:Barriers_experienced_by_contributors_to_small_language_versions_of_Wikipedia.pdf|Research findings from the Language Diversity Hub]] examining challenges faced by contributors to small language versions of Wikipedia. 
* [[metawiki:Celtic_Knot_Conference_2020/Submissions/How_can_the_Incubator_be_improved|Session on improving the Incubator]] led by Amir Aharoni at the Celtic Knot Conference. 
* [[wm2018:Program/Wikipedia_for_Indigenous_Communities|Wikipedia for Indigenous Communities session]] by Peter Gallert at Wikimania. 
* [[Wikimedia Developer Summit/2018/Participants#Tgr (Gergő Tisza): We need a wikiproject incubator to enable innovation|Proposal for a wikiproject incubator]] to enable innovation by Gergő Tisza. 
* [https://www.youtube.com/watch?v=JkEl-pf-Aiw Session on increasing language diversity] on Wikimedia projects by Sadik Shahadu at Wikindaba 2023.

= See also =

* [[metawiki:WikiIndaba_2023/Submissions/Languages_onboarding_&amp;_incubator_Meetup|Gathering at WikiIndaba]] organized by [[User:MMunyoki (WMF)]] focusing on the Incubator.
* [[metawiki:Research:Incubator_and_language_representation_across_Wikimedia_projects|WMF's study on Incubator and language representation]] across Wikimedia projects. 
* [[Google Summer of Code/Past projects#Incubator improvements and language support|Previous Google Summer of Code (GSoC) project]] related to Incubator enhancements.

== References ==</text>
    <sha1>3c7f68240a2e2c761e5a8f0bf8d5e340a92dfac0</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>MediaWiki 1.43/wmf.13/Changelog</title>
  <ns>0</ns>
  <id>1992227</id>
  <revision>
    <id>6624045</id>
    <timestamp>2024-07-09T01:32:32Z</timestamp>
    <contributor>
      <username>ReleaseNotesBot</username>
      <id>12186731</id>
    </contributor>
    <comment>Update changelog for 1.43.0-wmf.13</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="43670" xml:space="preserve">== Core changes ==
* {{git|3efd99df}} - &lt;nowiki&gt;Branch commit for wmf/1.43.0-wmf.13&lt;/nowiki&gt; ({{phabricator|T366958}}) by trainbranchbot
* {{git|742fd566}} - &lt;nowiki&gt;AuthManager: Read from primary in account autocreation&lt;/nowiki&gt; ({{phabricator|T369372}}) by Kosta Harlan
* {{git|423d222e}} - &lt;nowiki&gt;Turn mediawiki.widgets.Table styles from CSS to LESS&lt;/nowiki&gt; by Ebrahim Byagowi
* {{git|9d93e4fa}} - &lt;nowiki&gt;Turn mw.widgets.SelectWithInputWidget.base from CSS to LESS&lt;/nowiki&gt; by Ebrahim Byagowi
* {{git|5c61c655}} - &lt;nowiki&gt;Normalise string params in MW Rest API&lt;/nowiki&gt; ({{phabricator|T340185}}) by Wendy Quarshie
* {{git|5adb425f}} - &lt;nowiki&gt;Use ES6 const/let in mediawiki.action.edit.editWarning&lt;/nowiki&gt; by Ebrahim Byagowi
* {{git|8477c681}} - &lt;nowiki&gt;Use more modern JS syntax in mediawiki.action.protect&lt;/nowiki&gt; by Ebrahim Byagowi
* {{git|ac500ae5}} - &lt;nowiki&gt;Turn CSS styles of mediawiki.widgets.styles to LESS&lt;/nowiki&gt; by Ebrahim Byagowi
* {{git|9af0b1d1}} - &lt;nowiki&gt;Convert mw.widgets.SizeFilterWidget.base.css to less&lt;/nowiki&gt; by Ebrahim Byagowi
* {{git|086c6053}} - &lt;nowiki&gt;Use ES6 destructuring in mediawiki.widgets.visibleLengthLimit.js&lt;/nowiki&gt; by Ebrahim Byagowi
* {{git|493ffea9}} - &lt;nowiki&gt;Introduce hook to preserve query params after authentication&lt;/nowiki&gt; ({{phabricator|T363483}}) ({{phabricator|T362713}}) by Derick Alangi
* {{git|2f238a94}} - &lt;nowiki&gt;Bump wikimedia/parsoid to 0.20.0-a12&lt;/nowiki&gt; ({{phabricator|T369310}}) by Yiannis Giannelos
* {{git|7685e966}} - &lt;nowiki&gt;Use ES6 const/let in mediawiki.action.edit.preview&lt;/nowiki&gt; by Ebrahim Byagowi
* {{git|05246f69}} - &lt;nowiki&gt;objectcache: Deprecate unused methods in BagOStuff.php&lt;/nowiki&gt; by Derick Alangi
* {{git|a5ae26d9}} - &lt;nowiki&gt;SkinComponentCopyright: Handle null context title&lt;/nowiki&gt; by Bartosz Dziewoński
* {{git|2e3aa6cb}} - &lt;nowiki&gt;Replace some uses of raw SQL with expression builder&lt;/nowiki&gt; by Bartosz Dziewoński
* {{git|e8002b9f}} - &lt;nowiki&gt;Drop an extra early return in mediawiki.action.history&lt;/nowiki&gt; by Ebrahim Byagowi
* {{git|006861be}} - &lt;nowiki&gt;Modernize mediawiki.action.view.metadata.js&lt;/nowiki&gt; by Ebrahim Byagowi
* {{git|17f597b5}} - &lt;nowiki&gt;FormSpecialPage: Allow "0" parameter via subpage syntax&lt;/nowiki&gt; by Matěj Suchánek
* {{git|2cbce841}} - &lt;nowiki&gt;maintenance: Hint at better replacements for deprecated fields&lt;/nowiki&gt; by thiemowmde
* {{git|ef7faa2b}} - &lt;nowiki&gt;api: Fix incomplete docs for ApiPageSet::$mRequestedPageFields&lt;/nowiki&gt; by thiemowmde
* {{git|599c35f5}} - &lt;nowiki&gt;api: Use much more specific PHPDoc type hints in ApiPageSet&lt;/nowiki&gt; by thiemowmde
* {{git|6ba40e66}} - &lt;nowiki&gt;Modernize JavaScript of mediawiki.action.view.postEdit&lt;/nowiki&gt; by Ebrahim Byagowi
* {{git|c5bed424}} - &lt;nowiki&gt;Modernize JavaScript of mediawiki.action.view.redirect.js&lt;/nowiki&gt; by Ebrahim Byagowi
* {{git|aa973137}} - &lt;nowiki&gt;specials: Use username from query on Special:ProtectedPages&lt;/nowiki&gt; by Umherirrender
* {{git|17079782}} - &lt;nowiki&gt;upload: Replace deprecated HTMLForm::addPreText/FooterText/HeaderText&lt;/nowiki&gt; ({{phabricator|T325474}}) by Umherirrender
* {{git|089ef483}} - &lt;nowiki&gt;Remove a wrong comment about Eastern Pwo language&lt;/nowiki&gt; by Amir E. Aharoni
* {{git|67eb34b9}} - &lt;nowiki&gt;objectcache: Remove deprecated unused method from BagOStuff class&lt;/nowiki&gt; by Derick Alangi
* {{git|50b0b3af}} - &lt;nowiki&gt;api: Replace deprecated ApiPageSet::getGoodTitles&lt;/nowiki&gt; ({{phabricator|T339384}}) by Umherirrender
* {{git|bf57de5a}} - &lt;nowiki&gt;[tests] OutputTransform: Make providers `static` methods&lt;/nowiki&gt; by Derick Alangi
* {{git|6895bc84}} - &lt;nowiki&gt;LanguageConverter: Added support for mni-Beng in mniwiki&lt;/nowiki&gt; ({{phabricator|T357853}}) by nokibsarkar
* {{git|6a90168c}} - &lt;nowiki&gt;objectcache: Remove unused key (`$i`) in `foreach()` loop&lt;/nowiki&gt; by Derick Alangi
* {{git|faf4cb33}} - &lt;nowiki&gt;content: Improve roundtrip tests for JavaScriptContent&lt;/nowiki&gt; ({{phabricator|T107289}}) by Timo Tijhof
* {{git|58ce413a}} - &lt;nowiki&gt;OutputTransform: Minor test clean up&lt;/nowiki&gt; by Timo Tijhof
* {{git|1951aea6}} - &lt;nowiki&gt;Fix various version mention for class_alias&lt;/nowiki&gt; by Umherirrender
* {{git|1934b45c}} - &lt;nowiki&gt;parser: Fix version mention for class_alias&lt;/nowiki&gt; by Umherirrender
* {{git|69b9733b}} - &lt;nowiki&gt;Use stripParsoidIds from Parsoid&lt;/nowiki&gt; by Isabelle Hurbain-Palatin
* {{git|efb9904e}} - &lt;nowiki&gt;REST: include field name when reporting extraneous body fields&lt;/nowiki&gt; ({{phabricator|T369156}}) by daniel
* {{git|ace04c06}} - &lt;nowiki&gt;HTMLForm: Prepare Less styles for math=parens-division&lt;/nowiki&gt; ({{phabricator|T368921}}) by Timo Tijhof
* {{git|6d23dea9}} - &lt;nowiki&gt;OutputPage: Minor refactor to avoid calling deprecated function&lt;/nowiki&gt; by Bartosz Dziewoński
* {{git|a6a562f5}} - &lt;nowiki&gt;OutputPage: Add tests for formatPermissionStatus(), formatPermissionsErrorMessage()&lt;/nowiki&gt; by Bartosz Dziewoński
* {{git|e66f66d8}} - &lt;nowiki&gt;Use namespaced classes&lt;/nowiki&gt; by Umherirrender
* {{git|7512eb30}} - &lt;nowiki&gt;specials: Replace ISQLPlatform::makeList on ChangesListSpecialPages&lt;/nowiki&gt; by Umherirrender
* {{git|bcb4c34c}} - &lt;nowiki&gt;api: Replace ISQLPlatform::makeList in list=recentchanges&lt;/nowiki&gt; by Umherirrender
* {{git|07c7df27}} - &lt;nowiki&gt;Unify query parameter preserving auth special page methods&lt;/nowiki&gt; ({{phabricator|T366476}}) by Gergő Tisza
* {{git|2b67cdc9}} - &lt;nowiki&gt;REST: Enable strict type validation in JSON request bodies&lt;/nowiki&gt; ({{phabricator|T305973}}) by daniel
* {{git|0b555c95}} - &lt;nowiki&gt;PermissionManager: Handle empty error array from TitleQuickPermissions&lt;/nowiki&gt; ({{phabricator|T369260}}) by Gergő Tisza
* {{git|c81f5b81}} - &lt;nowiki&gt;Create an autocreate log when a temporary account is created on edit&lt;/nowiki&gt; ({{phabricator|T357498}}) by Dreamy Jazz
* {{git|2c9ced16}} - &lt;nowiki&gt;Added leading colon to parser-template-loop-warning&lt;/nowiki&gt; ({{phabricator|T368809}}) by agamyasamuel
* {{git|a1fe507d}} - &lt;nowiki&gt;objectcache: inject the timestamp into WANObjectCache::fetchKeys()&lt;/nowiki&gt; by Aaron Schulz
* {{git|750da78d}} - &lt;nowiki&gt;specials: Add user tool links to uploader on Special:ListFiles&lt;/nowiki&gt; by Umherirrender
* {{git|13dfedee}} - &lt;nowiki&gt;Update jquery.i18n from 1.0.7 to 1.0.10&lt;/nowiki&gt; ({{phabricator|T117845}}) ({{phabricator|T137376}}) ({{phabricator|T137411}}) ({{phabricator|T169436}}) ({{phabricator|T185421}}) ({{phabricator|T193566}}) ({{phabricator|T237672}}) ({{phabricator|T245359}}) ({{phabricator|T254854}}) ({{phabricator|T278639}}) ({{phabricator|T333425}}) ({{phabricator|T338416}}) ({{phabricator|T341545}}) ({{phabricator|T343865}}) ({{phabricator|T348376}}) ({{phabricator|T349093}}) ({{phabricator|T351724}}) ({{phabricator|T354519}}) ({{phabricator|T354926}}) ({{phabricator|T354937}}) ({{phabricator|T362041}}) ({{phabricator|T364291}}) ({{phabricator|T367991}}) by Winston Sung
* {{git|1ba8a15a}} - &lt;nowiki&gt;Remove superfluous spaces&lt;/nowiki&gt; by Fomafix
* {{git|f18b9f6f}} - &lt;nowiki&gt;ServiceWiring: Hide Skin Json from Special:Preferences&lt;/nowiki&gt; ({{phabricator|T364696}}) by Jon Robson
* {{git|1a720421}} - &lt;nowiki&gt;[Figures] Remove redundant background color interfering with invert&lt;/nowiki&gt; ({{phabricator|T367589}}) by Steph Toyofuku
* {{git|3286f6fc}} - &lt;nowiki&gt;codex: Provide i18n function and messages&lt;/nowiki&gt; ({{phabricator|T368449}}) by Anne Tomasevich
* {{git|c33b3172}} - &lt;nowiki&gt;Skins: Support useskin=json&lt;/nowiki&gt; ({{phabricator|T364696}}) by Jon Robson
* {{git|fe7abd6e}} - &lt;nowiki&gt;Add tests for WebInstaller::getAcceptLanguage&lt;/nowiki&gt; by Fomafix
* {{git|16f5f0ae}} - &lt;nowiki&gt;installer: Use $this-&gt;request instead of $wgRequest in WebInstaller&lt;/nowiki&gt; by Fomafix
* {{git|c5033dc5}} - &lt;nowiki&gt;Update OOUI to v0.50.3&lt;/nowiki&gt; ({{phabricator|T369010}}) by James D. Forrester
* {{git|f2399a98}} - &lt;nowiki&gt;Fix spelling in RELEASE-NOTES&lt;/nowiki&gt; ({{phabricator|T367377}}) by Amir E. Aharoni
* {{git|7de55c9f}} - &lt;nowiki&gt;build: Switch "npm run qunit" from chrome to firefox&lt;/nowiki&gt; by Timo Tijhof
* {{git|217d47d4}} - &lt;nowiki&gt;Replace direct use of $wgRestPath with wfScript()&lt;/nowiki&gt; by Timo Tijhof
* {{git|6c0ead7f}} - &lt;nowiki&gt;MediaWikiIntegrationTestCase: Cache needsDB()&lt;/nowiki&gt; by Lucas Werkmeister
* {{git|fc3e8aa6}} - &lt;nowiki&gt;Tests: Replace "db" with getDb method&lt;/nowiki&gt; ({{phabricator|T316841}}) by Wandji69
* {{git|a36e4475}} - &lt;nowiki&gt;Deprecate User::whoIs/whoIsReal&lt;/nowiki&gt; ({{phabricator|T281394}}) by Umherirrender
* {{git|22cb823a}} - &lt;nowiki&gt;rdbms: move implied QUERY_IGNORE_DBO_TRX flags to explicit QUERY_* checks&lt;/nowiki&gt; by Aaron Schulz
* {{git|e71d02d7}} - &lt;nowiki&gt;htmlform: Improve documentation of the `validation-callback` option&lt;/nowiki&gt; by Daimona Eaytoy
* {{git|89dcc914}} - &lt;nowiki&gt;BacklinkJobUtils: don't miss pages falling in the gaps between batches&lt;/nowiki&gt; by Tim Starling
* {{git|0837da94}} - &lt;nowiki&gt;Fix use of stale backlink partition cache&lt;/nowiki&gt; ({{phabricator|T368006}}) by Tim Starling
* {{git|23ab5486}} - &lt;nowiki&gt;arrayDef: Apply default values from the schema if not set&lt;/nowiki&gt; ({{phabricator|T366289}}) by Atieno
* {{git|4a0cebf5}} - &lt;nowiki&gt;build: alphabetize package.json scripts&lt;/nowiki&gt; by Novem Linguae
* {{git|d58b83b2}} - &lt;nowiki&gt;Messages: Add an additional alias for the DEFAULTSORT magic word in Serbian language&lt;/nowiki&gt; by Zoranzoki21
* {{git|bee9048b}} - &lt;nowiki&gt;add @deprecated to hard deprecated methods&lt;/nowiki&gt; by Novem Linguae
* {{git|2c970268}} - &lt;nowiki&gt;Revert "Skip failing ForeignResourceStructureTest"&lt;/nowiki&gt; ({{phabricator|T362425}}) by Lucas Werkmeister
* {{git|c205384f}} - &lt;nowiki&gt;REST: Mark TransformHandler as not needing write access&lt;/nowiki&gt; ({{phabricator|T367625}}) by Kunal Mehta
* {{git|b8f294ee}} - &lt;nowiki&gt;SpecialUserRights: Clean up mTarget and $reason type checks&lt;/nowiki&gt; by Timo Tijhof
* {{git|2a26f0ec}} - &lt;nowiki&gt;cleanupSpam: Add import for Database&lt;/nowiki&gt; by Reedy
=== Vendor ===
* {{git|0b8ca623}} - &lt;nowiki&gt;Bump wikimedia/parsoid to 0.20.0-a12&lt;/nowiki&gt; ({{phabricator|T368726}}) ({{phabricator|T369317}}) ({{phabricator|T369310}}) by Yiannis Giannelos
* {{git|130c06d4}} - &lt;nowiki&gt;Update OOUI to v0.50.3&lt;/nowiki&gt; by James D. Forrester
* {{git|c92fca56}} - &lt;nowiki&gt;Bump swaggest/json-diff to 3.11.0&lt;/nowiki&gt; ({{phabricator|T366911}}) by dima koushha
== Extensions ==
=== AbuseFilter ===
* {{git|bf180e04}} - &lt;nowiki&gt;Simplify FilterEvaluator::getUsedVars using ::checkSyntax&lt;/nowiki&gt; ({{phabricator|T368203}}) by Matěj Suchánek
* {{git|99bb44be}} - &lt;nowiki&gt;Miscellaneous minor fixes&lt;/nowiki&gt; by Daimona Eaytoy
* {{git|6ac574da}} - &lt;nowiki&gt;Add missing permission check to canSeeLogDetailsForFilter&lt;/nowiki&gt; by Daimona Eaytoy
=== AutoModerator ===
* {{git|8dc6476d}} - &lt;nowiki&gt;Use namespaced classes&lt;/nowiki&gt; by Umherirrender
* {{git|98d5bfbc}} - &lt;nowiki&gt;Move edit summary configuration variables to i18n message strings&lt;/nowiki&gt; ({{phabricator|T367791}}) by Kgraessle
=== Babel ===
* {{git|62fe9a44}} - &lt;nowiki&gt;quickfix: make blocks readable in dark theme&lt;/nowiki&gt; ({{phabricator|T369321}}) by Iniquity
* {{git|f3d16a1b}} - &lt;nowiki&gt;Migrate to IDatabase::newDeleteQueryBuilder/newReplaceQueryBuilder&lt;/nowiki&gt; by Umherirrender
* {{git|099415cb}} - &lt;nowiki&gt;Use namespaced User class&lt;/nowiki&gt; by Umherirrender
* {{git|1d1f0ea8}} - &lt;nowiki&gt;Drop support for MW 1.40&lt;/nowiki&gt; ({{phabricator|T369064}}) by Abijeet
* {{git|81605121}} - &lt;nowiki&gt;Use $this-&gt;getServiceContainer() in tests&lt;/nowiki&gt; by Fomafix
=== CampaignEvents ===
* {{git|05210cd2}} - &lt;nowiki&gt;Use namespaced HTMLForm class&lt;/nowiki&gt; by Umherirrender
* {{git|27d491e4}} - &lt;nowiki&gt;Store invitees after generating them&lt;/nowiki&gt; ({{phabricator|T366641}}) by Daimona Eaytoy
* {{git|22eb1add}} - &lt;nowiki&gt;Introduce InvitationListStore&lt;/nowiki&gt; ({{phabricator|T366633}}) by Daimona Eaytoy
* {{git|571d162e}} - &lt;nowiki&gt;Create pending state for the special page InvitationList&lt;/nowiki&gt; ({{phabricator|T364802}}) by Claudio Melo
* {{git|f647aebb}} - &lt;nowiki&gt;Reapply "Add new schema to store invitation lists data"&lt;/nowiki&gt; ({{phabricator|T366354}}) by Daimona Eaytoy
* {{git|24493f79}} - &lt;nowiki&gt;Update permission check in SpecialMyInvitationLists&lt;/nowiki&gt; by Daimona Eaytoy
* {{git|bd3fec88}} - &lt;nowiki&gt;Add validation for all fields in SpecialGenerateInvitationList&lt;/nowiki&gt; ({{phabricator|T365629}}) by Daimona Eaytoy
* {{git|bcd42868}} - &lt;nowiki&gt;Add i18n for validation errors in WorklistParser&lt;/nowiki&gt; ({{phabricator|T365629}}) by Daimona Eaytoy
* {{git|79dd7daa}} - &lt;nowiki&gt;Introduce InvitationListGenerator&lt;/nowiki&gt; ({{phabricator|T365629}}) by Daimona Eaytoy
=== CentralAuth ===
* {{git|91b7075b}} - &lt;nowiki&gt;Derive session keys from db name using virtual db domain config&lt;/nowiki&gt; ({{phabricator|T348486}}) by Ariel T. Glenn
* {{git|c5ee4888}} - &lt;nowiki&gt;Use namespaced classes&lt;/nowiki&gt; by Umherirrender
* {{git|0d9a65b0}} - &lt;nowiki&gt;GlobalRenameQueue: Fix issues with wiki ID and row query&lt;/nowiki&gt; ({{phabricator|T369147}}) by Simone Cuomo
=== CheckUser ===
* {{git|d75561ce}} - &lt;nowiki&gt;Remove wgCheckUserEventTablesMigrationStage in maintenance scripts&lt;/nowiki&gt; ({{phabricator|T366546}}) by Dreamy Jazz
* {{git|2f71db4e}} - &lt;nowiki&gt;checkuser-temporary-account-log-header: Update string&lt;/nowiki&gt; ({{phabricator|T362339}}) by Kosta Harlan
* {{git|02eb5db9}} - &lt;nowiki&gt;Add archived revisions mode for Special:IPContributions&lt;/nowiki&gt; ({{phabricator|T363362}}) by Thalia
* {{git|bf262ce2}} - &lt;nowiki&gt;Add deleteReadOldRowsInCuChanges.php to update.php&lt;/nowiki&gt; ({{phabricator|T341830}}) by Dreamy Jazz
* {{git|ff231452}} - &lt;nowiki&gt;Add logging on view of Special:IPContributions&lt;/nowiki&gt; ({{phabricator|T362339}}) by Dreamy Jazz
* {{git|883c0ea5}} - &lt;nowiki&gt;Make IP reveal preference description appear in GlobalPreferences&lt;/nowiki&gt; ({{phabricator|T366618}}) by Dreamy Jazz
* {{git|10aea3f6}} - &lt;nowiki&gt;IPContributionsPagerFactory: Ensure that the target is a valid IP&lt;/nowiki&gt; by Thalia
* {{git|59921f58}} - &lt;nowiki&gt;IPContributionsPager: Improve revision query performance&lt;/nowiki&gt; ({{phabricator|T367091}}) by Thalia
* {{git|67876863}} - &lt;nowiki&gt;Use ::getSchemaOverrides definition to modify schema in tests&lt;/nowiki&gt; by Dreamy Jazz
* {{git|3614bc08}} - &lt;nowiki&gt;Control number of IPs that are autoblocked via config&lt;/nowiki&gt; ({{phabricator|T367763}}) by Dreamy Jazz
* {{git|77eb931d}} - &lt;nowiki&gt;Remove hard-deprecated methods in AbstractCheckUserPager&lt;/nowiki&gt; by Dreamy Jazz
=== CirrusSearch ===
* {{git|b43b5d02}} - &lt;nowiki&gt;Fix naming of new prometheus metrics&lt;/nowiki&gt; ({{phabricator|T359033}}) by David Causse
* {{git|87ee10a0}} - &lt;nowiki&gt;DeletePages should no longer populate the archive index&lt;/nowiki&gt; by David Causse
* {{git|44639a2b}} - &lt;nowiki&gt;Replace deprecated ApiPageSet::getGoodTitles&lt;/nowiki&gt; ({{phabricator|T339384}}) by Umherirrender
=== Cite ===
* {{git|c44eaf6f}} - &lt;nowiki&gt;Re-enable linting tests post-sync&lt;/nowiki&gt; by Arlo Breault
* {{git|d9351bc0}} - &lt;nowiki&gt;Disable linting tests temporarily for cross repo sync&lt;/nowiki&gt; by Arlo Breault
* {{git|1aeac001}} - &lt;nowiki&gt;Additional parser test cases for delayed extends usage&lt;/nowiki&gt; ({{phabricator|T367749}}) by thiemowmde
* {{git|de7f294f}} - &lt;nowiki&gt;Promote orphaned subrefs to the top level&lt;/nowiki&gt; ({{phabricator|T247921}}) by Adam Wight
* {{git|2ffbf1fa}} - &lt;nowiki&gt;Display extends warning message when editing a reference&lt;/nowiki&gt; ({{phabricator|T247922}}) by mareikeheuer
* {{git|f317419b}} - &lt;nowiki&gt;Don't update the editors re-use warning when re-using a reference&lt;/nowiki&gt; by WMDE-Fisch
* {{git|b483c829}} - &lt;nowiki&gt;Extract some methods around the reference insert/update workflow&lt;/nowiki&gt; by WMDE-Fisch
* {{git|2748f659}} - &lt;nowiki&gt;Render subrefs indented under parent&lt;/nowiki&gt; by Adam Wight
* {{git|d03d2d8d}} - &lt;nowiki&gt;[refactor] switch reflist rendering source of truth&lt;/nowiki&gt; ({{phabricator|T247921}}) by Adam Wight
* {{git|ec9c8bda}} - &lt;nowiki&gt;Use slightly narrower interfaces in a few places&lt;/nowiki&gt; by thiemowmde
* {{git|bc7f1a70}} - &lt;nowiki&gt;Replace "shield" hack in MWReferenceResultWidget with CSS&lt;/nowiki&gt; ({{phabricator|T360034}}) ({{phabricator|T367030}}) by thiemowmde
=== cldr ===
* {{git|b3df8072}} - &lt;nowiki&gt;Add Korean mixed script (ko-kore), not part of CLDR, used by Wikidata&lt;/nowiki&gt; ({{phabricator|T368817}}) by raymond
* {{git|7dbafbeb}} - &lt;nowiki&gt;Add Xiang variants hsn-hant, hsn-hans, used by Wikidata&lt;/nowiki&gt; ({{phabricator|T368820}}) by raymond
* {{git|7c949ac8}} - &lt;nowiki&gt;Add Khorasani Turkic, not part of CLDR, used by Wikidata&lt;/nowiki&gt; ({{phabricator|T368826}}) by raymond
* {{git|21dc2700}} - &lt;nowiki&gt;Add Qashqai (qxq), not part of CLDR, used by Wikidata&lt;/nowiki&gt; ({{phabricator|T368825}}) by raymond
* {{git|62b8d9cf}} - &lt;nowiki&gt;Add Parya (paq), not part of CLDR, used by Wikidata&lt;/nowiki&gt; ({{phabricator|T368824}}) by raymond
=== CodeMirror ===
* {{git|e0dc1c0c}} - &lt;nowiki&gt;Use service 'GadgetsRepo' instead of deprecated GadgetRepo::singleton()&lt;/nowiki&gt; by Fomafix
* {{git|17fefeb8}} - &lt;nowiki&gt;build: Update jsdoc-wmf-theme to 1.1.0&lt;/nowiki&gt; ({{phabricator|T368081}}) by Ed Sanders
=== CommunityConfiguration ===
* {{git|48b753ae}} - &lt;nowiki&gt;Use namespaced RequestContext class&lt;/nowiki&gt; by Umherirrender
* {{git|7bce681f}} - &lt;nowiki&gt;IConfigurationStore: Add support for writes without permissions&lt;/nowiki&gt; ({{phabricator|T367575}}) by Martin Urbanec
* {{git|a4d023e2}} - &lt;nowiki&gt;Editor: Add description label&lt;/nowiki&gt; ({{phabricator|T368160}}) by Sergio Gimeno
* {{git|24f7d3ba}} - &lt;nowiki&gt;Editor: simplify i18n messages building&lt;/nowiki&gt; ({{phabricator|T368160}}) by Sergio Gimeno
* {{git|b694dc15}} - &lt;nowiki&gt;refactor(editor): Drop dead code form i18n.js&lt;/nowiki&gt; by Michael Große
* {{git|11f094f0}} - &lt;nowiki&gt;Allow client extensions to provide their own tag names&lt;/nowiki&gt; ({{phabricator|T368739}}) by Martin Urbanec
* {{git|2dead6f0}} - &lt;nowiki&gt;Add hook for dynamically registering providers&lt;/nowiki&gt; ({{phabricator|T367655}}) by Sergio Gimeno
* {{git|580c20ce}} - &lt;nowiki&gt;Add description to main config options&lt;/nowiki&gt; by Sergio Gimeno
* {{git|7b759bf9}} - &lt;nowiki&gt;WriterTest: Clarify the alphabetical ordering is intended&lt;/nowiki&gt; by Martin Urbanec
* {{git|e53d078e}} - &lt;nowiki&gt;WikiPageWriter: Do not use the clone keyword&lt;/nowiki&gt; ({{phabricator|T368741}}) ({{phabricator|T367575}}) by Martin Urbanec
=== ContentTranslation ===
* {{git|dbc36ca7}} - &lt;nowiki&gt;AX useApi: Add "fetchDenseArticles" method&lt;/nowiki&gt; ({{phabricator|T359863}}) by NikG
* {{git|7936e71f}} - &lt;nowiki&gt;AX useSectionTitleTranslate: Expose "doTranslateSectionTitle" method&lt;/nowiki&gt; ({{phabricator|T359863}}) by NikG
* {{git|06943a05}} - &lt;nowiki&gt;AX View Translation: Update translation upon target language change&lt;/nowiki&gt; ({{phabricator|T359829}}) by NikG
* {{git|1c16fed9}} - &lt;nowiki&gt;Test:Replace "db" with getDb method&lt;/nowiki&gt; ({{phabricator|T316841}}) by Wandji69
* {{git|4c109001}} - &lt;nowiki&gt;i18n: Add description for automatic translation project&lt;/nowiki&gt; ({{phabricator|T369319}}) by Abijeet
* {{git|1aee5fa4}} - &lt;nowiki&gt;AX: Add qid to mediawikiPage and pageSearchResult models&lt;/nowiki&gt; ({{phabricator|T359863}}) by NikG
* {{git|cdf13842}} - &lt;nowiki&gt;ApiQueryAutomaticTranslationDenseLanguages: Add section-titles param&lt;/nowiki&gt; ({{phabricator|T359863}}) by NikG
* {{git|4c52df51}} - &lt;nowiki&gt;AX: Split lead section to translate it simultaneously&lt;/nowiki&gt; ({{phabricator|T364090}}) by NikG
* {{git|d0b6efff}} - &lt;nowiki&gt;AX Article Footer Entrypoint: Add card inside footer&lt;/nowiki&gt; ({{phabricator|T363338}}) by NikG
* {{git|fc7b571b}} - &lt;nowiki&gt;AX: Add hook handler to register article footer entrypoint&lt;/nowiki&gt; ({{phabricator|T363338}}) by NikG
=== DiscussionTools ===
* {{git|43d023a2}} - &lt;nowiki&gt;Test: Replace db with getDb method&lt;/nowiki&gt; ({{phabricator|T316841}}) by Wandji69
* {{git|c6754107}} - &lt;nowiki&gt;BetaPreferenceHooks: Reuse $this-&gt;config&lt;/nowiki&gt; by Fomafix
* {{git|b06b96b9}} - &lt;nowiki&gt;Inject services into DiscussionToolsHooks&lt;/nowiki&gt; by Fomafix
* {{git|3c76c791}} - &lt;nowiki&gt;Inject service ContentLanguage into ThreadItemStore&lt;/nowiki&gt; by Fomafix
* {{git|32069364}} - &lt;nowiki&gt;Use $this-&gt;getServiceContainer() in maintenance and tests&lt;/nowiki&gt; by Fomafix
* {{git|eb497b00}} - &lt;nowiki&gt;permalinks: Only handle unmodified left clicks&lt;/nowiki&gt; by Bartosz Dziewoński
=== Echo ===
* {{git|7845b5fa}} - &lt;nowiki&gt;Fix mistake in gender support for user group changes&lt;/nowiki&gt; ({{phabricator|T368249}}) by thiemowmde
* {{git|633682d5}} - &lt;nowiki&gt;Test:Replace db with getDb method&lt;/nowiki&gt; ({{phabricator|T316841}}) by Wandji69
* {{git|9b0010d2}} - &lt;nowiki&gt;fixed typo: exists -&gt; exist&lt;/nowiki&gt; ({{phabricator|T368278}}) by agamyasamuel
=== EntitySchema ===
* {{git|8d9c54d3}} - &lt;nowiki&gt;Define custom search-index-data-formatter-callback&lt;/nowiki&gt; ({{phabricator|T369149}}) by Lucas Werkmeister
=== EventLogging ===
* {{git|b5454085}} - &lt;nowiki&gt;lib: Update metrics-platform to 84ed8dcbe7c9&lt;/nowiki&gt; by Sam Smith
=== FlaggedRevs ===
* {{git|be636b07}} - &lt;nowiki&gt;Stop using setMwGlobals in tests&lt;/nowiki&gt; by thiemowmde
* {{git|eae28790}} - &lt;nowiki&gt;Use more trivial Connectionprovider instead of LoadBalancer&lt;/nowiki&gt; by thiemowmde
* {{git|89125f51}} - &lt;nowiki&gt;tests: add page move test&lt;/nowiki&gt; ({{phabricator|T368380}}) by Novem Linguae
=== Flow ===
* {{git|4f1e9d00}} - &lt;nowiki&gt;Prepare Less styles for math=parens-division&lt;/nowiki&gt; ({{phabricator|T368921}}) by Timo Tijhof
* {{git|db2edd1b}} - &lt;nowiki&gt;Make Flow work in dark mode by disabling backgrounds and setting text&lt;/nowiki&gt; ({{phabricator|T357600}}) by Jon Robson
=== Gadgets ===
* {{git|cfa04f8c}} - &lt;nowiki&gt;Hard deprecate GadgetRepo::singleton and GadgetRepo::setSingleton&lt;/nowiki&gt; by Fomafix
=== GlobalBlocking ===
* {{git|48ea21fe}} - &lt;nowiki&gt;Add GlobalBlockingUserVisibilityLookup service&lt;/nowiki&gt; ({{phabricator|T356932}}) by Dreamy Jazz
* {{git|3d40635a}} - &lt;nowiki&gt;Hard deprecate two GlobalBlocking methods&lt;/nowiki&gt; by Dreamy Jazz
* {{git|c7e4bbc8}} - &lt;nowiki&gt;Test GlobalBlockListPager&lt;/nowiki&gt; ({{phabricator|T356932}}) by Dreamy Jazz
* {{git|04533450}} - &lt;nowiki&gt;Fully test SpecialGlobalBlockList&lt;/nowiki&gt; ({{phabricator|T356932}}) by Dreamy Jazz
* {{git|43002b84}} - &lt;nowiki&gt;Update ApiQueryGlobalBlocks to support global account blocks&lt;/nowiki&gt; ({{phabricator|T356935}}) by Dreamy Jazz
* {{git|a8a3768e}} - &lt;nowiki&gt;Hard-deprecate GlobalBlockLookup::getUserBlockErrors&lt;/nowiki&gt; by Dreamy Jazz
* {{git|fa982ae7}} - &lt;nowiki&gt;Hard-deprecate GlobalBlocking::getUserBlockErrors&lt;/nowiki&gt; by Dreamy Jazz
=== GlobalPreferences ===
* {{git|0b926f9e}} - &lt;nowiki&gt;Use namespaced classes&lt;/nowiki&gt; by Umherirrender
* {{git|b61d96f0}} - &lt;nowiki&gt;Handle 'info' preferences in Special:GlobalPreferences&lt;/nowiki&gt; ({{phabricator|T366618}}) by Dreamy Jazz
=== GrowthExperiments ===
* {{git|45aca48c}} - &lt;nowiki&gt;Manage mentors: show warning disclaimer on top of the page&lt;/nowiki&gt; ({{phabricator|T361207}}) by Sergio Gimeno
* {{git|39e69df3}} - &lt;nowiki&gt;Don't break if suggested edits are disabled&lt;/nowiki&gt; ({{phabricator|T369277}}) by Michael Große
* {{git|9dec9d72}} - &lt;nowiki&gt;Use round instead of square brackets&lt;/nowiki&gt; by Amir E. Aharoni
* {{git|fdcced5a}} - &lt;nowiki&gt;Config: display text as description instead of help text&lt;/nowiki&gt; ({{phabricator|T367223}}) by Sergio Gimeno
* {{git|8432dd1c}} - &lt;nowiki&gt;Config: unregister HelpPanel and SuggestedEdits providers&lt;/nowiki&gt; ({{phabricator|T367656}}) by Sergio Gimeno
* {{git|07d5fc02}} - &lt;nowiki&gt;Differentiate between 'standard' and machine suggestions associated task types&lt;/nowiki&gt; ({{phabricator|T366823}}) by Cyndy
* {{git|9a7f1d31}} - &lt;nowiki&gt;Refactor(SuggestedEdits): inline typehints for fields, drop unused field&lt;/nowiki&gt; by Michael Große
* {{git|71ce7a91}} - &lt;nowiki&gt;Completely drop code about the EditInfoService&lt;/nowiki&gt; ({{phabricator|T368750}}) by Michael Große
* {{git|22f3b610}} - &lt;nowiki&gt;Config: add community updates config provider&lt;/nowiki&gt; ({{phabricator|T367223}}) by Sergio Gimeno
* {{git|0cd03a8e}} - &lt;nowiki&gt;i18n: Clarify units for Personalized praise notifications frequency&lt;/nowiki&gt; ({{phabricator|T368819}}) by Martin Urbanec
* {{git|343128ce}} - &lt;nowiki&gt;Homepage: show no-results icon in mobile no structured tasks preview&lt;/nowiki&gt; ({{phabricator|T368750}}) by Michael Große
* {{git|dca767fc}} - &lt;nowiki&gt;Homepage: don't show edit count in mobile no structured tasks fallback&lt;/nowiki&gt; ({{phabricator|T368750}}) by Michael Große
=== IPReputation ===
* {{git|0af8e5b4}} - &lt;nowiki&gt;Use namespaced RequestContext class&lt;/nowiki&gt; by Umherirrender
=== Kartographer ===
* {{git|b035734a}} - &lt;nowiki&gt;Ignore dark theme on Kartographer zoom buttons for VE&lt;/nowiki&gt; ({{phabricator|T367373}}) by Isabelle Hurbain-Palatin
=== Linter ===
* {{git|054abb79}} - &lt;nowiki&gt;Change some log levels to debug so logs can be suppressed from Logstash&lt;/nowiki&gt; by Arlo Breault
=== LiquidThreads ===
* {{git|98faca9e}} - &lt;nowiki&gt;Updated README to reflect unmaintained status.&lt;/nowiki&gt; ({{phabricator|T368342}}) by agamyasamuel
=== MetricsPlatform ===
* {{git|04567490}} - &lt;nowiki&gt;build: Add the config file for phan&lt;/nowiki&gt; by Umherirrender
=== MobileApp ===
* {{git|a5fd770d}} - &lt;nowiki&gt;Add new batch of tags for mobile apps edits&lt;/nowiki&gt; ({{phabricator|T366731}}) by Toni Sevener
* {{git|4d03fc77}} - &lt;nowiki&gt;Use namespaced RequestContext class&lt;/nowiki&gt; by Umherirrender
=== MobileFrontend ===
* {{git|08be5848}} - &lt;nowiki&gt;Fix: Mobile multimedia viewer not night mode friendly on bad connections&lt;/nowiki&gt; ({{phabricator|T364274}}) by Agamyasamuel
* {{git|ec5537ed}} - &lt;nowiki&gt;Use getRawVal or getCheck instead of getVal&lt;/nowiki&gt; by Fomafix
* {{git|3bb4e7f9}} - &lt;nowiki&gt;Use service 'GadgetsRepo' instead of deprecated GadgetRepo::singleton()&lt;/nowiki&gt; by Fomafix
* {{git|295bd96f}} - &lt;nowiki&gt;Inject services into MobileFrontend\Amc\Hooks&lt;/nowiki&gt; by Fomafix
=== MultimediaViewer ===
* {{git|1ea305b0}} - &lt;nowiki&gt;Fix dark mode issues with an extended 'Permission details' box&lt;/nowiki&gt; ({{phabricator|T369531}}) by Taavi Väänänen
* {{git|a9bd92c7}} - &lt;nowiki&gt;Support djvu thumbnails in Mediaviewer&lt;/nowiki&gt; ({{phabricator|T72912}}) by Derk-Jan Hartman
* {{git|4672f2eb}} - &lt;nowiki&gt;ThumbnailInfo: support multi lingual SVG&lt;/nowiki&gt; ({{phabricator|T208564}}) by Simon Legner
=== OATHAuth ===
* {{git|152c80c2}} - &lt;nowiki&gt;Send log entries to CheckUser&lt;/nowiki&gt; ({{phabricator|T301992}}) by Kunal Mehta
* {{git|519387f7}} - &lt;nowiki&gt;Use namespaced FormatJson class&lt;/nowiki&gt; by Umherirrender
=== OAuth ===
* {{git|0c13186a}} - &lt;nowiki&gt;Ignore extra parameters in oauth2/authorize and oauth2/access_token&lt;/nowiki&gt; ({{phabricator|T369156}}) by Gergő Tisza
* {{git|0aee42e0}} - &lt;nowiki&gt;lib: Simplify OAuthSignatureMethod::check_signature with hash_equals&lt;/nowiki&gt; by Umherirrender
* {{git|82175b87}} - &lt;nowiki&gt;lib: Simplify ternary conditions&lt;/nowiki&gt; by Umherirrender
=== ORES ===
* {{git|dc08c599}} - &lt;nowiki&gt;Remove a duplication of selectors in ext.ores.highlighter&lt;/nowiki&gt; by Ebrahim Byagowi
=== Popups ===
* {{git|7e3a444a}} - &lt;nowiki&gt;Use service 'GadgetsRepo' instead of deprecated GadgetRepo::singleton()&lt;/nowiki&gt; by Fomafix
* {{git|c9734919}} - &lt;nowiki&gt;PopupsContextTestWrapper: Remove null check for $gadgetsIntegration&lt;/nowiki&gt; by Fomafix
=== ProofreadPage ===
* {{git|57dfc237}} - &lt;nowiki&gt;kawikisource &amp; mywikisource: add proofread namespaces translation&lt;/nowiki&gt; ({{phabricator|T363243}}) ({{phabricator|T363270}}) by Anzx
* {{git|9a5caf57}} - &lt;nowiki&gt;mswikisource: add proofread namespace translation&lt;/nowiki&gt; ({{phabricator|T369047}}) by Anzx
* {{git|458f11d4}} - &lt;nowiki&gt;Replace deprecated ApiPageSet::getGoodTitles&lt;/nowiki&gt; ({{phabricator|T339384}}) by Umherirrender
=== ReadingLists ===
* {{git|549adae7}} - &lt;nowiki&gt;Use namespaced Message class&lt;/nowiki&gt; by Umherirrender
=== Scribunto ===
* {{git|c684be1e}} - &lt;nowiki&gt;Capture stderr from ‘lua -v' to get the version number.&lt;/nowiki&gt; ({{phabricator|T368832}}) by Mark A. Hershberger
=== SyntaxHighlight_GeSHi ===
* {{git|0249ef72}} - &lt;nowiki&gt;Migrate MediaWiki.syntaxhighlight_shell.*.rate to statslib&lt;/nowiki&gt; ({{phabricator|T359270}}) by Andrea Denisse Gómez-Martínez
=== TemplateData ===
* {{git|3bc25f00}} - &lt;nowiki&gt;Test: Replace db with getDb method&lt;/nowiki&gt; ({{phabricator|T316841}}) by Wandji69
=== TextExtracts ===
* {{git|44a3c538}} - &lt;nowiki&gt;ApiQueryExtracts: Replace custom parsing logic with ParserOutputAccess&lt;/nowiki&gt; by Bartosz Dziewoński
=== TimedMediaHandler ===
* {{git|2af31347}} - &lt;nowiki&gt;build: Update jsdoc-wmf-theme to 1.1.0&lt;/nowiki&gt; ({{phabricator|T368081}}) by Ed Sanders
=== timeline ===
* {{git|e847fe30}} - &lt;nowiki&gt;Add missing "_total" suffix to the `timeline_*` metrics&lt;/nowiki&gt; ({{phabricator|T359268}}) by Andrea Denisse Gómez-Martínez
=== Translate ===
* {{git|be3f85c9}} - &lt;nowiki&gt;AggregateGroupsSpecialPage: Do not show already selected groups&lt;/nowiki&gt; ({{phabricator|T366479}}) by Abijeet
* {{git|7e9eda3f}} - &lt;nowiki&gt;AggregateGroupsSpecialPage: Use group labels for existing groups&lt;/nowiki&gt; ({{phabricator|T366479}}) by Abijeet
* {{git|c502e64a}} - &lt;nowiki&gt;AggregateGroups: Add group URL in response when associating a group&lt;/nowiki&gt; ({{phabricator|T366479}}) by Abijeet
* {{git|34208123}} - &lt;nowiki&gt;Drop support for MW 1.40&lt;/nowiki&gt; ({{phabricator|T369064}}) by Abijeet
* {{git|ac5c837f}} - &lt;nowiki&gt;Use namespaced Status classes&lt;/nowiki&gt; by Umherirrender
* {{git|b3350d8d}} - &lt;nowiki&gt;CrossLanguageTranslationSearchQuery: Move to TtmServer namespace&lt;/nowiki&gt; ({{phabricator|T335342}}) by wangombe
* {{git|18384dd7}} - &lt;nowiki&gt;Update version for MLEB 2024.07 release&lt;/nowiki&gt; ({{phabricator|T369059}}) by Abijeet
* {{git|ffcfa501}} - &lt;nowiki&gt;Update User class namespace to MediaWiki\User\User&lt;/nowiki&gt; ({{phabricator|T369059}}) by Abijeet
* {{git|5eeea374}} - &lt;nowiki&gt;TranslatablePageMarker: Remove unused property and tweak class doc&lt;/nowiki&gt; by Abijeet
* {{git|26117dd6}} - &lt;nowiki&gt;FuzzyBot.php: Update from `use User` to `MediaWiki\User\User`&lt;/nowiki&gt; by wangombe
* {{git|dab9d6e2}} - &lt;nowiki&gt;Unfuzzy translations when the change that made them fuzzy is reverted&lt;/nowiki&gt; ({{phabricator|T367932}}) by Pppery
=== UniversalLanguageSelector ===
* {{git|e7663916}} - &lt;nowiki&gt;Use namespaced classes&lt;/nowiki&gt; by Umherirrender
* {{git|62ebf2e8}} - &lt;nowiki&gt;Update language name search database&lt;/nowiki&gt; ({{phabricator|T369059}}) by Abijeet
* {{git|9ff95c51}} - &lt;nowiki&gt;Update version for MLEB 2024.07 release&lt;/nowiki&gt; ({{phabricator|T369059}}) by Abijeet
* {{git|c82cd6de}} - &lt;nowiki&gt;Drop support for MW 1.40&lt;/nowiki&gt; ({{phabricator|T369064}}) by Abijeet
* {{git|c20d1f0c}} - &lt;nowiki&gt;Update jquery.ime and jquery.uls from upstream&lt;/nowiki&gt; by Amir E. Aharoni
=== UploadWizard ===
* {{git|e45eb281}} - &lt;nowiki&gt;Fix empty-date validation&lt;/nowiki&gt; ({{phabricator|T369324}}) by Matthias Mullie
* {{git|d9618333}} - &lt;nowiki&gt;Use HTML instead of quotes in an API message&lt;/nowiki&gt; by Amir E. Aharoni
* {{git|9491eadd}} - &lt;nowiki&gt;Improve error handling&lt;/nowiki&gt; ({{phabricator|T369053}}) ({{phabricator|T368688}}) ({{phabricator|T365067}}) by Matthias Mullie
* {{git|03f05a5f}} - &lt;nowiki&gt;Describe step: improve the date field&lt;/nowiki&gt; ({{phabricator|T362328}}) by Marco Fossati
* {{git|7f11edfc}} - &lt;nowiki&gt;Special:MyLanguage/Commons:What_Commons_is_not&lt;/nowiki&gt; ({{phabricator|T353110}}) by Simon Legner
* {{git|a48e3c73}} - &lt;nowiki&gt;Uncheck "same as caption" when description is given in URL&lt;/nowiki&gt; ({{phabricator|T367867}}) by Simon Legner
=== VisualEditor ===
* {{git|3d636f1a}} - &lt;nowiki&gt;Diff Renderer: load diff modules before using OOUI classes&lt;/nowiki&gt; ({{phabricator|T360631}}) by Sam Wilson
* {{git|bc9c900b}} - &lt;nowiki&gt;Use transitionend events instead of hard coding animation time&lt;/nowiki&gt; by Ed Sanders
* {{git|47442144}} - &lt;nowiki&gt;Revert "Remove use of deprecated HtmlOutputRendererHelper::init(..."&lt;/nowiki&gt; by Jdlrobson
* {{git|eb3b47be}} - &lt;nowiki&gt;Revert "Remove use of deprecated HtmlInputTransformHelper::init(..."&lt;/nowiki&gt; by Jdlrobson
* {{git|4715dd44}} - &lt;nowiki&gt;Temporarily skip a Cite-related test&lt;/nowiki&gt; ({{phabricator|T247921}}) by Adam Wight
* {{git|51e4edb0}} - &lt;nowiki&gt;Update jsdoc-wmf-theme to 1.1.0&lt;/nowiki&gt; ({{phabricator|T368081}}) by Ed Sanders
* {{git|35bbc54a}} - &lt;nowiki&gt;Account for SkinComponentLink class attribute possibly being an array&lt;/nowiki&gt; ({{phabricator|T367445}}) by David Lynch
* {{git|6bb86cba}} - &lt;nowiki&gt;Remove use of deprecated HtmlInputTransformHelper::init() method&lt;/nowiki&gt; by C. Scott Ananian
* {{git|2fc809dc}} - &lt;nowiki&gt;Replace hardcoded colors with Codex design tokens&lt;/nowiki&gt; ({{phabricator|T366197}}) by Jan Drewniak
* {{git|443e67c5}} - &lt;nowiki&gt;Remove use of deprecated HtmlOutputRendererHelper::init() method&lt;/nowiki&gt; by C. Scott Ananian
* {{git|9204f0a5}} - &lt;nowiki&gt;Remove slug animation values overrides&lt;/nowiki&gt; by Ed Sanders
=== Wikibase ===
* {{git|5e834e42}} - &lt;nowiki&gt;REST: Replace invalid-alias error with invalid-value&lt;/nowiki&gt; ({{phabricator|T369036}}) by Jakob Warkotsch
* {{git|ce6546e8}} - &lt;nowiki&gt;REST: Fix JSON pointer for SetSitelink use case error&lt;/nowiki&gt; by Muhammad Yasser Jazirahly
* {{git|a8a3cbae}} - &lt;nowiki&gt;REST: Replace alias-list-empty with invalid-value&lt;/nowiki&gt; ({{phabricator|T369070}}) by Silvan
* {{git|f75fb7e0}} - &lt;nowiki&gt;REST: Replace 'description-empty' errors with 'invalid-value'&lt;/nowiki&gt; ({{phabricator|T369068}}) by dima koushha
* {{git|0964ac42}} - &lt;nowiki&gt;REST: Replace `invalid-title-field` with `invalid-value`&lt;/nowiki&gt; ({{phabricator|T369029}}) by Muhammad Yasser Jazirahly
* {{git|6e448d5d}} - &lt;nowiki&gt;REST: Replace `invalid-patch-field-type` with `invalid-value`&lt;/nowiki&gt; ({{phabricator|T369032}}) by Muhammad Yasser Jazirahly
* {{git|0d40cdd5}} - &lt;nowiki&gt;REST: Replace label-empty errors with invalid-value&lt;/nowiki&gt; ({{phabricator|T369067}}) by Jakob Warkotsch
* {{git|de2d7891}} - &lt;nowiki&gt;REST: Replace `invalid-statement-type` with `invalid-value`&lt;/nowiki&gt; ({{phabricator|T369038}}) by Muhammad Yasser Jazirahly
* {{git|395e73bb}} - &lt;nowiki&gt;REST: Replace `title-field-empty` with `invalid-value`&lt;/nowiki&gt; ({{phabricator|T369066}}) by Muhammad Yasser Jazirahly
* {{git|7405cc69}} - &lt;nowiki&gt;REST: Replace invalid-input-sitelink-badge with invalid-value&lt;/nowiki&gt; ({{phabricator|T369074}}) by dima koushha
* {{git|a50dc8fd}} - &lt;nowiki&gt;REST: Replace `invalid-site-id` with `invalid-value`&lt;/nowiki&gt; ({{phabricator|T369063}}) by Muhammad Yasser Jazirahly
* {{git|129068a6}} - &lt;nowiki&gt;REST: Replace `invalid-patch-operation` with `invalid-value`&lt;/nowiki&gt; ({{phabricator|T369062}}) by Muhammad Yasser Jazirahly
* {{git|d4e0ebde}} - &lt;nowiki&gt;REST: Improve EmptyAliasException&lt;/nowiki&gt; by Jakob Warkotsch
* {{git|55ea7d79}} - &lt;nowiki&gt;REST: Run tests in parallel in CI but not locally&lt;/nowiki&gt; by Jakob Warkotsch
* {{git|229e9694}} - &lt;nowiki&gt;REST: Replace 'alias-empty' errors with 'invalid-value'&lt;/nowiki&gt; ({{phabricator|T369071}}) by Silvan
* {{git|da0e1dfc}} - &lt;nowiki&gt;Add strict types to modified test file&lt;/nowiki&gt; ({{phabricator|T368369}}) by Arthur Taylor
* {{git|8bdc826e}} - &lt;nowiki&gt;REST: Generalise 'statement-data-invalid-field' error&lt;/nowiki&gt; ({{phabricator|T369040}}) by Silvan
* {{git|b06c39de}} - &lt;nowiki&gt;Defs::getSearchIndexDataFormatterCallbacks(): Support $mode&lt;/nowiki&gt; ({{phabricator|T369149}}) by Lucas Werkmeister
* {{git|620dfe42}} - &lt;nowiki&gt;REST: Use UseCaseError in AssertValidTopLevelFields&lt;/nowiki&gt; by Jakob Warkotsch
* {{git|f87b697c}} - &lt;nowiki&gt;REST: Format/rewrite patch-target-not-found error&lt;/nowiki&gt; ({{phabricator|T366911}}) by dima koushha
* {{git|53ffcdf6}} - &lt;nowiki&gt;Enable parallel tests for the mocha e2e API test suite&lt;/nowiki&gt; ({{phabricator|T368902}}) by Arthur Taylor
* {{git|8b331239}} - &lt;nowiki&gt;PropertyValueExpertsModule: Turn on enableModuleContentVersion()&lt;/nowiki&gt; ({{phabricator|T369155}}) by Lucas Werkmeister
* {{git|c30d7483}} - &lt;nowiki&gt;REST: Replace `invalid-statement-group-type` error with `invalid-value`&lt;/nowiki&gt; ({{phabricator|T369037}}) by Muhammad Yasser Jazirahly
* {{git|906f59b0}} - &lt;nowiki&gt;REST: Remove unused setup.js file&lt;/nowiki&gt; ({{phabricator|T368902}}) by Ollie Shotton
* {{git|7e1f30c3}} - &lt;nowiki&gt;REST: Fix import in GetPropertyAliasesInLanguageTest.js&lt;/nowiki&gt; by Ollie Shotton
* {{git|8edc5172}} - &lt;nowiki&gt;REST: Replace invalid-edit-tag with invalid-value&lt;/nowiki&gt; ({{phabricator|T369028}}) by Jakob Warkotsch
* {{git|b87ed324}} - &lt;nowiki&gt;Enable parallel tests for the mocha openapi-validation test suite&lt;/nowiki&gt; ({{phabricator|T368902}}) by Arthur Taylor
* {{git|b9675c5d}} - &lt;nowiki&gt;REST: Generalise 'cannot-modify-read-only-value' error&lt;/nowiki&gt; ({{phabricator|T366239}}) by Silvan
* {{git|01b2f23d}} - &lt;nowiki&gt;REST: Add version section to README&lt;/nowiki&gt; ({{phabricator|T363804}}) by Ollie Shotton
* {{git|cac2102f}} - &lt;nowiki&gt;REST: Rename RELEASE-NOTES.md -&gt; CHANGELOG.md&lt;/nowiki&gt; by Ollie Shotton
* {{git|6ba7525b}} - &lt;nowiki&gt;REST: Remove empty string param workaround&lt;/nowiki&gt; by Jakob Warkotsch
* {{git|7ed13b7e}} - &lt;nowiki&gt;Replace deprecated ApiPageSet::getGoodTitles&lt;/nowiki&gt; ({{phabricator|T339384}}) by Umherirrender
=== WikibaseCirrusSearch ===
* {{git|e7f6c3ef}} - &lt;nowiki&gt;StatementQuantityFieldTest: Don’t load entities in data provider&lt;/nowiki&gt; ({{phabricator|T369357}}) by Lucas Werkmeister
* {{git|b0feed0c}} - &lt;nowiki&gt;Remove compatibility code&lt;/nowiki&gt; ({{phabricator|T369149}}) by Lucas Werkmeister
* {{git|06836521}} - &lt;nowiki&gt;Try looking up search index data formatters by data type&lt;/nowiki&gt; ({{phabricator|T369149}}) by Lucas Werkmeister
=== WikibaseMediaInfo ===
* {{git|2f741d2b}} - &lt;nowiki&gt;i18n: Use localized digits for more languages button count&lt;/nowiki&gt; by Ebrahim Byagowi
=== WikiLambda ===
* {{git|08e6f4c2}} - &lt;nowiki&gt;Update function-schemata sub-module to HEAD (f1f920e)&lt;/nowiki&gt; by James D. Forrester
* {{git|912761a6}} - &lt;nowiki&gt;Fix ZObjectSelector clear strategy&lt;/nowiki&gt; ({{phabricator|T351206}}) by gengh
* {{git|20e9c3b8}} - &lt;nowiki&gt;selenium: Fixing broken and flaky tests in connect.js&lt;/nowiki&gt; ({{phabricator|T349836}}) by Vaughn Walters
* {{git|756914f2}} - &lt;nowiki&gt;zfunction.js: Update FunctionEvaluator to runnable when implementations are connected&lt;/nowiki&gt; by Daphne Smit
* {{git|552991ad}} - &lt;nowiki&gt;Update function-schemata sub-module to HEAD (851131f)&lt;/nowiki&gt; ({{phabricator|T364413}}) ({{phabricator|T366171}}) ({{phabricator|T368318}}) ({{phabricator|T368856}}) ({{phabricator|T368858}}) ({{phabricator|T369095}}) by James D. Forrester
* {{git|d5c5d678}} - &lt;nowiki&gt;ext.wikilambda.edit.variables.less: Prepare Less styles for math=parens-division&lt;/nowiki&gt; ({{phabricator|T368921}}) by James D. Forrester
* {{git|729e1b2c}} - &lt;nowiki&gt;ZObjectStore: Add -&gt;distinct() for a few selects&lt;/nowiki&gt; by James D. Forrester
=== WikiLove ===
* {{git|b1384c59}} - &lt;nowiki&gt;Use PHP types&lt;/nowiki&gt; by Fomafix
=== WikimediaCampaignEvents ===
* {{git|370e10d0}} - &lt;nowiki&gt;rest: Restore error message for empty grant ID&lt;/nowiki&gt; by Daimona Eaytoy
=== WikimediaMessages ===
* {{git|7a17f745}} - &lt;nowiki&gt;Use content language for wikimedia styles exclusion&lt;/nowiki&gt; ({{phabricator|T367585}}) by Steph Toyofuku
* {{git|9dc7acad}} - &lt;nowiki&gt;Add messages for ipblock-exempt-grantor group&lt;/nowiki&gt; ({{phabricator|T357991}}) ({{phabricator|T139246}}) by sunafterrainwm
=== Wikisource ===
* {{git|e4c49795}} - &lt;nowiki&gt;Inject service UserOptionsLookup into EditPageShowEditFormInitialHandler&lt;/nowiki&gt; by Fomafix
* {{git|091569f2}} - &lt;nowiki&gt;Use $this-&gt;getServiceContainer() in tests&lt;/nowiki&gt; by Fomafix
* {{git|d5a56ea0}} - &lt;nowiki&gt;Use service 'GadgetsRepo' instead of deprecated GadgetRepo::singleton()&lt;/nowiki&gt; by Fomafix
* {{git|dd5cae35}} - &lt;nowiki&gt;Add pt-hd Transkribus model&lt;/nowiki&gt; ({{phabricator|T368090}}) by TheProtonade
== Skins ==
=== MinervaNeue ===
* {{git|9380b86c}} - &lt;nowiki&gt;styles: remove outdated feature phone font size rules&lt;/nowiki&gt; ({{phabricator|T369247}}) by Volker E.
* {{git|853dcf19}} - &lt;nowiki&gt;Force light theme in print styles&lt;/nowiki&gt; ({{phabricator|T366362}}) by Jon Robson
* {{git|400546e5}} - &lt;nowiki&gt;Partial revert "Temporary fix for enabling Mobile VisualEditor in night mode"&lt;/nowiki&gt; ({{phabricator|T368116}}) by Jdlrobson
* {{git|b3f1fb53}} - &lt;nowiki&gt;Definition list has no left margin, only definition items do&lt;/nowiki&gt; ({{phabricator|T367092}}) by Bartosz Dziewoński
=== Vector ===
* {{git|392c81a1}} - &lt;nowiki&gt;Avoid using &lt;noinclude&gt; tag in Vector dark-mode i18n message&lt;/nowiki&gt; ({{phabricator|T367871}}) by Jdrewniak
* {{git|9b93a64f}} - &lt;nowiki&gt;Follow-up to f115016 - Add beta tag &amp; feedback link to Appearance menu&lt;/nowiki&gt; ({{phabricator|T367871}}) by Jdrewniak
* {{git|ce55e8d8}} - &lt;nowiki&gt;Compatibility with new heading HTML (table of contents)&lt;/nowiki&gt; ({{phabricator|T13555}}) ({{phabricator|T358452}}) by Bartosz Dziewoński
* {{git|f1150164}} - &lt;nowiki&gt;Add beta tag &amp; feedback link to Appearance menu&lt;/nowiki&gt; ({{phabricator|T367871}}) by Jdrewniak
* {{git|59e2611f}} - &lt;nowiki&gt;Force light theme in print styles, remove unnecessary css variables&lt;/nowiki&gt; ({{phabricator|T366362}}) by bwang
== Misc ==
=== VisualEditor/VisualEditor ===
* {{git|227cfd31}} - &lt;nowiki&gt;i18n: Use localized digits in VE's find and replace dialog&lt;/nowiki&gt; by Ebrahim Byagowi
* {{git|682a9bc0}} - &lt;nowiki&gt;Handle right-click-delete in Firefox programmatically&lt;/nowiki&gt; ({{phabricator|T220629}}) by Ed Sanders
* {{git|70cce6bb}} - &lt;nowiki&gt;Update OOUI to v0.50.3&lt;/nowiki&gt; by James D. Forrester
* {{git|cf83d253}} - &lt;nowiki&gt;Use safe access (hasOwnProperty) for selection stores&lt;/nowiki&gt; by Ed Sanders
* {{git|3206d1e9}} - &lt;nowiki&gt;fix jsdoc warning&lt;/nowiki&gt; ({{phabricator|T368198}}) by Novem Linguae
* {{git|c2ee0773}} - &lt;nowiki&gt;alphabetize scripts in package.json&lt;/nowiki&gt; by Novem Linguae
* {{git|435d8187}} - &lt;nowiki&gt;ve.dm.TransactionProcessor: Use ve.compare&lt;/nowiki&gt; by Ed Sanders
== No changes ==
* 3D
* ActiveAbstract
* AdvancedSearch
* AntiSpoof
* ApiFeatureUsage
* ArticleCreationWorkflow
* ArticlePlaceholder
* BetaFeatures
* BounceHandler
* Calendar
* Campaigns
* Capiunto
* CategoryTree
* CentralNotice
* CharInsert
* ChessBrowser
* CiteThisPage
* Citoid
* CodeEditor
* Cognate
* Collection
* CologneBlue
* CommonsMetadata
* ConfirmEdit
* ContactPage
* CreditsSource
* Dashiki
* Disambiguator
* DismissableSiteNotice
* DonationInterface
* Elastica
* ElectronPdfService
* EventBus
* EventStreamConfig
* ExtensionDistributor
* ExternalGuidance
* FeaturedFeeds
* FileExporter
* FileImporter
* FundraiserLandingPage
* FundraisingTranslateWorkflow
* GeoCrumbs
* GeoData
* GlobalCssJs
* GlobalUsage
* GlobalUserPage
* GlobalWatchlist
* GoogleNewsSitemap
* Graph
* GuidedTour
* IPInfo
* ImageMap
* ImageSuggestions
* InputBox
* Insider
* Interwiki
* InterwikiSorting
* Josa
* JsonConfig
* LabeledSectionTransclusion
* LandingCheck
* LdapAuthentication
* LoginNotify
* MapSources
* MassMessage
* Math
* MediaModeration
* MediaSearch
* Modern
* MonoBook
* NavigationTiming
* NearbyPages
* NewUserMessage
* Newsletter
* Nostalgia
* Nuke
* OAuthRateLimiter
* PageAssessments
* PageImages
* PageNotice
* PageTriage
* PageViewInfo
* PagedTiffHandler
* ParserFunctions
* ParserMigration
* PdfHandler
* Phonos
* Poem
* PropertySuggester
* QuickSurveys
* Quiz
* RSS
* RealMe
* RelatedArticles
* ReportIncident
* RevisionSlider
* SandboxLink
* Score
* SearchExtraNS
* SearchVue
* SecureLinkFixer
* SecurePoll
* ShortUrl
* SimilarEditors
* SiteMatrix
* SpamBlacklist
* StopForumSpam
* SubPageList3
* SubpageSortkey
* TemplateSandbox
* TemplateStyles
* TemplateWizard
* Thanks
* TheWikipediaLibrary
* Timeless
* TitleBlacklist
* TocTree
* TorBlock
* TranslationNotifications
* TrustedXFF
* TwoColConflict
* UploadsLink
* UrlShortener
* VipsScaler
* VueTest
* WebAuthn
* WikiEditor
* WikibaseLexeme
* WikibaseLexemeCirrusSearch
* WikibaseQualityConstraints
* Wikidata.org
* WikidataPageBanner
* WikimediaApiPortal
* WikimediaApiPortalOAuth
* WikimediaBadges
* WikimediaEditorTasks
* WikimediaEvents
* WikimediaIncubator
* WikimediaMaintenance
* Wikistories
* XAnalytics
* intersection
* wikihiero
== Total changes ==
'''325''' Changes in '''59''' repos by '''85''' authors</text>
    <sha1>190ea0dee2a4c00eea857f4494ae658bea945bf8</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Project:Requests for permissions/SSethi (WMF)</title>
  <ns>4</ns>
  <id>1992203</id>
  <revision>
    <id>6624046</id>
    <parentid>6623994</parentid>
    <timestamp>2024-07-09T01:50:27Z</timestamp>
    <contributor>
      <username>P858snake</username>
      <id>31302</id>
    </contributor>
    <minor/>
    <comment>Fix</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="614" xml:space="preserve">=== User: SSethi (WMF) ===&lt;!--Leave this alone--&gt;
{{Rfur|Translation administrator}} 
{{UserLinks|SSethi (WMF)}}&lt;!--Leave this alone as well--&gt;
&lt;!-- Add a blurb here about why you think you should have the requested rights.--&gt;While working on wiki pages on MediaWiki.org, I sometimes want to move some pages, mark new changes for translation, etc. For these tasks, I currently need to find administrators to assist me. It would be helpful to obtain translation administrator permissions so I can perform these tasks myself. This work is part of my official role as a Developer Advocate in the Language team at WMF.</text>
    <sha1>854ad31201cb7c98293a2fd3b90414144a0ea994</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Topic:Y86ri7vixmss9qk1</title>
  <ns>2600</ns>
  <id>1992228</id>
  <revision>
    <id>6624047</id>
    <timestamp>2024-07-09T01:51:47Z</timestamp>
    <contributor>
      <username>Flow talk page manager</username>
      <id>1946968</id>
    </contributor>
    <comment>/* This page has been converted into a Structured Discussions board */</comment>
    <model>flow-board</model>
    <format>application/json</format>
    <text bytes="1" xml:space="preserve">{"flow-workflow":"y86ri7vixmss9qk1"}</text>
    <sha1>b9014dfd78d07c942f545bcc4036d6baf26001c4</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Category:Special Pages</title>
  <ns>14</ns>
  <id>2784</id>
  <revision>
    <id>6624048</id>
    <parentid>6553002</parentid>
    <timestamp>2024-07-09T01:51:53Z</timestamp>
    <contributor>
      <username>122.155.47.66</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="518" xml:space="preserve">&lt;blockquote&gt;0;s;1;P;o;1;0t;1;0l;1;0o;4;0a;1;0f;0;1t;1;1l;1;1o;3;1a;0;1m;0;1f;0;S;c;0;o;1vd͡ʒ&lt;hiero&gt;
0;s;1;P;o;1;0t;1;0l;1;0o;4;0a;1;0f;0;1t;1;1l;1;1o;3;1a;0;1m;0;1f;0;S;c;0;o;1
๓0;s;1;P;o;1;0t;1;0l;1;0o;4;0a;1;0f;0;1t;1;1l;1;1o;3;1a;0;1m;0;1f;0;S;c;0;o;1

&lt;/hiero&gt;&lt;/blockquote&gt;&lt;languages /&gt;
&lt;translate&gt;
&lt;!--T:1--&gt;
* See: &lt;tvar|1&gt;{{ll|Help:Special pages}}&lt;/&gt;
* See also: [[&lt;tvar|meta&gt;m:Special:MyLanguage/Help:Special page&lt;/&gt;|meta:Help:Special page]]
&lt;/translate&gt;

[[Category:MediaWiki components{{#translation:}}]]</text>
    <sha1>7254b8c5512617b1ab5c3a6ee37c25abe459ec18</sha1>
  </revision>
  <revision>
    <id>6624049</id>
    <parentid>6624048</parentid>
    <timestamp>2024-07-09T01:52:31Z</timestamp>
    <contributor>
      <username>Wooze</username>
      <id>17641074</id>
    </contributor>
    <minor/>
    <comment>Undid edits by [[Special:Contribs/122.155.47.66|122.155.47.66]] ([[User talk:122.155.47.66|talk]]) to last version by Leonidlednev</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="237" xml:space="preserve">&lt;languages /&gt;
&lt;translate&gt;
&lt;!--T:1--&gt;
* See: &lt;tvar|1&gt;{{ll|Help:Special pages}}&lt;/&gt;
* See also: [[&lt;tvar|meta&gt;m:Special:MyLanguage/Help:Special page&lt;/&gt;|meta:Help:Special page]]
&lt;/translate&gt;

[[Category:MediaWiki components{{#translation:}}]]</text>
    <sha1>cda7fecb7b24cd6de8319ad8ca7d4297a2aad7b0</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Topic:Y86v752jrj0g59z3</title>
  <ns>2600</ns>
  <id>1992229</id>
  <revision>
    <id>6624050</id>
    <timestamp>2024-07-09T02:58:05Z</timestamp>
    <contributor>
      <username>Flow talk page manager</username>
      <id>1946968</id>
    </contributor>
    <comment>/* This page has been converted into a Structured Discussions board */</comment>
    <model>flow-board</model>
    <format>application/json</format>
    <text bytes="1" xml:space="preserve">{"flow-workflow":"y86v752jrj0g59z3"}</text>
    <sha1>ed34665f5c70ecd9cee625877e9b6428f7e11181</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Translations:Accessibility guide for developers/79/th</title>
  <ns>1198</ns>
  <id>1992230</id>
  <revision>
    <id>6624051</id>
    <timestamp>2024-07-09T02:59:52Z</timestamp>
    <contributor>
      <username>2001:44C8:4481:2FE2:1:2:1226:55EB</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "หัวข้อควรเป็นคําอธิบาย"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="66" xml:space="preserve">หัวข้อควรเป็นคําอธิบาย</text>
    <sha1>d0975beebe14db86207c5d745e81ef6a3f328a04</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Help:Reverting</title>
  <ns>12</ns>
  <id>1991955</id>
  <revision>
    <id>6624052</id>
    <parentid>6623238</parentid>
    <timestamp>2024-07-09T03:02:51Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <comment>/* When to revert */ Too specific to Wikipedia</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="12278" xml:space="preserve">{{PD Help Page}}

Reverting means restoring a page to an earlier version from its history.

== When to revert ==
=== Do's ===
* Reverting edits should be done with caution.
* It's often used to stop [[Manual:Combating vandalism|vandalism]] and similar abuse.
* If you're unsure about doing a revert, discuss it on the article's talk page first.
* If an edit isn't satisfactory, try to improve it by fixing errors, grammar, or style.
* You can revert your edit if it's wrong, but check if others have made changes first.
* If only a part of an edit is problematic, just fix that part instead of reverting the whole thing.

=== Don'ts ===
* Don't leave unnecessary or poorly written material in place, as this can be a disservice to the reader. Good intentions aside, it's important to maintain quality.
* If your edit is reverted, '''don't take it personally'''; not everything fits into the wiki.
* Problematic sections or changes should be improved, not deleted, if they contain valid information.
* If it's hard to determine the truth or usefulness of a claim, discuss it on the talk page. As a last resort, move biased material to the talk page instead of deleting it.

== How to revert ==
=== Manual method ===
* Go to the page's "[[Help:History|History]]" tab and select the time and date of the earlier version you want to revert to.
* The selected version will display a message similar to this indicating it is an old revision: "Revision as of 13:23, July 5, 2024 by **** (talk | contribs) (some text)".
* Click "[[Help:Editing pages|edit this page]]" for that version.
* {{Note|type=reminder|text=When dealing with vandalism, ensure you revert to the last non-vandalized version, as there may be multiple vandal edits.}}
* You will see a warning above the edit box saying, "'''Warning: You are editing an out-of-date revision of this page.''' If you publish it, any changes made since this revision will be lost."
* Ignore this warning and take note of the below before you save the page.
** Use "revert" or "rv" in the edit summary and briefly explain.
** You can wikilink the username or IP address involved:
*** Example for an IP address: &lt;code&gt;Reverted edits by [[Special:Contributions/&lt;IP address&gt;|&lt;IP address&gt;]] to last version by [[Special:Contributions/Example|Example]]&lt;/code&gt;
*** Example for a username: &lt;code&gt;Reverted edits by [[User:&lt;username&gt;|&lt;username&gt;]] to last version by [[User:Example|Example]]&lt;/code&gt;
** Use "rvv" for blatant vandalism.
* Check the "history" tab again to ensure the vandalism is undone. If subsequent constructive edits were undone, redo them if possible.
** If large text sections were deleted and subsequent edits were made, it might be easier to cut and paste the missing sections back in.
* Review the [[Help:User contributions|contribution history]] of the user who vandalized the page to see if they targeted multiple pages. If they have, report them to MediaWiki [[Special:ListUsers/sysop|administrators]].

In [[MediaWiki 1.35|MediaWiki 1.35]], MediaWiki looks at the last 15 edits to see if the new edit matches any of them. If it does, the new edit gets the &lt;code&gt;mw-manual-revert&lt;/code&gt; tag.

=== Automating ===
Edits can also be undone using [[Page Previews|Page Previews]].

== Undo ==
You can undo an edit without affecting later changes. To do this, view the [[Help:Diff|diff]] for that edit and click "undo".
MediaWiki will try to create an edit page with the undesirable edits removed while keeping all later edits.
You can also change the default edit summary and make further changes before saving.

This feature removes the need to redo useful changes after undoing an edit.
However, it won't work if undoing the edit conflicts with subsequent edits.
For example, if edit 1000 adds a paragraph and edit 1005 changes it, you can't automatically undo edit 1000.
You'll have to fix this manually.

=== Misuse ===
Vandalizers can easily restore their changes by clicking "undo" next to their reverted edits.
These actions are undone again and treated as vandalism.

=== Undo change tag ===
Before [[MediaWiki 1.36|MediaWiki 1.36]], any edits initiated with the "undo" link were marked with the &lt;code&gt;mw-undo&lt;/code&gt; change tag.

Starting from [[MediaWiki 1.36|MediaWiki 1.36]], any modifications made by the user before saving will not be marked as undos'. This change prevents users from labeling arbitrary edits as undos'.

== Advanced features ==
=== Rollback ===
[[Special:ListUsers/sysop|Administrators]] and authorized users with access to the tool have "rollback" links that:
- Are visible only next to the most recent edit
- Revert ''all'' subsequent edits by the last editor
- Work instantly without a confirmation page
- Add an automatic [[Help:Edit summary|edit summary]], "''Reverted edits by [[special:contributions/Example|Example]] ([[user talk:Example|talk]]) to last version by Example2'' ", marking the edit as minor ('''m''').

Rollback links are found on user [[Help:User contributions|contributions]], [[Help:History|history]], and [[Help:Diff|diff]] pages.
It's important to note that on diff pages, rollback links can be misleading because they may not revert to the exact version shown.
The diff page might display a combination of edits, including those by other editors, or only part of what the rollback button would undo.
To accurately see what changes the rollback button will revert to, review the specific diff that compares the last version by the previous editor with the most recent version.

Rollback is faster than undo because of the following:
* You can revert changes instantly without checking revisions or diffs.
* No need to load an edit page or send text back to the server.
* It doesn't require clicking the save button.

Unlike undo, rollback isn't as flexible since you can't choose which edits to undo.
You might need to revert more or fewer edits than what rollback allows or edits that aren't the most recent.
Rollback also doesn't let you add an explanation to the automatic edit summary.
It's mainly used for quickly undoing clear cases of vandalism.

When you rollback a good-faith edit without explaining why, it can be misunderstood as implying the edit was as bad as vandalism and didn't merit an explanation.
Some editors may take this personally.
If you use rollback for reasons other than dealing with vandalism (like when undoing isn't feasible due to page size), it's polite to leave a note on the article's talk page or the user's talk page to clarify your reasons.

If someone else made changes or reverted the page before you clicked "rollback," or if there were no prior edits, you'll encounter an error message.

=== Bot rollback ===
In cases of flood vandalism, administrators can hide it from [[Help:Recent changes|recent changes]] by adding &amp;bot=1 to the end of the URL for a user's contributions. For example, &lt;code&gt;http://en.wikipedia.org/w/wiki.phtml?title=Special:Contributions&amp;target=SomePersistentVandal&amp;bot=1&lt;/code&gt;.

Clicking the rollback links on the contributions list hides both the reverted edit and the original edit from recent changes unless you click the "bots" link to set &lt;tt&gt;hidebots=0&lt;/tt&gt;.
These edits are still visible in contributions lists, page histories, and watchlists, and they remain in the database.
This feature aims to prevent recent changes from being overwhelmed by mass vandalism and should only be used for such cases, ''not'' for undoing edits you just don't like.

== Reverted edits ==
Since [[MediaWiki 1.36|MediaWiki 1.36]], reverted edits are marked with the mw-reverted change tag. This applies to all three methods mentioned earlier, with these additional conditions:

* The number of reverted edits must be less than or equal to &lt;code&gt;[[Manual:$wgRevertedTagMaxDepth|$wgRevertedTagMaxDepth]]&lt;/code&gt; (default is 15).
* The reverting edit must not be marked as reverted or [[Help:RevisionDelete|deleted]].

The &lt;code&gt;mw-reverted&lt;/code&gt; tag is added soon after a revert if the edit is automatically approved. What ''auto-approved'' means can differ depending on your wiki's settings:

* If [[mw:Help:Patrolled edits|patrolling]] is enabled on your wiki, auto-approval makes the edit autopatrolled, so only users with the &lt;code&gt;autopatrol&lt;/code&gt; user right will see their reverted tag applied immediately.
* If you use an extension like [[Extension:FlaggedRevs|FlaggedRevs]], it can tell MediaWiki if the edit is auto-approved. How this is determined depends on the extension (see [[#Extension integration]]).

If the edit isn't ''auto-approved'', you can add the reverted tag later after it's been approved, patrolled, or reviewed.

=== Rationale ===
The approval system prevents vandals from marking many edits as ''reverted'', which would make the reverted tag useless.
If your wiki uses an edit review process properly, it should be unnoticed by editors making ''good'' edits.

=== Extension integration ===
==== FlaggedRevs ====
If your wiki uses the [[Extension:FlaggedRevs|FlaggedRevs extension]], a revert will be auto-approved if any of these conditions apply:
- FlaggedRevs isn't used on the page.
- The user has &lt;code&gt;autoreview&lt;/code&gt; rights.
- The user is reverting their edit.
- The edit meets the criteria to be autoreviewed.

If the revert wasn't auto-approved, it can be approved later by reviewing the edit.

== Revert wars are considered harmful ==
=== Reasons ===
[[w:Wikipedia:Revert only when necessary|Revert wars]] are usually seen as harmful for these reasons:

# They create bad feelings among users, disrupt articles, and make other editors hesitant to contribute.
# They waste database space, clutter the [[Help:Page history|page history]], and flood recent changes and watchlists.
# Some editors may feel hurt by reverts, thinking their hard work was dismissed.
# They often cause inconsistencies in articles because editors focus only on one part without considering the whole.

==== Resolutions ====
Editors shouldn't revert just because they disagree. Instead, they can discuss their objections on a talk page or use [[w:Wikipedia:Dispute resolution|dispute resolution]] processes.

=== Three-revert rule ===
:''Main article: [[w:Wikipedia:Three-revert rule|Three-revert rule]]''
To limit [[w:Wikipedia:Edit war|edit wars]], you can't undo changes to a page more than three times in one day.
Trying to get around this rule, like reverting a fourth time just after 24 hours, is strongly discouraged and could lead to [[Help:Blocking users|account restrictions]].

=== Explain reverts ===
When you revert an edit, explain ''why'' so the editor can understand why it happened.
This allows them the opportunity to make revisions that address the identified issue.

Giving reasons for reversions helps other editors understand if they need to check reverted content, like when a page is [[w:Wikipedia:Blanking a page|blanked]].
Clear communication prevents misunderstandings and [[w:Wikipedia:Edit war|edit wars]].
It also informs readers about the reliability and how current the information on the page is.

Consider leaving a note on the Talk page if your reason is too long to be placed in an [[Help:Edit summary|edit summary]].
It's often better to discuss first before reverting, giving the other editor a chance to understand and possibly adjust their edit.
Similarly, if your edit is reverted without explanation, wait a bit to see if the other editor provides clarification on the article's Talk page or your own.

=== Exceptions ===
Edits that avoid starting [[w:Wikipedia:Edit war|edit wars]] are exceptions to the three-revert rule. These include reverting obvious vandalism, actions against banned users, or removing potentially harmful content. (See [[w:Wikipedia:Three-revert rule#Exceptions|Exceptions to the three-revert rule]]).

If you notice a rule violation, it's best to request '''page protection''' leaving a note on the Talk page and notifying an [[Special:ListUsers/sysop|administrator]], instead of repeatedly reverting edits. Ignoring this could lead to the page being protected with the preferred version of the non-violating party, and violators may face blocking or investigation by the Arbitration Committee.

==See also==

*[[Help:Extension:Translate/Page translation administration|"Reverting" in page translation administration]]

[[Category:Help]]</text>
    <sha1>075674b94f4c9bea4fb007e304bd997e049de560</sha1>
  </revision>
  <revision>
    <id>6624053</id>
    <parentid>6624052</parentid>
    <timestamp>2024-07-09T03:04:23Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <comment>/* When to revert */ Ce. This entire section may be worth deleting as PD help generally isn't the place to preach to people about how to manage their wikis, but I'll leave it for now</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="12206" xml:space="preserve">{{PD Help Page}}

Reverting means restoring a page to an earlier version from its history.

== When to revert ==
=== Do's ===
* Reverting edits should be done with caution.
* It's often used to stop [[Manual:Combating vandalism|vandalism]] and similar abuse.
* If you're unsure about doing a revert, discuss it on the talk page first.
* You can revert your edit if you realize it is wrong, but check if others have made changes first.
* If only a part of an edit is problematic, just fix that part instead of reverting the whole thing.

=== Don'ts ===
* Don't leave unnecessary or poorly written material in place, as this can be a disservice to the reader. Good intentions aside, it's important to maintain quality.
* If your edit is reverted, '''don't take it personally'''; not everything fits into the scope of the wiki.
* Problematic sections or changes should be improved, not deleted, if they contain valid information.
* If it's hard to determine the truth or usefulness of a claim, discuss it on the talk page. As a last resort, move biased material to the talk page instead of deleting it.

== How to revert ==
=== Manual method ===
* Go to the page's "[[Help:History|History]]" tab and select the time and date of the earlier version you want to revert to.
* The selected version will display a message similar to this indicating it is an old revision: "Revision as of 13:23, July 5, 2024 by **** (talk | contribs) (some text)".
* Click "[[Help:Editing pages|edit this page]]" for that version.
* {{Note|type=reminder|text=When dealing with vandalism, ensure you revert to the last non-vandalized version, as there may be multiple vandal edits.}}
* You will see a warning above the edit box saying, "'''Warning: You are editing an out-of-date revision of this page.''' If you publish it, any changes made since this revision will be lost."
* Ignore this warning and take note of the below before you save the page.
** Use "revert" or "rv" in the edit summary and briefly explain.
** You can wikilink the username or IP address involved:
*** Example for an IP address: &lt;code&gt;Reverted edits by [[Special:Contributions/&lt;IP address&gt;|&lt;IP address&gt;]] to last version by [[Special:Contributions/Example|Example]]&lt;/code&gt;
*** Example for a username: &lt;code&gt;Reverted edits by [[User:&lt;username&gt;|&lt;username&gt;]] to last version by [[User:Example|Example]]&lt;/code&gt;
** Use "rvv" for blatant vandalism.
* Check the "history" tab again to ensure the vandalism is undone. If subsequent constructive edits were undone, redo them if possible.
** If large text sections were deleted and subsequent edits were made, it might be easier to cut and paste the missing sections back in.
* Review the [[Help:User contributions|contribution history]] of the user who vandalized the page to see if they targeted multiple pages. If they have, report them to MediaWiki [[Special:ListUsers/sysop|administrators]].

In [[MediaWiki 1.35|MediaWiki 1.35]], MediaWiki looks at the last 15 edits to see if the new edit matches any of them. If it does, the new edit gets the &lt;code&gt;mw-manual-revert&lt;/code&gt; tag.

=== Automating ===
Edits can also be undone using [[Page Previews|Page Previews]].

== Undo ==
You can undo an edit without affecting later changes. To do this, view the [[Help:Diff|diff]] for that edit and click "undo".
MediaWiki will try to create an edit page with the undesirable edits removed while keeping all later edits.
You can also change the default edit summary and make further changes before saving.

This feature removes the need to redo useful changes after undoing an edit.
However, it won't work if undoing the edit conflicts with subsequent edits.
For example, if edit 1000 adds a paragraph and edit 1005 changes it, you can't automatically undo edit 1000.
You'll have to fix this manually.

=== Misuse ===
Vandalizers can easily restore their changes by clicking "undo" next to their reverted edits.
These actions are undone again and treated as vandalism.

=== Undo change tag ===
Before [[MediaWiki 1.36|MediaWiki 1.36]], any edits initiated with the "undo" link were marked with the &lt;code&gt;mw-undo&lt;/code&gt; change tag.

Starting from [[MediaWiki 1.36|MediaWiki 1.36]], any modifications made by the user before saving will not be marked as undos'. This change prevents users from labeling arbitrary edits as undos'.

== Advanced features ==
=== Rollback ===
[[Special:ListUsers/sysop|Administrators]] and authorized users with access to the tool have "rollback" links that:
- Are visible only next to the most recent edit
- Revert ''all'' subsequent edits by the last editor
- Work instantly without a confirmation page
- Add an automatic [[Help:Edit summary|edit summary]], "''Reverted edits by [[special:contributions/Example|Example]] ([[user talk:Example|talk]]) to last version by Example2'' ", marking the edit as minor ('''m''').

Rollback links are found on user [[Help:User contributions|contributions]], [[Help:History|history]], and [[Help:Diff|diff]] pages.
It's important to note that on diff pages, rollback links can be misleading because they may not revert to the exact version shown.
The diff page might display a combination of edits, including those by other editors, or only part of what the rollback button would undo.
To accurately see what changes the rollback button will revert to, review the specific diff that compares the last version by the previous editor with the most recent version.

Rollback is faster than undo because of the following:
* You can revert changes instantly without checking revisions or diffs.
* No need to load an edit page or send text back to the server.
* It doesn't require clicking the save button.

Unlike undo, rollback isn't as flexible since you can't choose which edits to undo.
You might need to revert more or fewer edits than what rollback allows or edits that aren't the most recent.
Rollback also doesn't let you add an explanation to the automatic edit summary.
It's mainly used for quickly undoing clear cases of vandalism.

When you rollback a good-faith edit without explaining why, it can be misunderstood as implying the edit was as bad as vandalism and didn't merit an explanation.
Some editors may take this personally.
If you use rollback for reasons other than dealing with vandalism (like when undoing isn't feasible due to page size), it's polite to leave a note on the article's talk page or the user's talk page to clarify your reasons.

If someone else made changes or reverted the page before you clicked "rollback," or if there were no prior edits, you'll encounter an error message.

=== Bot rollback ===
In cases of flood vandalism, administrators can hide it from [[Help:Recent changes|recent changes]] by adding &amp;bot=1 to the end of the URL for a user's contributions. For example, &lt;code&gt;http://en.wikipedia.org/w/wiki.phtml?title=Special:Contributions&amp;target=SomePersistentVandal&amp;bot=1&lt;/code&gt;.

Clicking the rollback links on the contributions list hides both the reverted edit and the original edit from recent changes unless you click the "bots" link to set &lt;tt&gt;hidebots=0&lt;/tt&gt;.
These edits are still visible in contributions lists, page histories, and watchlists, and they remain in the database.
This feature aims to prevent recent changes from being overwhelmed by mass vandalism and should only be used for such cases, ''not'' for undoing edits you just don't like.

== Reverted edits ==
Since [[MediaWiki 1.36|MediaWiki 1.36]], reverted edits are marked with the mw-reverted change tag. This applies to all three methods mentioned earlier, with these additional conditions:

* The number of reverted edits must be less than or equal to &lt;code&gt;[[Manual:$wgRevertedTagMaxDepth|$wgRevertedTagMaxDepth]]&lt;/code&gt; (default is 15).
* The reverting edit must not be marked as reverted or [[Help:RevisionDelete|deleted]].

The &lt;code&gt;mw-reverted&lt;/code&gt; tag is added soon after a revert if the edit is automatically approved. What ''auto-approved'' means can differ depending on your wiki's settings:

* If [[mw:Help:Patrolled edits|patrolling]] is enabled on your wiki, auto-approval makes the edit autopatrolled, so only users with the &lt;code&gt;autopatrol&lt;/code&gt; user right will see their reverted tag applied immediately.
* If you use an extension like [[Extension:FlaggedRevs|FlaggedRevs]], it can tell MediaWiki if the edit is auto-approved. How this is determined depends on the extension (see [[#Extension integration]]).

If the edit isn't ''auto-approved'', you can add the reverted tag later after it's been approved, patrolled, or reviewed.

=== Rationale ===
The approval system prevents vandals from marking many edits as ''reverted'', which would make the reverted tag useless.
If your wiki uses an edit review process properly, it should be unnoticed by editors making ''good'' edits.

=== Extension integration ===
==== FlaggedRevs ====
If your wiki uses the [[Extension:FlaggedRevs|FlaggedRevs extension]], a revert will be auto-approved if any of these conditions apply:
- FlaggedRevs isn't used on the page.
- The user has &lt;code&gt;autoreview&lt;/code&gt; rights.
- The user is reverting their edit.
- The edit meets the criteria to be autoreviewed.

If the revert wasn't auto-approved, it can be approved later by reviewing the edit.

== Revert wars are considered harmful ==
=== Reasons ===
[[w:Wikipedia:Revert only when necessary|Revert wars]] are usually seen as harmful for these reasons:

# They create bad feelings among users, disrupt articles, and make other editors hesitant to contribute.
# They waste database space, clutter the [[Help:Page history|page history]], and flood recent changes and watchlists.
# Some editors may feel hurt by reverts, thinking their hard work was dismissed.
# They often cause inconsistencies in articles because editors focus only on one part without considering the whole.

==== Resolutions ====
Editors shouldn't revert just because they disagree. Instead, they can discuss their objections on a talk page or use [[w:Wikipedia:Dispute resolution|dispute resolution]] processes.

=== Three-revert rule ===
:''Main article: [[w:Wikipedia:Three-revert rule|Three-revert rule]]''
To limit [[w:Wikipedia:Edit war|edit wars]], you can't undo changes to a page more than three times in one day.
Trying to get around this rule, like reverting a fourth time just after 24 hours, is strongly discouraged and could lead to [[Help:Blocking users|account restrictions]].

=== Explain reverts ===
When you revert an edit, explain ''why'' so the editor can understand why it happened.
This allows them the opportunity to make revisions that address the identified issue.

Giving reasons for reversions helps other editors understand if they need to check reverted content, like when a page is [[w:Wikipedia:Blanking a page|blanked]].
Clear communication prevents misunderstandings and [[w:Wikipedia:Edit war|edit wars]].
It also informs readers about the reliability and how current the information on the page is.

Consider leaving a note on the Talk page if your reason is too long to be placed in an [[Help:Edit summary|edit summary]].
It's often better to discuss first before reverting, giving the other editor a chance to understand and possibly adjust their edit.
Similarly, if your edit is reverted without explanation, wait a bit to see if the other editor provides clarification on the article's Talk page or your own.

=== Exceptions ===
Edits that avoid starting [[w:Wikipedia:Edit war|edit wars]] are exceptions to the three-revert rule. These include reverting obvious vandalism, actions against banned users, or removing potentially harmful content. (See [[w:Wikipedia:Three-revert rule#Exceptions|Exceptions to the three-revert rule]]).

If you notice a rule violation, it's best to request '''page protection''' leaving a note on the Talk page and notifying an [[Special:ListUsers/sysop|administrator]], instead of repeatedly reverting edits. Ignoring this could lead to the page being protected with the preferred version of the non-violating party, and violators may face blocking or investigation by the Arbitration Committee.

==See also==

*[[Help:Extension:Translate/Page translation administration|"Reverting" in page translation administration]]

[[Category:Help]]</text>
    <sha1>6182dd0f7fc96e15de15b5eb4de4b3c05d47d208</sha1>
  </revision>
  <revision>
    <id>6624058</id>
    <parentid>6624053</parentid>
    <timestamp>2024-07-09T03:13:35Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <comment>Cleanup</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11764" xml:space="preserve">{{PD Help Page}}

Reverting means restoring a page to an earlier version from its history.

== When to revert ==
=== Do's ===
* Reverting edits should be done with caution.
* It's often used to stop [[Manual:Combating vandalism|vandalism]] and similar abuse.
* If you're unsure about doing a revert, discuss it on the talk page first.
* You can revert your edit if you realize it is wrong, but check if others have made changes first.
* If only a part of an edit is problematic, just fix that part instead of reverting the whole thing.

=== Don'ts ===
* Don't leave unnecessary or poorly written material in place, as this can be a disservice to the reader. Good intentions aside, it's important to maintain quality.
* If your edit is reverted, '''don't take it personally'''; not everything fits into the scope of the wiki.
* Problematic sections or changes should be improved, not deleted, if they contain valid information.
* If it's hard to determine the truth or usefulness of a claim, discuss it on the talk page. As a last resort, move biased material to the talk page instead of deleting it.

== How to revert ==
=== Manual method ===
* Go to the page's "[[Help:History|History]]" tab and select the time and date of the earlier version you want to revert to.
* The selected version will display a message similar to this indicating it is an old revision: "{{int|revision-info|17:33, 27 June 2024|Example|||||&amp;#32;(edit summary)}}".
* Click "[[Help:Editing pages|edit this page]]" for that version.
* {{Note|type=reminder|text=When dealing with vandalism, ensure you revert to the last non-vandalized version, as there may be multiple vandal edits.}}
* You will see a warning above the edit box saying, "{{int|editingold}}"
* Ignore this warning and take note of the below before you save the page.
** Use "revert" or "rv" in the edit summary and briefly explain.
** You can wikilink the username or IP address involved:
*** Example for an IP address: &lt;code&gt;{{int|revertpage-anon|Alice|&lt;IP address&gt;||||1}}&lt;/code&gt;
*** Example for a username: &lt;code&gt;{{int|revertpage|Alice|Bob||||1}}&lt;/code&gt;
** Use "rvv" for blatant vandalism.
* Check the "history" tab again to ensure the vandalism is undone. If subsequent constructive edits were undone, redo them if possible.
* Review the [[Help:User contributions|contribution history]] of the user who vandalized the page to see if they targeted multiple pages. If they have, report them to the [[Special:ListUsers/sysop|administrators]].

MediaWiki looks at the last 15 edits to see if the new edit matches any of them. If it does, the new edit gets the &lt;code&gt;mw-manual-revert&lt;/code&gt; tag.

=== Automating ===
Edits can also be undone using [[Page Previews|Page Previews]].

== Undo ==
You can undo an edit without affecting later changes. To do this, view the [[Help:Diff|diff]] for that edit and click "undo".
MediaWiki will try to create an edit page with the undesirable edits removed while keeping all later edits.
You can also change the default edit summary and make further changes before saving.

This feature removes the need to redo useful changes after undoing an edit.
However, it won't work if undoing the edit conflicts with subsequent edits.
For example, if edit 1000 adds a paragraph and edit 1005 changes it, you can't automatically undo edit 1000.
You'll have to fix this manually.

=== Misuse ===
Vandalizers can easily restore their changes by clicking "undo" next to their reverted edits.
These actions are undone again and treated as vandalism.

=== Undo change tag ===
Before [[MediaWiki 1.36|MediaWiki 1.36]], any edits initiated with the "undo" link were marked with the &lt;code&gt;mw-undo&lt;/code&gt; change tag.

Starting from [[MediaWiki 1.36|MediaWiki 1.36]], any modifications made by the user before saving will not be marked as undos'. This change prevents users from labeling arbitrary edits as undos'.

== Advanced features ==
=== Rollback ===
[[Special:ListUsers/sysop|Administrators]] and authorized users with access to the tool have "rollback" links that:
- Are visible only next to the most recent edit
- Revert ''all'' subsequent edits by the last editor
- Work instantly without a confirmation page
- Add an automatic [[Help:Edit summary|edit summary]], "''Reverted edits by [[special:contributions/Example|Example]] ([[user talk:Example|talk]]) to last version by Example2'' ", marking the edit as minor ('''m''').

Rollback links are found on user [[Help:User contributions|contributions]], [[Help:History|history]], and [[Help:Diff|diff]] pages.
It's important to note that on diff pages, rollback links can be misleading because they may not revert to the exact version shown.
The diff page might display a combination of edits, including those by other editors, or only part of what the rollback button would undo.
To accurately see what changes the rollback button will revert to, review the specific diff that compares the last version by the previous editor with the most recent version.

Rollback is faster than undo because of the following:
* You can revert changes instantly without checking revisions or diffs.
* No need to load an edit page or send text back to the server.
* It doesn't require clicking the save button.

Unlike undo, rollback isn't as flexible since you can't choose which edits to undo.
You might need to revert more or fewer edits than what rollback allows or edits that aren't the most recent.
Rollback also doesn't let you add an explanation to the automatic edit summary.
It's mainly used for quickly undoing clear cases of vandalism.

When you rollback a good-faith edit without explaining why, it can be misunderstood as implying the edit was as bad as vandalism and didn't merit an explanation.
Some editors may take this personally.
If you use rollback for reasons other than dealing with vandalism (like when undoing isn't feasible due to page size), it's polite to leave a note on the article's talk page or the user's talk page to clarify your reasons.

If someone else made changes or reverted the page before you clicked "rollback," or if there were no prior edits, you'll encounter an error message.

=== Bot rollback ===
In cases of flood vandalism, administrators can hide it from [[Help:Recent changes|recent changes]] by adding &amp;bot=1 to the end of the URL for a user's contributions. For example, &lt;code&gt;http://en.wikipedia.org/w/wiki.phtml?title=Special:Contributions&amp;target=SomePersistentVandal&amp;bot=1&lt;/code&gt;.

Clicking the rollback links on the contributions list hides both the reverted edit and the original edit from recent changes unless you click the "bots" link to set &lt;tt&gt;hidebots=0&lt;/tt&gt;.
These edits are still visible in contributions lists, page histories, and watchlists, and they remain in the database.
This feature aims to prevent recent changes from being overwhelmed by mass vandalism and should only be used for such cases, ''not'' for undoing edits you just don't like.

== Reverted edits ==
Since [[MediaWiki 1.36|MediaWiki 1.36]], reverted edits are marked with the mw-reverted change tag. This applies to all three methods mentioned earlier, with these additional conditions:

* The number of reverted edits must be less than or equal to &lt;code&gt;[[Manual:$wgRevertedTagMaxDepth|$wgRevertedTagMaxDepth]]&lt;/code&gt; (default is 15).
* The reverting edit must not be marked as reverted or [[Help:RevisionDelete|deleted]].

The &lt;code&gt;mw-reverted&lt;/code&gt; tag is added soon after a revert if the edit is automatically approved. What ''auto-approved'' means can differ depending on your wiki's settings:

* If [[mw:Help:Patrolled edits|patrolling]] is enabled on your wiki, auto-approval makes the edit autopatrolled, so only users with the &lt;code&gt;autopatrol&lt;/code&gt; user right will see their reverted tag applied immediately.
* If you use an extension like [[Extension:FlaggedRevs|FlaggedRevs]], it can tell MediaWiki if the edit is auto-approved. How this is determined depends on the extension (see [[#Extension integration]]).

If the edit isn't ''auto-approved'', you can add the reverted tag later after it's been approved, patrolled, or reviewed.

=== Rationale ===
The approval system prevents vandals from marking many edits as ''reverted'', which would make the reverted tag useless.
If your wiki uses an edit review process properly, it should be unnoticed by editors making ''good'' edits.

=== Extension integration ===
==== FlaggedRevs ====
If your wiki uses the [[Extension:FlaggedRevs|FlaggedRevs extension]], a revert will be auto-approved if any of these conditions apply:
- FlaggedRevs isn't used on the page.
- The user has &lt;code&gt;autoreview&lt;/code&gt; rights.
- The user is reverting their edit.
- The edit meets the criteria to be autoreviewed.

If the revert wasn't auto-approved, it can be approved later by reviewing the edit.

== Revert wars are considered harmful ==
=== Reasons ===
[[w:Wikipedia:Revert only when necessary|Revert wars]] are usually seen as harmful for these reasons:

# They create bad feelings among users, disrupt articles, and make other editors hesitant to contribute.
# They waste database space, clutter the [[Help:Page history|page history]], and flood recent changes and watchlists.
# Some editors may feel hurt by reverts, thinking their hard work was dismissed.
# They often cause inconsistencies in articles because editors focus only on one part without considering the whole.

==== Resolutions ====
Editors shouldn't revert just because they disagree. Instead, they can discuss their objections on a talk page or use [[w:Wikipedia:Dispute resolution|dispute resolution]] processes.

=== Three-revert rule ===
:''Main article: [[w:Wikipedia:Three-revert rule|Three-revert rule]]''
To limit [[w:Wikipedia:Edit war|edit wars]], you can't undo changes to a page more than three times in one day.
Trying to get around this rule, like reverting a fourth time just after 24 hours, is strongly discouraged and could lead to [[Help:Blocking users|account restrictions]].

=== Explain reverts ===
When you revert an edit, explain ''why'' so the editor can understand why it happened.
This allows them the opportunity to make revisions that address the identified issue.

Giving reasons for reversions helps other editors understand if they need to check reverted content, like when a page is [[w:Wikipedia:Blanking a page|blanked]].
Clear communication prevents misunderstandings and [[w:Wikipedia:Edit war|edit wars]].
It also informs readers about the reliability and how current the information on the page is.

Consider leaving a note on the Talk page if your reason is too long to be placed in an [[Help:Edit summary|edit summary]].
It's often better to discuss first before reverting, giving the other editor a chance to understand and possibly adjust their edit.
Similarly, if your edit is reverted without explanation, wait a bit to see if the other editor provides clarification on the article's Talk page or your own.

=== Exceptions ===
Edits that avoid starting [[w:Wikipedia:Edit war|edit wars]] are exceptions to the three-revert rule. These include reverting obvious vandalism, actions against banned users, or removing potentially harmful content. (See [[w:Wikipedia:Three-revert rule#Exceptions|Exceptions to the three-revert rule]]).

If you notice a rule violation, it's best to request '''page protection''' leaving a note on the Talk page and notifying an [[Special:ListUsers/sysop|administrator]], instead of repeatedly reverting edits. Ignoring this could lead to the page being protected with the preferred version of the non-violating party, and violators may face blocking or investigation by the Arbitration Committee.

==See also==

*[[Help:Extension:Translate/Page translation administration|"Reverting" in page translation administration]]

[[Category:Help]]</text>
    <sha1>c5333fcd6eed01cab72a17f81f3f7f789926baf0</sha1>
  </revision>
  <revision>
    <id>6624059</id>
    <parentid>6624058</parentid>
    <timestamp>2024-07-09T03:14:02Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <comment>Code is morally neutral, of course they can</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11572" xml:space="preserve">{{PD Help Page}}

Reverting means restoring a page to an earlier version from its history.

== When to revert ==
=== Do's ===
* Reverting edits should be done with caution.
* It's often used to stop [[Manual:Combating vandalism|vandalism]] and similar abuse.
* If you're unsure about doing a revert, discuss it on the talk page first.
* You can revert your edit if you realize it is wrong, but check if others have made changes first.
* If only a part of an edit is problematic, just fix that part instead of reverting the whole thing.

=== Don'ts ===
* Don't leave unnecessary or poorly written material in place, as this can be a disservice to the reader. Good intentions aside, it's important to maintain quality.
* If your edit is reverted, '''don't take it personally'''; not everything fits into the scope of the wiki.
* Problematic sections or changes should be improved, not deleted, if they contain valid information.
* If it's hard to determine the truth or usefulness of a claim, discuss it on the talk page. As a last resort, move biased material to the talk page instead of deleting it.

== How to revert ==
=== Manual method ===
* Go to the page's "[[Help:History|History]]" tab and select the time and date of the earlier version you want to revert to.
* The selected version will display a message similar to this indicating it is an old revision: "{{int|revision-info|17:33, 27 June 2024|Example|||||&amp;#32;(edit summary)}}".
* Click "[[Help:Editing pages|edit this page]]" for that version.
* {{Note|type=reminder|text=When dealing with vandalism, ensure you revert to the last non-vandalized version, as there may be multiple vandal edits.}}
* You will see a warning above the edit box saying, "{{int|editingold}}"
* Ignore this warning and take note of the below before you save the page.
** Use "revert" or "rv" in the edit summary and briefly explain.
** You can wikilink the username or IP address involved:
*** Example for an IP address: &lt;code&gt;{{int|revertpage-anon|Alice|&lt;IP address&gt;||||1}}&lt;/code&gt;
*** Example for a username: &lt;code&gt;{{int|revertpage|Alice|Bob||||1}}&lt;/code&gt;
** Use "rvv" for blatant vandalism.
* Check the "history" tab again to ensure the vandalism is undone. If subsequent constructive edits were undone, redo them if possible.
* Review the [[Help:User contributions|contribution history]] of the user who vandalized the page to see if they targeted multiple pages. If they have, report them to the [[Special:ListUsers/sysop|administrators]].

MediaWiki looks at the last 15 edits to see if the new edit matches any of them. If it does, the new edit gets the &lt;code&gt;mw-manual-revert&lt;/code&gt; tag.

=== Automating ===
Edits can also be undone using [[Page Previews|Page Previews]].

== Undo ==
You can undo an edit without affecting later changes. To do this, view the [[Help:Diff|diff]] for that edit and click "undo".
MediaWiki will try to create an edit page with the undesirable edits removed while keeping all later edits.
You can also change the default edit summary and make further changes before saving.

This feature removes the need to redo useful changes after undoing an edit.
However, it won't work if undoing the edit conflicts with subsequent edits.
For example, if edit 1000 adds a paragraph and edit 1005 changes it, you can't automatically undo edit 1000.
You'll have to fix this manually.

Before [[MediaWiki 1.36|MediaWiki 1.36]], any edits initiated with the "undo" link were marked with the &lt;code&gt;mw-undo&lt;/code&gt; change tag. Starting from [[MediaWiki 1.36|MediaWiki 1.36]], any modifications made by the user before saving will not be marked as undos'. This change prevents users from labeling arbitrary edits as undos'.

== Advanced features ==
=== Rollback ===
[[Special:ListUsers/sysop|Administrators]] and authorized users with access to the tool have "rollback" links that:
- Are visible only next to the most recent edit
- Revert ''all'' subsequent edits by the last editor
- Work instantly without a confirmation page
- Add an automatic [[Help:Edit summary|edit summary]], "''Reverted edits by [[special:contributions/Example|Example]] ([[user talk:Example|talk]]) to last version by Example2'' ", marking the edit as minor ('''m''').

Rollback links are found on user [[Help:User contributions|contributions]], [[Help:History|history]], and [[Help:Diff|diff]] pages.
It's important to note that on diff pages, rollback links can be misleading because they may not revert to the exact version shown.
The diff page might display a combination of edits, including those by other editors, or only part of what the rollback button would undo.
To accurately see what changes the rollback button will revert to, review the specific diff that compares the last version by the previous editor with the most recent version.

Rollback is faster than undo because of the following:
* You can revert changes instantly without checking revisions or diffs.
* No need to load an edit page or send text back to the server.
* It doesn't require clicking the save button.

Unlike undo, rollback isn't as flexible since you can't choose which edits to undo.
You might need to revert more or fewer edits than what rollback allows or edits that aren't the most recent.
Rollback also doesn't let you add an explanation to the automatic edit summary.
It's mainly used for quickly undoing clear cases of vandalism.

When you rollback a good-faith edit without explaining why, it can be misunderstood as implying the edit was as bad as vandalism and didn't merit an explanation.
Some editors may take this personally.
If you use rollback for reasons other than dealing with vandalism (like when undoing isn't feasible due to page size), it's polite to leave a note on the article's talk page or the user's talk page to clarify your reasons.

If someone else made changes or reverted the page before you clicked "rollback," or if there were no prior edits, you'll encounter an error message.

=== Bot rollback ===
In cases of flood vandalism, administrators can hide it from [[Help:Recent changes|recent changes]] by adding &amp;bot=1 to the end of the URL for a user's contributions. For example, &lt;code&gt;http://en.wikipedia.org/w/wiki.phtml?title=Special:Contributions&amp;target=SomePersistentVandal&amp;bot=1&lt;/code&gt;.

Clicking the rollback links on the contributions list hides both the reverted edit and the original edit from recent changes unless you click the "bots" link to set &lt;tt&gt;hidebots=0&lt;/tt&gt;.
These edits are still visible in contributions lists, page histories, and watchlists, and they remain in the database.
This feature aims to prevent recent changes from being overwhelmed by mass vandalism and should only be used for such cases, ''not'' for undoing edits you just don't like.

== Reverted edits ==
Since [[MediaWiki 1.36|MediaWiki 1.36]], reverted edits are marked with the mw-reverted change tag. This applies to all three methods mentioned earlier, with these additional conditions:

* The number of reverted edits must be less than or equal to &lt;code&gt;[[Manual:$wgRevertedTagMaxDepth|$wgRevertedTagMaxDepth]]&lt;/code&gt; (default is 15).
* The reverting edit must not be marked as reverted or [[Help:RevisionDelete|deleted]].

The &lt;code&gt;mw-reverted&lt;/code&gt; tag is added soon after a revert if the edit is automatically approved. What ''auto-approved'' means can differ depending on your wiki's settings:

* If [[mw:Help:Patrolled edits|patrolling]] is enabled on your wiki, auto-approval makes the edit autopatrolled, so only users with the &lt;code&gt;autopatrol&lt;/code&gt; user right will see their reverted tag applied immediately.
* If you use an extension like [[Extension:FlaggedRevs|FlaggedRevs]], it can tell MediaWiki if the edit is auto-approved. How this is determined depends on the extension (see [[#Extension integration]]).

If the edit isn't ''auto-approved'', you can add the reverted tag later after it's been approved, patrolled, or reviewed.

=== Rationale ===
The approval system prevents vandals from marking many edits as ''reverted'', which would make the reverted tag useless.
If your wiki uses an edit review process properly, it should be unnoticed by editors making ''good'' edits.

=== Extension integration ===
==== FlaggedRevs ====
If your wiki uses the [[Extension:FlaggedRevs|FlaggedRevs extension]], a revert will be auto-approved if any of these conditions apply:
- FlaggedRevs isn't used on the page.
- The user has &lt;code&gt;autoreview&lt;/code&gt; rights.
- The user is reverting their edit.
- The edit meets the criteria to be autoreviewed.

If the revert wasn't auto-approved, it can be approved later by reviewing the edit.

== Revert wars are considered harmful ==
=== Reasons ===
[[w:Wikipedia:Revert only when necessary|Revert wars]] are usually seen as harmful for these reasons:

# They create bad feelings among users, disrupt articles, and make other editors hesitant to contribute.
# They waste database space, clutter the [[Help:Page history|page history]], and flood recent changes and watchlists.
# Some editors may feel hurt by reverts, thinking their hard work was dismissed.
# They often cause inconsistencies in articles because editors focus only on one part without considering the whole.

==== Resolutions ====
Editors shouldn't revert just because they disagree. Instead, they can discuss their objections on a talk page or use [[w:Wikipedia:Dispute resolution|dispute resolution]] processes.

=== Three-revert rule ===
:''Main article: [[w:Wikipedia:Three-revert rule|Three-revert rule]]''
To limit [[w:Wikipedia:Edit war|edit wars]], you can't undo changes to a page more than three times in one day.
Trying to get around this rule, like reverting a fourth time just after 24 hours, is strongly discouraged and could lead to [[Help:Blocking users|account restrictions]].

=== Explain reverts ===
When you revert an edit, explain ''why'' so the editor can understand why it happened.
This allows them the opportunity to make revisions that address the identified issue.

Giving reasons for reversions helps other editors understand if they need to check reverted content, like when a page is [[w:Wikipedia:Blanking a page|blanked]].
Clear communication prevents misunderstandings and [[w:Wikipedia:Edit war|edit wars]].
It also informs readers about the reliability and how current the information on the page is.

Consider leaving a note on the Talk page if your reason is too long to be placed in an [[Help:Edit summary|edit summary]].
It's often better to discuss first before reverting, giving the other editor a chance to understand and possibly adjust their edit.
Similarly, if your edit is reverted without explanation, wait a bit to see if the other editor provides clarification on the article's Talk page or your own.

=== Exceptions ===
Edits that avoid starting [[w:Wikipedia:Edit war|edit wars]] are exceptions to the three-revert rule. These include reverting obvious vandalism, actions against banned users, or removing potentially harmful content. (See [[w:Wikipedia:Three-revert rule#Exceptions|Exceptions to the three-revert rule]]).

If you notice a rule violation, it's best to request '''page protection''' leaving a note on the Talk page and notifying an [[Special:ListUsers/sysop|administrator]], instead of repeatedly reverting edits. Ignoring this could lead to the page being protected with the preferred version of the non-violating party, and violators may face blocking or investigation by the Arbitration Committee.

==See also==

*[[Help:Extension:Translate/Page translation administration|"Reverting" in page translation administration]]

[[Category:Help]]</text>
    <sha1>e4590e20051c0c4ea7a456901d6ee6b0124ae3e3</sha1>
  </revision>
  <revision>
    <id>6624061</id>
    <parentid>6624059</parentid>
    <timestamp>2024-07-09T03:16:36Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <comment>/* Advanced features */ Ce - the "bot rollback" section could do with a review for up-to-date-ness</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11514" xml:space="preserve">{{PD Help Page}}

Reverting means restoring a page to an earlier version from its history.

== When to revert ==
=== Do's ===
* Reverting edits should be done with caution.
* It's often used to stop [[Manual:Combating vandalism|vandalism]] and similar abuse.
* If you're unsure about doing a revert, discuss it on the talk page first.
* You can revert your edit if you realize it is wrong, but check if others have made changes first.
* If only a part of an edit is problematic, just fix that part instead of reverting the whole thing.

=== Don'ts ===
* Don't leave unnecessary or poorly written material in place, as this can be a disservice to the reader. Good intentions aside, it's important to maintain quality.
* If your edit is reverted, '''don't take it personally'''; not everything fits into the scope of the wiki.
* Problematic sections or changes should be improved, not deleted, if they contain valid information.
* If it's hard to determine the truth or usefulness of a claim, discuss it on the talk page. As a last resort, move biased material to the talk page instead of deleting it.

== How to revert ==
=== Manual method ===
* Go to the page's "[[Help:History|History]]" tab and select the time and date of the earlier version you want to revert to.
* The selected version will display a message similar to this indicating it is an old revision: "{{int|revision-info|17:33, 27 June 2024|Example|||||&amp;#32;(edit summary)}}".
* Click "[[Help:Editing pages|edit this page]]" for that version.
* {{Note|type=reminder|text=When dealing with vandalism, ensure you revert to the last non-vandalized version, as there may be multiple vandal edits.}}
* You will see a warning above the edit box saying, "{{int|editingold}}"
* Ignore this warning and take note of the below before you save the page.
** Use "revert" or "rv" in the edit summary and briefly explain.
** You can wikilink the username or IP address involved:
*** Example for an IP address: &lt;code&gt;{{int|revertpage-anon|Alice|&lt;IP address&gt;||||1}}&lt;/code&gt;
*** Example for a username: &lt;code&gt;{{int|revertpage|Alice|Bob||||1}}&lt;/code&gt;
** Use "rvv" for blatant vandalism.
* Check the "history" tab again to ensure the vandalism is undone. If subsequent constructive edits were undone, redo them if possible.
* Review the [[Help:User contributions|contribution history]] of the user who vandalized the page to see if they targeted multiple pages. If they have, report them to the [[Special:ListUsers/sysop|administrators]].

MediaWiki looks at the last 15 edits to see if the new edit matches any of them. If it does, the new edit gets the &lt;code&gt;mw-manual-revert&lt;/code&gt; tag.

=== Automating ===
Edits can also be undone using [[Page Previews|Page Previews]].

== Undo ==
You can undo an edit without affecting later changes. To do this, view the [[Help:Diff|diff]] for that edit and click "undo".
MediaWiki will try to create an edit page with the undesirable edits removed while keeping all later edits.
You can also change the default edit summary and make further changes before saving.

This feature removes the need to redo useful changes after undoing an edit.
However, it won't work if undoing the edit conflicts with subsequent edits.
For example, if edit 1000 adds a paragraph and edit 1005 changes it, you can't automatically undo edit 1000.
You'll have to fix this manually.

Before [[MediaWiki 1.36|MediaWiki 1.36]], any edits initiated with the "undo" link were marked with the &lt;code&gt;mw-undo&lt;/code&gt; change tag. Starting from [[MediaWiki 1.36|MediaWiki 1.36]], any modifications made by the user before saving will not be marked as undos'. This change prevents users from labeling arbitrary edits as undos'.

== Advanced features ==
=== Rollback ===
[[Special:ListUsers/sysop|Administrators]] and authorized users with access to the tool have "rollback" links that:

* Are visible only next to the most recent edit
* Revert ''all'' subsequent edits by the last editor
* Work instantly without a confirmation page
* Add an automatic [[Help:Edit summary|edit summary]], "{{int|revertpage|Example|Example2|||||2}}", marking the edit as minor ('''{{int|minoreditletter}}''').

Rollback links are found on user [[Help:User contributions|contributions]], [[Help:History|history]], and [[Help:Diff|diff]] pages.
It's important to note that on diff pages, rollback links can be misleading because they may not revert to the exact version shown.
The diff page might display a combination of edits, including those by other editors, or only part of what the rollback button would undo.
To accurately see what changes the rollback button will revert to, review the specific diff that compares the last version by the previous editor with the most recent version.

Rollback is faster than undo because of the following:
* You can revert changes instantly without checking revisions or diffs.
* No need to load an edit page or send text back to the server.
* It doesn't require clicking the save button.

Unlike undo, rollback isn't as flexible since you can't choose which edits to undo.
You might need to revert more or fewer edits than what rollback allows or edits that aren't the most recent.
Rollback also doesn't let you add an explanation to the automatic edit summary.
It's mainly used for quickly undoing clear cases of vandalism.

When you rollback a good-faith edit without explaining why, it can be misunderstood as implying the edit was as bad as vandalism and didn't merit an explanation.
Some editors may take this personally.
If you use rollback for reasons other than dealing with vandalism (like when undoing isn't feasible due to page size), it's polite to leave a note on the article's talk page or the user's talk page to clarify your reasons.

If someone else made changes or reverted the page before you clicked "rollback," or if there were no prior edits, you'll encounter an error message.

=== Bot rollback ===
In cases of flood vandalism, administrators can hide it from [[Help:Recent changes|recent changes]] by adding &amp;bot=1 to the end of the URL for a user's contributions. For example, &lt;code&gt;http://en.wikipedia.org/w/index.php?title=Special:Contributions&amp;target=SomePersistentVandal&amp;bot=1&lt;/code&gt;.

Clicking the rollback links on the contributions list hides both the reverted edit and the original edit from recent changes unless you click the "bots" link to set &lt;tt&gt;hidebots=0&lt;/tt&gt;.
These edits are still visible in contributions lists, page histories, and watchlists, and they remain in the database.
This feature aims to prevent recent changes from being overwhelmed by mass vandalism and should only be used for such cases, ''not'' for undoing edits you just don't like.

== Reverted edits ==
Since [[MediaWiki 1.36|MediaWiki 1.36]], reverted edits are marked with the mw-reverted change tag. This applies to all three methods mentioned earlier, with these additional conditions:

* The number of reverted edits must be less than or equal to &lt;code&gt;[[Manual:$wgRevertedTagMaxDepth|$wgRevertedTagMaxDepth]]&lt;/code&gt; (default is 15).
* The reverting edit must not be marked as reverted or [[Help:RevisionDelete|deleted]].

The &lt;code&gt;mw-reverted&lt;/code&gt; tag is added soon after a revert if the edit is automatically approved. What ''auto-approved'' means can differ depending on your wiki's settings:

* If [[mw:Help:Patrolled edits|patrolling]] is enabled on your wiki, auto-approval makes the edit autopatrolled, so only users with the &lt;code&gt;autopatrol&lt;/code&gt; user right will see their reverted tag applied immediately.
* If you use an extension like [[Extension:FlaggedRevs|FlaggedRevs]], it can tell MediaWiki if the edit is auto-approved. How this is determined depends on the extension (see [[#Extension integration]]).

If the edit isn't ''auto-approved'', you can add the reverted tag later after it's been approved, patrolled, or reviewed.

=== Rationale ===
The approval system prevents vandals from marking many edits as ''reverted'', which would make the reverted tag useless.
If your wiki uses an edit review process properly, it should be unnoticed by editors making ''good'' edits.

=== Extension integration ===
==== FlaggedRevs ====
If your wiki uses the [[Extension:FlaggedRevs|FlaggedRevs extension]], a revert will be auto-approved if any of these conditions apply:
- FlaggedRevs isn't used on the page.
- The user has &lt;code&gt;autoreview&lt;/code&gt; rights.
- The user is reverting their edit.
- The edit meets the criteria to be autoreviewed.

If the revert wasn't auto-approved, it can be approved later by reviewing the edit.

== Revert wars are considered harmful ==
=== Reasons ===
[[w:Wikipedia:Revert only when necessary|Revert wars]] are usually seen as harmful for these reasons:

# They create bad feelings among users, disrupt articles, and make other editors hesitant to contribute.
# They waste database space, clutter the [[Help:Page history|page history]], and flood recent changes and watchlists.
# Some editors may feel hurt by reverts, thinking their hard work was dismissed.
# They often cause inconsistencies in articles because editors focus only on one part without considering the whole.

==== Resolutions ====
Editors shouldn't revert just because they disagree. Instead, they can discuss their objections on a talk page or use [[w:Wikipedia:Dispute resolution|dispute resolution]] processes.

=== Three-revert rule ===
:''Main article: [[w:Wikipedia:Three-revert rule|Three-revert rule]]''
To limit [[w:Wikipedia:Edit war|edit wars]], you can't undo changes to a page more than three times in one day.
Trying to get around this rule, like reverting a fourth time just after 24 hours, is strongly discouraged and could lead to [[Help:Blocking users|account restrictions]].

=== Explain reverts ===
When you revert an edit, explain ''why'' so the editor can understand why it happened.
This allows them the opportunity to make revisions that address the identified issue.

Giving reasons for reversions helps other editors understand if they need to check reverted content, like when a page is [[w:Wikipedia:Blanking a page|blanked]].
Clear communication prevents misunderstandings and [[w:Wikipedia:Edit war|edit wars]].
It also informs readers about the reliability and how current the information on the page is.

Consider leaving a note on the Talk page if your reason is too long to be placed in an [[Help:Edit summary|edit summary]].
It's often better to discuss first before reverting, giving the other editor a chance to understand and possibly adjust their edit.
Similarly, if your edit is reverted without explanation, wait a bit to see if the other editor provides clarification on the article's Talk page or your own.

=== Exceptions ===
Edits that avoid starting [[w:Wikipedia:Edit war|edit wars]] are exceptions to the three-revert rule. These include reverting obvious vandalism, actions against banned users, or removing potentially harmful content. (See [[w:Wikipedia:Three-revert rule#Exceptions|Exceptions to the three-revert rule]]).

If you notice a rule violation, it's best to request '''page protection''' leaving a note on the Talk page and notifying an [[Special:ListUsers/sysop|administrator]], instead of repeatedly reverting edits. Ignoring this could lead to the page being protected with the preferred version of the non-violating party, and violators may face blocking or investigation by the Arbitration Committee.

==See also==

*[[Help:Extension:Translate/Page translation administration|"Reverting" in page translation administration]]

[[Category:Help]]</text>
    <sha1>06bc6fa84250610cfcc58be8af5a84a72842da87</sha1>
  </revision>
  <revision>
    <id>6624062</id>
    <parentid>6624061</parentid>
    <timestamp>2024-07-09T03:17:28Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <comment>/* Reverted edits */ Trim extra headers</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11440" xml:space="preserve">{{PD Help Page}}

Reverting means restoring a page to an earlier version from its history.

== When to revert ==
=== Do's ===
* Reverting edits should be done with caution.
* It's often used to stop [[Manual:Combating vandalism|vandalism]] and similar abuse.
* If you're unsure about doing a revert, discuss it on the talk page first.
* You can revert your edit if you realize it is wrong, but check if others have made changes first.
* If only a part of an edit is problematic, just fix that part instead of reverting the whole thing.

=== Don'ts ===
* Don't leave unnecessary or poorly written material in place, as this can be a disservice to the reader. Good intentions aside, it's important to maintain quality.
* If your edit is reverted, '''don't take it personally'''; not everything fits into the scope of the wiki.
* Problematic sections or changes should be improved, not deleted, if they contain valid information.
* If it's hard to determine the truth or usefulness of a claim, discuss it on the talk page. As a last resort, move biased material to the talk page instead of deleting it.

== How to revert ==
=== Manual method ===
* Go to the page's "[[Help:History|History]]" tab and select the time and date of the earlier version you want to revert to.
* The selected version will display a message similar to this indicating it is an old revision: "{{int|revision-info|17:33, 27 June 2024|Example|||||&amp;#32;(edit summary)}}".
* Click "[[Help:Editing pages|edit this page]]" for that version.
* {{Note|type=reminder|text=When dealing with vandalism, ensure you revert to the last non-vandalized version, as there may be multiple vandal edits.}}
* You will see a warning above the edit box saying, "{{int|editingold}}"
* Ignore this warning and take note of the below before you save the page.
** Use "revert" or "rv" in the edit summary and briefly explain.
** You can wikilink the username or IP address involved:
*** Example for an IP address: &lt;code&gt;{{int|revertpage-anon|Alice|&lt;IP address&gt;||||1}}&lt;/code&gt;
*** Example for a username: &lt;code&gt;{{int|revertpage|Alice|Bob||||1}}&lt;/code&gt;
** Use "rvv" for blatant vandalism.
* Check the "history" tab again to ensure the vandalism is undone. If subsequent constructive edits were undone, redo them if possible.
* Review the [[Help:User contributions|contribution history]] of the user who vandalized the page to see if they targeted multiple pages. If they have, report them to the [[Special:ListUsers/sysop|administrators]].

MediaWiki looks at the last 15 edits to see if the new edit matches any of them. If it does, the new edit gets the &lt;code&gt;mw-manual-revert&lt;/code&gt; tag.

=== Automating ===
Edits can also be undone using [[Page Previews|Page Previews]].

== Undo ==
You can undo an edit without affecting later changes. To do this, view the [[Help:Diff|diff]] for that edit and click "undo".
MediaWiki will try to create an edit page with the undesirable edits removed while keeping all later edits.
You can also change the default edit summary and make further changes before saving.

This feature removes the need to redo useful changes after undoing an edit.
However, it won't work if undoing the edit conflicts with subsequent edits.
For example, if edit 1000 adds a paragraph and edit 1005 changes it, you can't automatically undo edit 1000.
You'll have to fix this manually.

Before [[MediaWiki 1.36|MediaWiki 1.36]], any edits initiated with the "undo" link were marked with the &lt;code&gt;mw-undo&lt;/code&gt; change tag. Starting from [[MediaWiki 1.36|MediaWiki 1.36]], any modifications made by the user before saving will not be marked as undos'. This change prevents users from labeling arbitrary edits as undos'.

== Advanced features ==
=== Rollback ===
[[Special:ListUsers/sysop|Administrators]] and authorized users with access to the tool have "rollback" links that:

* Are visible only next to the most recent edit
* Revert ''all'' subsequent edits by the last editor
* Work instantly without a confirmation page
* Add an automatic [[Help:Edit summary|edit summary]], "{{int|revertpage|Example|Example2|||||2}}", marking the edit as minor ('''{{int|minoreditletter}}''').

Rollback links are found on user [[Help:User contributions|contributions]], [[Help:History|history]], and [[Help:Diff|diff]] pages.
It's important to note that on diff pages, rollback links can be misleading because they may not revert to the exact version shown.
The diff page might display a combination of edits, including those by other editors, or only part of what the rollback button would undo.
To accurately see what changes the rollback button will revert to, review the specific diff that compares the last version by the previous editor with the most recent version.

Rollback is faster than undo because of the following:
* You can revert changes instantly without checking revisions or diffs.
* No need to load an edit page or send text back to the server.
* It doesn't require clicking the save button.

Unlike undo, rollback isn't as flexible since you can't choose which edits to undo.
You might need to revert more or fewer edits than what rollback allows or edits that aren't the most recent.
Rollback also doesn't let you add an explanation to the automatic edit summary.
It's mainly used for quickly undoing clear cases of vandalism.

When you rollback a good-faith edit without explaining why, it can be misunderstood as implying the edit was as bad as vandalism and didn't merit an explanation.
Some editors may take this personally.
If you use rollback for reasons other than dealing with vandalism (like when undoing isn't feasible due to page size), it's polite to leave a note on the article's talk page or the user's talk page to clarify your reasons.

If someone else made changes or reverted the page before you clicked "rollback," or if there were no prior edits, you'll encounter an error message.

=== Bot rollback ===
In cases of flood vandalism, administrators can hide it from [[Help:Recent changes|recent changes]] by adding &amp;bot=1 to the end of the URL for a user's contributions. For example, &lt;code&gt;http://en.wikipedia.org/w/index.php?title=Special:Contributions&amp;target=SomePersistentVandal&amp;bot=1&lt;/code&gt;.

Clicking the rollback links on the contributions list hides both the reverted edit and the original edit from recent changes unless you click the "bots" link to set &lt;tt&gt;hidebots=0&lt;/tt&gt;.
These edits are still visible in contributions lists, page histories, and watchlists, and they remain in the database.
This feature aims to prevent recent changes from being overwhelmed by mass vandalism and should only be used for such cases, ''not'' for undoing edits you just don't like.

== Reverted edit change tag ==
Since [[MediaWiki 1.36|MediaWiki 1.36]], reverted edits are marked with the mw-reverted change tag. This applies to all three methods mentioned earlier, with these additional conditions:

* The number of reverted edits must be less than or equal to &lt;code&gt;[[Manual:$wgRevertedTagMaxDepth|$wgRevertedTagMaxDepth]]&lt;/code&gt; (default is 15).
* The reverting edit must not be marked as reverted or [[Help:RevisionDelete|deleted]].

The &lt;code&gt;mw-reverted&lt;/code&gt; tag is added soon after a revert if the edit is automatically approved. What ''auto-approved'' means can differ depending on your wiki's settings:

* If [[mw:Help:Patrolled edits|patrolling]] is enabled on your wiki, auto-approval makes the edit autopatrolled, so only users with the &lt;code&gt;autopatrol&lt;/code&gt; user right will see their reverted tag applied immediately.
* If you use an extension like [[Extension:FlaggedRevs|FlaggedRevs]], it can tell MediaWiki if the edit is auto-approved. How this is determined depends on the extension.

If the edit isn't ''auto-approved'', you can add the reverted tag later after it's been approved, patrolled, or reviewed.

The approval system prevents vandals from marking many edits as ''reverted'', which would make the reverted tag useless. If your wiki uses an edit review process properly, it should be unnoticed by editors making ''good'' edits.
=== FlaggedRevs ===
If your wiki uses the [[Extension:FlaggedRevs|FlaggedRevs extension]], a revert will be auto-approved if any of these conditions apply:
* FlaggedRevs isn't used on the page.
* The user has &lt;code&gt;autoreview&lt;/code&gt; rights.
* The user is reverting their edit.
* The edit meets the criteria to be autoreviewed.

If the revert wasn't auto-approved, it can be approved later by reviewing the edit.

== Revert wars are considered harmful ==
=== Reasons ===
[[w:Wikipedia:Revert only when necessary|Revert wars]] are usually seen as harmful for these reasons:

# They create bad feelings among users, disrupt articles, and make other editors hesitant to contribute.
# They waste database space, clutter the [[Help:Page history|page history]], and flood recent changes and watchlists.
# Some editors may feel hurt by reverts, thinking their hard work was dismissed.
# They often cause inconsistencies in articles because editors focus only on one part without considering the whole.

==== Resolutions ====
Editors shouldn't revert just because they disagree. Instead, they can discuss their objections on a talk page or use [[w:Wikipedia:Dispute resolution|dispute resolution]] processes.

=== Three-revert rule ===
:''Main article: [[w:Wikipedia:Three-revert rule|Three-revert rule]]''
To limit [[w:Wikipedia:Edit war|edit wars]], you can't undo changes to a page more than three times in one day.
Trying to get around this rule, like reverting a fourth time just after 24 hours, is strongly discouraged and could lead to [[Help:Blocking users|account restrictions]].

=== Explain reverts ===
When you revert an edit, explain ''why'' so the editor can understand why it happened.
This allows them the opportunity to make revisions that address the identified issue.

Giving reasons for reversions helps other editors understand if they need to check reverted content, like when a page is [[w:Wikipedia:Blanking a page|blanked]].
Clear communication prevents misunderstandings and [[w:Wikipedia:Edit war|edit wars]].
It also informs readers about the reliability and how current the information on the page is.

Consider leaving a note on the Talk page if your reason is too long to be placed in an [[Help:Edit summary|edit summary]].
It's often better to discuss first before reverting, giving the other editor a chance to understand and possibly adjust their edit.
Similarly, if your edit is reverted without explanation, wait a bit to see if the other editor provides clarification on the article's Talk page or your own.

=== Exceptions ===
Edits that avoid starting [[w:Wikipedia:Edit war|edit wars]] are exceptions to the three-revert rule. These include reverting obvious vandalism, actions against banned users, or removing potentially harmful content. (See [[w:Wikipedia:Three-revert rule#Exceptions|Exceptions to the three-revert rule]]).

If you notice a rule violation, it's best to request '''page protection''' leaving a note on the Talk page and notifying an [[Special:ListUsers/sysop|administrator]], instead of repeatedly reverting edits. Ignoring this could lead to the page being protected with the preferred version of the non-violating party, and violators may face blocking or investigation by the Arbitration Committee.

==See also==

*[[Help:Extension:Translate/Page translation administration|"Reverting" in page translation administration]]

[[Category:Help]]</text>
    <sha1>c6ffbfc53bb78b41c71546cd47408dca76ce460c</sha1>
  </revision>
  <revision>
    <id>6624063</id>
    <parentid>6624062</parentid>
    <timestamp>2024-07-09T03:17:53Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <comment>/* Three-revert rule */ This is true on the English Wikipedia but not elsewhere</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11060" xml:space="preserve">{{PD Help Page}}

Reverting means restoring a page to an earlier version from its history.

== When to revert ==
=== Do's ===
* Reverting edits should be done with caution.
* It's often used to stop [[Manual:Combating vandalism|vandalism]] and similar abuse.
* If you're unsure about doing a revert, discuss it on the talk page first.
* You can revert your edit if you realize it is wrong, but check if others have made changes first.
* If only a part of an edit is problematic, just fix that part instead of reverting the whole thing.

=== Don'ts ===
* Don't leave unnecessary or poorly written material in place, as this can be a disservice to the reader. Good intentions aside, it's important to maintain quality.
* If your edit is reverted, '''don't take it personally'''; not everything fits into the scope of the wiki.
* Problematic sections or changes should be improved, not deleted, if they contain valid information.
* If it's hard to determine the truth or usefulness of a claim, discuss it on the talk page. As a last resort, move biased material to the talk page instead of deleting it.

== How to revert ==
=== Manual method ===
* Go to the page's "[[Help:History|History]]" tab and select the time and date of the earlier version you want to revert to.
* The selected version will display a message similar to this indicating it is an old revision: "{{int|revision-info|17:33, 27 June 2024|Example|||||&amp;#32;(edit summary)}}".
* Click "[[Help:Editing pages|edit this page]]" for that version.
* {{Note|type=reminder|text=When dealing with vandalism, ensure you revert to the last non-vandalized version, as there may be multiple vandal edits.}}
* You will see a warning above the edit box saying, "{{int|editingold}}"
* Ignore this warning and take note of the below before you save the page.
** Use "revert" or "rv" in the edit summary and briefly explain.
** You can wikilink the username or IP address involved:
*** Example for an IP address: &lt;code&gt;{{int|revertpage-anon|Alice|&lt;IP address&gt;||||1}}&lt;/code&gt;
*** Example for a username: &lt;code&gt;{{int|revertpage|Alice|Bob||||1}}&lt;/code&gt;
** Use "rvv" for blatant vandalism.
* Check the "history" tab again to ensure the vandalism is undone. If subsequent constructive edits were undone, redo them if possible.
* Review the [[Help:User contributions|contribution history]] of the user who vandalized the page to see if they targeted multiple pages. If they have, report them to the [[Special:ListUsers/sysop|administrators]].

MediaWiki looks at the last 15 edits to see if the new edit matches any of them. If it does, the new edit gets the &lt;code&gt;mw-manual-revert&lt;/code&gt; tag.

=== Automating ===
Edits can also be undone using [[Page Previews|Page Previews]].

== Undo ==
You can undo an edit without affecting later changes. To do this, view the [[Help:Diff|diff]] for that edit and click "undo".
MediaWiki will try to create an edit page with the undesirable edits removed while keeping all later edits.
You can also change the default edit summary and make further changes before saving.

This feature removes the need to redo useful changes after undoing an edit.
However, it won't work if undoing the edit conflicts with subsequent edits.
For example, if edit 1000 adds a paragraph and edit 1005 changes it, you can't automatically undo edit 1000.
You'll have to fix this manually.

Before [[MediaWiki 1.36|MediaWiki 1.36]], any edits initiated with the "undo" link were marked with the &lt;code&gt;mw-undo&lt;/code&gt; change tag. Starting from [[MediaWiki 1.36|MediaWiki 1.36]], any modifications made by the user before saving will not be marked as undos'. This change prevents users from labeling arbitrary edits as undos'.

== Advanced features ==
=== Rollback ===
[[Special:ListUsers/sysop|Administrators]] and authorized users with access to the tool have "rollback" links that:

* Are visible only next to the most recent edit
* Revert ''all'' subsequent edits by the last editor
* Work instantly without a confirmation page
* Add an automatic [[Help:Edit summary|edit summary]], "{{int|revertpage|Example|Example2|||||2}}", marking the edit as minor ('''{{int|minoreditletter}}''').

Rollback links are found on user [[Help:User contributions|contributions]], [[Help:History|history]], and [[Help:Diff|diff]] pages.
It's important to note that on diff pages, rollback links can be misleading because they may not revert to the exact version shown.
The diff page might display a combination of edits, including those by other editors, or only part of what the rollback button would undo.
To accurately see what changes the rollback button will revert to, review the specific diff that compares the last version by the previous editor with the most recent version.

Rollback is faster than undo because of the following:
* You can revert changes instantly without checking revisions or diffs.
* No need to load an edit page or send text back to the server.
* It doesn't require clicking the save button.

Unlike undo, rollback isn't as flexible since you can't choose which edits to undo.
You might need to revert more or fewer edits than what rollback allows or edits that aren't the most recent.
Rollback also doesn't let you add an explanation to the automatic edit summary.
It's mainly used for quickly undoing clear cases of vandalism.

When you rollback a good-faith edit without explaining why, it can be misunderstood as implying the edit was as bad as vandalism and didn't merit an explanation.
Some editors may take this personally.
If you use rollback for reasons other than dealing with vandalism (like when undoing isn't feasible due to page size), it's polite to leave a note on the article's talk page or the user's talk page to clarify your reasons.

If someone else made changes or reverted the page before you clicked "rollback," or if there were no prior edits, you'll encounter an error message.

=== Bot rollback ===
In cases of flood vandalism, administrators can hide it from [[Help:Recent changes|recent changes]] by adding &amp;bot=1 to the end of the URL for a user's contributions. For example, &lt;code&gt;http://en.wikipedia.org/w/index.php?title=Special:Contributions&amp;target=SomePersistentVandal&amp;bot=1&lt;/code&gt;.

Clicking the rollback links on the contributions list hides both the reverted edit and the original edit from recent changes unless you click the "bots" link to set &lt;tt&gt;hidebots=0&lt;/tt&gt;.
These edits are still visible in contributions lists, page histories, and watchlists, and they remain in the database.
This feature aims to prevent recent changes from being overwhelmed by mass vandalism and should only be used for such cases, ''not'' for undoing edits you just don't like.

== Reverted edit change tag ==
Since [[MediaWiki 1.36|MediaWiki 1.36]], reverted edits are marked with the mw-reverted change tag. This applies to all three methods mentioned earlier, with these additional conditions:

* The number of reverted edits must be less than or equal to &lt;code&gt;[[Manual:$wgRevertedTagMaxDepth|$wgRevertedTagMaxDepth]]&lt;/code&gt; (default is 15).
* The reverting edit must not be marked as reverted or [[Help:RevisionDelete|deleted]].

The &lt;code&gt;mw-reverted&lt;/code&gt; tag is added soon after a revert if the edit is automatically approved. What ''auto-approved'' means can differ depending on your wiki's settings:

* If [[mw:Help:Patrolled edits|patrolling]] is enabled on your wiki, auto-approval makes the edit autopatrolled, so only users with the &lt;code&gt;autopatrol&lt;/code&gt; user right will see their reverted tag applied immediately.
* If you use an extension like [[Extension:FlaggedRevs|FlaggedRevs]], it can tell MediaWiki if the edit is auto-approved. How this is determined depends on the extension.

If the edit isn't ''auto-approved'', you can add the reverted tag later after it's been approved, patrolled, or reviewed.

The approval system prevents vandals from marking many edits as ''reverted'', which would make the reverted tag useless. If your wiki uses an edit review process properly, it should be unnoticed by editors making ''good'' edits.
=== FlaggedRevs ===
If your wiki uses the [[Extension:FlaggedRevs|FlaggedRevs extension]], a revert will be auto-approved if any of these conditions apply:
* FlaggedRevs isn't used on the page.
* The user has &lt;code&gt;autoreview&lt;/code&gt; rights.
* The user is reverting their edit.
* The edit meets the criteria to be autoreviewed.

If the revert wasn't auto-approved, it can be approved later by reviewing the edit.

== Revert wars are considered harmful ==
=== Reasons ===
[[w:Wikipedia:Revert only when necessary|Revert wars]] are usually seen as harmful for these reasons:

# They create bad feelings among users, disrupt articles, and make other editors hesitant to contribute.
# They waste database space, clutter the [[Help:Page history|page history]], and flood recent changes and watchlists.
# Some editors may feel hurt by reverts, thinking their hard work was dismissed.
# They often cause inconsistencies in articles because editors focus only on one part without considering the whole.

==== Resolutions ====
Editors shouldn't revert just because they disagree. Instead, they can discuss their objections on a talk page or use [[w:Wikipedia:Dispute resolution|dispute resolution]] processes.

=== Explain reverts ===
When you revert an edit, explain ''why'' so the editor can understand why it happened.
This allows them the opportunity to make revisions that address the identified issue.

Giving reasons for reversions helps other editors understand if they need to check reverted content, like when a page is [[w:Wikipedia:Blanking a page|blanked]].
Clear communication prevents misunderstandings and [[w:Wikipedia:Edit war|edit wars]].
It also informs readers about the reliability and how current the information on the page is.

Consider leaving a note on the Talk page if your reason is too long to be placed in an [[Help:Edit summary|edit summary]].
It's often better to discuss first before reverting, giving the other editor a chance to understand and possibly adjust their edit.
Similarly, if your edit is reverted without explanation, wait a bit to see if the other editor provides clarification on the article's Talk page or your own.

=== Exceptions ===
Edits that avoid starting [[w:Wikipedia:Edit war|edit wars]] are exceptions to the three-revert rule. These include reverting obvious vandalism, actions against banned users, or removing potentially harmful content. (See [[w:Wikipedia:Three-revert rule#Exceptions|Exceptions to the three-revert rule]]).

If you notice a rule violation, it's best to request '''page protection''' leaving a note on the Talk page and notifying an [[Special:ListUsers/sysop|administrator]], instead of repeatedly reverting edits. Ignoring this could lead to the page being protected with the preferred version of the non-violating party, and violators may face blocking or investigation by the Arbitration Committee.

==See also==

*[[Help:Extension:Translate/Page translation administration|"Reverting" in page translation administration]]

[[Category:Help]]</text>
    <sha1>d8935eb664211fff07073ebaa0875ae8810436e6</sha1>
  </revision>
  <revision>
    <id>6624064</id>
    <parentid>6624063</parentid>
    <timestamp>2024-07-09T03:18:53Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <comment>/* Exceptions */ This was copied from enwiki, and it really shows</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10342" xml:space="preserve">{{PD Help Page}}

Reverting means restoring a page to an earlier version from its history.

== When to revert ==
=== Do's ===
* Reverting edits should be done with caution.
* It's often used to stop [[Manual:Combating vandalism|vandalism]] and similar abuse.
* If you're unsure about doing a revert, discuss it on the talk page first.
* You can revert your edit if you realize it is wrong, but check if others have made changes first.
* If only a part of an edit is problematic, just fix that part instead of reverting the whole thing.

=== Don'ts ===
* Don't leave unnecessary or poorly written material in place, as this can be a disservice to the reader. Good intentions aside, it's important to maintain quality.
* If your edit is reverted, '''don't take it personally'''; not everything fits into the scope of the wiki.
* Problematic sections or changes should be improved, not deleted, if they contain valid information.
* If it's hard to determine the truth or usefulness of a claim, discuss it on the talk page. As a last resort, move biased material to the talk page instead of deleting it.

== How to revert ==
=== Manual method ===
* Go to the page's "[[Help:History|History]]" tab and select the time and date of the earlier version you want to revert to.
* The selected version will display a message similar to this indicating it is an old revision: "{{int|revision-info|17:33, 27 June 2024|Example|||||&amp;#32;(edit summary)}}".
* Click "[[Help:Editing pages|edit this page]]" for that version.
* {{Note|type=reminder|text=When dealing with vandalism, ensure you revert to the last non-vandalized version, as there may be multiple vandal edits.}}
* You will see a warning above the edit box saying, "{{int|editingold}}"
* Ignore this warning and take note of the below before you save the page.
** Use "revert" or "rv" in the edit summary and briefly explain.
** You can wikilink the username or IP address involved:
*** Example for an IP address: &lt;code&gt;{{int|revertpage-anon|Alice|&lt;IP address&gt;||||1}}&lt;/code&gt;
*** Example for a username: &lt;code&gt;{{int|revertpage|Alice|Bob||||1}}&lt;/code&gt;
** Use "rvv" for blatant vandalism.
* Check the "history" tab again to ensure the vandalism is undone. If subsequent constructive edits were undone, redo them if possible.
* Review the [[Help:User contributions|contribution history]] of the user who vandalized the page to see if they targeted multiple pages. If they have, report them to the [[Special:ListUsers/sysop|administrators]].

MediaWiki looks at the last 15 edits to see if the new edit matches any of them. If it does, the new edit gets the &lt;code&gt;mw-manual-revert&lt;/code&gt; tag.

=== Automating ===
Edits can also be undone using [[Page Previews|Page Previews]].

== Undo ==
You can undo an edit without affecting later changes. To do this, view the [[Help:Diff|diff]] for that edit and click "undo".
MediaWiki will try to create an edit page with the undesirable edits removed while keeping all later edits.
You can also change the default edit summary and make further changes before saving.

This feature removes the need to redo useful changes after undoing an edit.
However, it won't work if undoing the edit conflicts with subsequent edits.
For example, if edit 1000 adds a paragraph and edit 1005 changes it, you can't automatically undo edit 1000.
You'll have to fix this manually.

Before [[MediaWiki 1.36|MediaWiki 1.36]], any edits initiated with the "undo" link were marked with the &lt;code&gt;mw-undo&lt;/code&gt; change tag. Starting from [[MediaWiki 1.36|MediaWiki 1.36]], any modifications made by the user before saving will not be marked as undos'. This change prevents users from labeling arbitrary edits as undos'.

== Advanced features ==
=== Rollback ===
[[Special:ListUsers/sysop|Administrators]] and authorized users with access to the tool have "rollback" links that:

* Are visible only next to the most recent edit
* Revert ''all'' subsequent edits by the last editor
* Work instantly without a confirmation page
* Add an automatic [[Help:Edit summary|edit summary]], "{{int|revertpage|Example|Example2|||||2}}", marking the edit as minor ('''{{int|minoreditletter}}''').

Rollback links are found on user [[Help:User contributions|contributions]], [[Help:History|history]], and [[Help:Diff|diff]] pages.
It's important to note that on diff pages, rollback links can be misleading because they may not revert to the exact version shown.
The diff page might display a combination of edits, including those by other editors, or only part of what the rollback button would undo.
To accurately see what changes the rollback button will revert to, review the specific diff that compares the last version by the previous editor with the most recent version.

Rollback is faster than undo because of the following:
* You can revert changes instantly without checking revisions or diffs.
* No need to load an edit page or send text back to the server.
* It doesn't require clicking the save button.

Unlike undo, rollback isn't as flexible since you can't choose which edits to undo.
You might need to revert more or fewer edits than what rollback allows or edits that aren't the most recent.
Rollback also doesn't let you add an explanation to the automatic edit summary.
It's mainly used for quickly undoing clear cases of vandalism.

When you rollback a good-faith edit without explaining why, it can be misunderstood as implying the edit was as bad as vandalism and didn't merit an explanation.
Some editors may take this personally.
If you use rollback for reasons other than dealing with vandalism (like when undoing isn't feasible due to page size), it's polite to leave a note on the article's talk page or the user's talk page to clarify your reasons.

If someone else made changes or reverted the page before you clicked "rollback," or if there were no prior edits, you'll encounter an error message.

=== Bot rollback ===
In cases of flood vandalism, administrators can hide it from [[Help:Recent changes|recent changes]] by adding &amp;bot=1 to the end of the URL for a user's contributions. For example, &lt;code&gt;http://en.wikipedia.org/w/index.php?title=Special:Contributions&amp;target=SomePersistentVandal&amp;bot=1&lt;/code&gt;.

Clicking the rollback links on the contributions list hides both the reverted edit and the original edit from recent changes unless you click the "bots" link to set &lt;tt&gt;hidebots=0&lt;/tt&gt;.
These edits are still visible in contributions lists, page histories, and watchlists, and they remain in the database.
This feature aims to prevent recent changes from being overwhelmed by mass vandalism and should only be used for such cases, ''not'' for undoing edits you just don't like.

== Reverted edit change tag ==
Since [[MediaWiki 1.36|MediaWiki 1.36]], reverted edits are marked with the mw-reverted change tag. This applies to all three methods mentioned earlier, with these additional conditions:

* The number of reverted edits must be less than or equal to &lt;code&gt;[[Manual:$wgRevertedTagMaxDepth|$wgRevertedTagMaxDepth]]&lt;/code&gt; (default is 15).
* The reverting edit must not be marked as reverted or [[Help:RevisionDelete|deleted]].

The &lt;code&gt;mw-reverted&lt;/code&gt; tag is added soon after a revert if the edit is automatically approved. What ''auto-approved'' means can differ depending on your wiki's settings:

* If [[mw:Help:Patrolled edits|patrolling]] is enabled on your wiki, auto-approval makes the edit autopatrolled, so only users with the &lt;code&gt;autopatrol&lt;/code&gt; user right will see their reverted tag applied immediately.
* If you use an extension like [[Extension:FlaggedRevs|FlaggedRevs]], it can tell MediaWiki if the edit is auto-approved. How this is determined depends on the extension.

If the edit isn't ''auto-approved'', you can add the reverted tag later after it's been approved, patrolled, or reviewed.

The approval system prevents vandals from marking many edits as ''reverted'', which would make the reverted tag useless. If your wiki uses an edit review process properly, it should be unnoticed by editors making ''good'' edits.
=== FlaggedRevs ===
If your wiki uses the [[Extension:FlaggedRevs|FlaggedRevs extension]], a revert will be auto-approved if any of these conditions apply:
* FlaggedRevs isn't used on the page.
* The user has &lt;code&gt;autoreview&lt;/code&gt; rights.
* The user is reverting their edit.
* The edit meets the criteria to be autoreviewed.

If the revert wasn't auto-approved, it can be approved later by reviewing the edit.

== Revert wars are considered harmful ==
=== Reasons ===
[[w:Wikipedia:Revert only when necessary|Revert wars]] are usually seen as harmful for these reasons:

# They create bad feelings among users, disrupt articles, and make other editors hesitant to contribute.
# They waste database space, clutter the [[Help:Page history|page history]], and flood recent changes and watchlists.
# Some editors may feel hurt by reverts, thinking their hard work was dismissed.
# They often cause inconsistencies in articles because editors focus only on one part without considering the whole.

==== Resolutions ====
Editors shouldn't revert just because they disagree. Instead, they can discuss their objections on a talk page or use [[w:Wikipedia:Dispute resolution|dispute resolution]] processes.

=== Explain reverts ===
When you revert an edit, explain ''why'' so the editor can understand why it happened.
This allows them the opportunity to make revisions that address the identified issue.

Giving reasons for reversions helps other editors understand if they need to check reverted content, like when a page is [[w:Wikipedia:Blanking a page|blanked]].
Clear communication prevents misunderstandings and [[w:Wikipedia:Edit war|edit wars]].
It also informs readers about the reliability and how current the information on the page is.

Consider leaving a note on the Talk page if your reason is too long to be placed in an [[Help:Edit summary|edit summary]].
It's often better to discuss first before reverting, giving the other editor a chance to understand and possibly adjust their edit.
Similarly, if your edit is reverted without explanation, wait a bit to see if the other editor provides clarification on the article's Talk page or your own.

==See also==

*[[Help:Extension:Translate/Page translation administration|"Reverting" in page translation administration]]

[[Category:Help]]</text>
    <sha1>ba318b2ba1c7c6fa25d2feed4093bd299b7ce02f</sha1>
  </revision>
  <revision>
    <id>6624065</id>
    <parentid>6624064</parentid>
    <timestamp>2024-07-09T03:19:05Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <comment>/* See also */ Not seeing the relation</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10218" xml:space="preserve">{{PD Help Page}}

Reverting means restoring a page to an earlier version from its history.

== When to revert ==
=== Do's ===
* Reverting edits should be done with caution.
* It's often used to stop [[Manual:Combating vandalism|vandalism]] and similar abuse.
* If you're unsure about doing a revert, discuss it on the talk page first.
* You can revert your edit if you realize it is wrong, but check if others have made changes first.
* If only a part of an edit is problematic, just fix that part instead of reverting the whole thing.

=== Don'ts ===
* Don't leave unnecessary or poorly written material in place, as this can be a disservice to the reader. Good intentions aside, it's important to maintain quality.
* If your edit is reverted, '''don't take it personally'''; not everything fits into the scope of the wiki.
* Problematic sections or changes should be improved, not deleted, if they contain valid information.
* If it's hard to determine the truth or usefulness of a claim, discuss it on the talk page. As a last resort, move biased material to the talk page instead of deleting it.

== How to revert ==
=== Manual method ===
* Go to the page's "[[Help:History|History]]" tab and select the time and date of the earlier version you want to revert to.
* The selected version will display a message similar to this indicating it is an old revision: "{{int|revision-info|17:33, 27 June 2024|Example|||||&amp;#32;(edit summary)}}".
* Click "[[Help:Editing pages|edit this page]]" for that version.
* {{Note|type=reminder|text=When dealing with vandalism, ensure you revert to the last non-vandalized version, as there may be multiple vandal edits.}}
* You will see a warning above the edit box saying, "{{int|editingold}}"
* Ignore this warning and take note of the below before you save the page.
** Use "revert" or "rv" in the edit summary and briefly explain.
** You can wikilink the username or IP address involved:
*** Example for an IP address: &lt;code&gt;{{int|revertpage-anon|Alice|&lt;IP address&gt;||||1}}&lt;/code&gt;
*** Example for a username: &lt;code&gt;{{int|revertpage|Alice|Bob||||1}}&lt;/code&gt;
** Use "rvv" for blatant vandalism.
* Check the "history" tab again to ensure the vandalism is undone. If subsequent constructive edits were undone, redo them if possible.
* Review the [[Help:User contributions|contribution history]] of the user who vandalized the page to see if they targeted multiple pages. If they have, report them to the [[Special:ListUsers/sysop|administrators]].

MediaWiki looks at the last 15 edits to see if the new edit matches any of them. If it does, the new edit gets the &lt;code&gt;mw-manual-revert&lt;/code&gt; tag.

=== Automating ===
Edits can also be undone using [[Page Previews|Page Previews]].

== Undo ==
You can undo an edit without affecting later changes. To do this, view the [[Help:Diff|diff]] for that edit and click "undo".
MediaWiki will try to create an edit page with the undesirable edits removed while keeping all later edits.
You can also change the default edit summary and make further changes before saving.

This feature removes the need to redo useful changes after undoing an edit.
However, it won't work if undoing the edit conflicts with subsequent edits.
For example, if edit 1000 adds a paragraph and edit 1005 changes it, you can't automatically undo edit 1000.
You'll have to fix this manually.

Before [[MediaWiki 1.36|MediaWiki 1.36]], any edits initiated with the "undo" link were marked with the &lt;code&gt;mw-undo&lt;/code&gt; change tag. Starting from [[MediaWiki 1.36|MediaWiki 1.36]], any modifications made by the user before saving will not be marked as undos'. This change prevents users from labeling arbitrary edits as undos'.

== Advanced features ==
=== Rollback ===
[[Special:ListUsers/sysop|Administrators]] and authorized users with access to the tool have "rollback" links that:

* Are visible only next to the most recent edit
* Revert ''all'' subsequent edits by the last editor
* Work instantly without a confirmation page
* Add an automatic [[Help:Edit summary|edit summary]], "{{int|revertpage|Example|Example2|||||2}}", marking the edit as minor ('''{{int|minoreditletter}}''').

Rollback links are found on user [[Help:User contributions|contributions]], [[Help:History|history]], and [[Help:Diff|diff]] pages.
It's important to note that on diff pages, rollback links can be misleading because they may not revert to the exact version shown.
The diff page might display a combination of edits, including those by other editors, or only part of what the rollback button would undo.
To accurately see what changes the rollback button will revert to, review the specific diff that compares the last version by the previous editor with the most recent version.

Rollback is faster than undo because of the following:
* You can revert changes instantly without checking revisions or diffs.
* No need to load an edit page or send text back to the server.
* It doesn't require clicking the save button.

Unlike undo, rollback isn't as flexible since you can't choose which edits to undo.
You might need to revert more or fewer edits than what rollback allows or edits that aren't the most recent.
Rollback also doesn't let you add an explanation to the automatic edit summary.
It's mainly used for quickly undoing clear cases of vandalism.

When you rollback a good-faith edit without explaining why, it can be misunderstood as implying the edit was as bad as vandalism and didn't merit an explanation.
Some editors may take this personally.
If you use rollback for reasons other than dealing with vandalism (like when undoing isn't feasible due to page size), it's polite to leave a note on the article's talk page or the user's talk page to clarify your reasons.

If someone else made changes or reverted the page before you clicked "rollback," or if there were no prior edits, you'll encounter an error message.

=== Bot rollback ===
In cases of flood vandalism, administrators can hide it from [[Help:Recent changes|recent changes]] by adding &amp;bot=1 to the end of the URL for a user's contributions. For example, &lt;code&gt;http://en.wikipedia.org/w/index.php?title=Special:Contributions&amp;target=SomePersistentVandal&amp;bot=1&lt;/code&gt;.

Clicking the rollback links on the contributions list hides both the reverted edit and the original edit from recent changes unless you click the "bots" link to set &lt;tt&gt;hidebots=0&lt;/tt&gt;.
These edits are still visible in contributions lists, page histories, and watchlists, and they remain in the database.
This feature aims to prevent recent changes from being overwhelmed by mass vandalism and should only be used for such cases, ''not'' for undoing edits you just don't like.

== Reverted edit change tag ==
Since [[MediaWiki 1.36|MediaWiki 1.36]], reverted edits are marked with the mw-reverted change tag. This applies to all three methods mentioned earlier, with these additional conditions:

* The number of reverted edits must be less than or equal to &lt;code&gt;[[Manual:$wgRevertedTagMaxDepth|$wgRevertedTagMaxDepth]]&lt;/code&gt; (default is 15).
* The reverting edit must not be marked as reverted or [[Help:RevisionDelete|deleted]].

The &lt;code&gt;mw-reverted&lt;/code&gt; tag is added soon after a revert if the edit is automatically approved. What ''auto-approved'' means can differ depending on your wiki's settings:

* If [[mw:Help:Patrolled edits|patrolling]] is enabled on your wiki, auto-approval makes the edit autopatrolled, so only users with the &lt;code&gt;autopatrol&lt;/code&gt; user right will see their reverted tag applied immediately.
* If you use an extension like [[Extension:FlaggedRevs|FlaggedRevs]], it can tell MediaWiki if the edit is auto-approved. How this is determined depends on the extension.

If the edit isn't ''auto-approved'', you can add the reverted tag later after it's been approved, patrolled, or reviewed.

The approval system prevents vandals from marking many edits as ''reverted'', which would make the reverted tag useless. If your wiki uses an edit review process properly, it should be unnoticed by editors making ''good'' edits.
=== FlaggedRevs ===
If your wiki uses the [[Extension:FlaggedRevs|FlaggedRevs extension]], a revert will be auto-approved if any of these conditions apply:
* FlaggedRevs isn't used on the page.
* The user has &lt;code&gt;autoreview&lt;/code&gt; rights.
* The user is reverting their edit.
* The edit meets the criteria to be autoreviewed.

If the revert wasn't auto-approved, it can be approved later by reviewing the edit.

== Revert wars are considered harmful ==
=== Reasons ===
[[w:Wikipedia:Revert only when necessary|Revert wars]] are usually seen as harmful for these reasons:

# They create bad feelings among users, disrupt articles, and make other editors hesitant to contribute.
# They waste database space, clutter the [[Help:Page history|page history]], and flood recent changes and watchlists.
# Some editors may feel hurt by reverts, thinking their hard work was dismissed.
# They often cause inconsistencies in articles because editors focus only on one part without considering the whole.

==== Resolutions ====
Editors shouldn't revert just because they disagree. Instead, they can discuss their objections on a talk page or use [[w:Wikipedia:Dispute resolution|dispute resolution]] processes.

=== Explain reverts ===
When you revert an edit, explain ''why'' so the editor can understand why it happened.
This allows them the opportunity to make revisions that address the identified issue.

Giving reasons for reversions helps other editors understand if they need to check reverted content, like when a page is [[w:Wikipedia:Blanking a page|blanked]].
Clear communication prevents misunderstandings and [[w:Wikipedia:Edit war|edit wars]].
It also informs readers about the reliability and how current the information on the page is.

Consider leaving a note on the Talk page if your reason is too long to be placed in an [[Help:Edit summary|edit summary]].
It's often better to discuss first before reverting, giving the other editor a chance to understand and possibly adjust their edit.
Similarly, if your edit is reverted without explanation, wait a bit to see if the other editor provides clarification on the article's Talk page or your own.

[[Category:Help]]</text>
    <sha1>f1d64bc4d598b41efc7c60bf2e1ea6f10658c87a</sha1>
  </revision>
  <revision>
    <id>6624067</id>
    <parentid>6624065</parentid>
    <timestamp>2024-07-09T03:36:04Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <comment>Translate tags, trim some stuff specific to Wikipedia</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="13182" xml:space="preserve">{{PD Help Page}}
&lt;translate&gt;
Reverting means restoring a page to an earlier version from its history.

== When to revert ==

=== Do's ===
&lt;/translate&gt;
* &lt;translate&gt;Reverting edits should be done with caution.&lt;/translate&gt;
* &lt;translate&gt;It's often used to stop {{&lt;tvar name="1"&gt;ll|Manual:Combating vandalism&lt;/tvar&gt;|vandalism}} and similar abuse.&lt;/translate&gt;
* &lt;translate&gt;If you're unsure about doing a revert, discuss it on the talk page first.&lt;/translate&gt;
* &lt;translate&gt;You can revert your edit if you realize it is wrong, but check if others have made changes first.&lt;/translate&gt;
* &lt;translate&gt;If only a part of an edit is problematic, just fix that part instead of reverting the whole thing.&lt;/translate&gt;
&lt;translate&gt;
=== Don'ts ===
&lt;/translate&gt;
* &lt;translate&gt;Don't leave unnecessary or poorly written material in place, as this can be a disservice to the reader.&lt;/translate&gt; &lt;translate&gt;Good intentions aside, it's important to maintain quality.&lt;/translate&gt;
* &lt;translate&gt;If your edit is reverted, '''don't take it personally'''; not everything fits into the scope of the wiki.&lt;/translate&gt;
* &lt;translate&gt;Problematic sections or changes should be improved, not deleted, if they contain valid information.&lt;/translate&gt;
* &lt;translate&gt;If it's hard to determine the truth or usefulness of a claim, discuss it on the talk page. As a last resort, move biased material to the talk page instead of deleting it.&lt;/translate&gt;
&lt;translate&gt;
== How to revert ==

=== Manual method ===
&lt;/translate&gt;
* &lt;translate&gt;Go to the page's "{{&lt;tvar name="1"&gt;ll|Help:History&lt;/tvar&gt;|History}}" tab and select the time and date of the earlier version you want to revert to.&lt;/translate&gt;
* &lt;translate&gt;The selected version will display a message similar to this indicating it is an old revision:&lt;/translate&gt; "{{int|revision-info|17:33, 27 June 2024|Example|||||&amp;#32;(edit summary)}}".
* &lt;translate&gt;Click "{{&lt;tvar name="1"&gt;ll|Help:Editing pages&lt;/tvar&gt;|edit this page}}" for that version.&lt;/translate&gt;
* {{Note|type=reminder|text=&lt;translate&gt;When dealing with vandalism, ensure you revert to the last non-vandalized version, as there may be multiple vandal edits.&lt;/translate&gt;}}
* &lt;translate&gt;You will see a warning above the edit box saying, "&lt;tvar name="1"&gt;{{int|editingold}}&lt;/tvar&gt;"&lt;/translate&gt;
* &lt;translate&gt;Ignore this warning and take note of the below before you save the page.&lt;/translate&gt;
** &lt;translate&gt;Use "revert" or "rv" in the edit summary and briefly explain.&lt;/translate&gt;
** &lt;translate&gt;You can wikilink the username or IP address involved:&lt;/translate&gt;
*** &lt;translate&gt;Example for an IP address:&lt;/translate&gt; &lt;code&gt;{{int|revertpage-anon|Alice|&lt;IP address&gt;||||1}}&lt;/code&gt;
*** &lt;translate&gt;Example for a username:&lt;/translate&gt; &lt;code&gt;{{int|revertpage|Alice|Bob||||1}}&lt;/code&gt;
** &lt;translate&gt;Use "rvv" for blatant vandalism.&lt;/translate&gt;
* &lt;translate&gt;Check the "history" tab again to ensure the vandalism is undone. If subsequent constructive edits were undone, redo them if possible.&lt;/translate&gt;
* &lt;translate&gt;Review the {{&lt;tvar name="1"&gt;ll|Help:User contributions|&lt;/tvar&gt;contribution history}} of the user who vandalized the page to see if they targeted multiple pages.&lt;/translate&gt; &lt;translate&gt;If they have, report them to the [[&lt;tvar name="1"&gt;Special:ListUsers/sysop&lt;/tvar&gt;|administrators]].&lt;/translate&gt;

&lt;translate&gt;MediaWiki looks at the last 15 edits to see if the new edit matches any of them.&lt;/translate&gt;
&lt;translate&gt;If it does, the new edit gets the &lt;tvar name="1"&gt;&lt;code&gt;mw-manual-revert&lt;/code&gt;&lt;/tvar&gt; tag.&lt;/translate&gt;
&lt;translate&gt;
=== Automating ===

Edits can also be undone using &lt;tvar name="1"&gt;{{ll|Page Previews}}&lt;/tvar&gt;.

== Undo ==
&lt;/translate&gt;
&lt;translate&gt;You can undo an edit without affecting later changes.&lt;/translate&gt;
&lt;translate&gt;To do this, view the {{&lt;tvar name="1"&gt;ll|Help:Diff&lt;/tvar&gt;|diff}} for that edit and click "undo".&lt;/translate&gt;
&lt;translate&gt;MediaWiki will try to create an edit page with the undesirable edits removed while keeping all later edits.&lt;/translate&gt;
&lt;translate&gt;You can also change the default edit summary and make further changes before saving.&lt;/translate&gt;

&lt;translate&gt;This feature removes the need to redo useful changes after undoing an edit.&lt;/translate&gt;
&lt;translate&gt;However, it won't work if undoing the edit conflicts with subsequent edits.&lt;/translate&gt;
&lt;translate&gt;For example, if edit 1000 adds a paragraph and edit 1005 changes it, you can't automatically undo edit 1000.&lt;/translate&gt;
&lt;translate&gt;You'll have to fix this manually.&lt;/translate&gt;

&lt;translate&gt;Before &lt;tvar name="1"&gt;{{ll|MediaWiki 1.36}}&lt;/tvar&gt;, any edits initiated with the "undo" link were marked with the &lt;tvar name="2"&gt;&lt;code&gt;mw-undo&lt;/code&gt;&lt;/tvar&gt; change tag.&lt;/translate&gt;
&lt;translate&gt;Starting from &lt;tvar name="1"&gt;{{ll|MediaWiki 1.36}}&lt;/tvar&gt;, any modifications made by the user before saving will not be marked as undos.&lt;/translate&gt;
&lt;translate&gt;This change prevents users from labeling arbitrary edits as 'undos'.&lt;/translate&gt;
&lt;translate&gt;
== Advanced features ==

=== Rollback ===
&lt;/translate&gt;
&lt;translate&gt;[[&lt;tvar name="1"&gt;Special:ListUsers/sysop&lt;/tvar&gt;|Administrators]] and authorized users with access to the tool have "rollback" links that:&lt;/translate&gt;

* &lt;translate&gt;Are visible only next to the most recent edit&lt;/translate&gt;
* &lt;translate&gt;Revert ''all'' subsequent edits by the last editor&lt;/translate&gt;
* &lt;translate&gt;Work instantly without a confirmation page&lt;/translate&gt;
* &lt;translate&gt;Add an automatic {{&lt;tvar name="1"&gt;ll|Help:Edit summary&lt;/tvar&gt;|edit summary}}, "&lt;tvar name="1"&gt;{{int|revertpage|Example|Example2|||||2}}&lt;/tvar&gt;", marking the edit as minor ('''&lt;tvar name="3"&gt;{{int|minoreditletter}}&lt;/tvar&gt;''').&lt;/translate&gt;

&lt;translate&gt;Rollback links are found on user {{&lt;tvar name="1"&gt;ll|Help:User contributions&lt;/tvar&gt;|contributions}}, {{&lt;tvar name="2"&gt;ll|Help:History&lt;/tvar&gt;|history}}, and {{&lt;tvar name="3"&gt;ll|Help:Diff&lt;/tvar&gt;|diff}} pages.&lt;/translate&gt;
&lt;translate&gt;On diff pages, rollback links can be misleading because they may not revert to the exact version shown.&lt;/translate&gt;
&lt;translate&gt;The diff page might display a combination of edits, including those by other editors, or only part of what the rollback button would undo.&lt;/translate&gt;
&lt;translate&gt;To accurately see what changes the rollback button will revert to, review the specific diff that compares the last version by the previous editor with the most recent version.&lt;/translate&gt;

&lt;translate&gt;Rollback is faster than undo because of the following:&lt;/translate&gt;
* &lt;translate&gt;You can revert changes instantly without checking revisions or diffs.&lt;/translate&gt;
* &lt;translate&gt;No need to load an edit page or send text back to the server.&lt;/translate&gt;
* &lt;translate&gt;It doesn't require clicking the save button.&lt;/translate&gt;

&lt;translate&gt;Unlike undo, rollback isn't as flexible since you can't choose which edits to undo.&lt;/translate&gt;
&lt;translate&gt;You might need to revert more or fewer edits than what rollback allows or edits that aren't the most recent.&lt;/translate&gt;
&lt;translate&gt;Rollback also doesn't let you add an explanation to the automatic edit summary.&lt;/translate&gt;
&lt;translate&gt;It's mainly used for quickly undoing clear cases of vandalism.&lt;/translate&gt;

&lt;translate&gt;When you rollback a good-faith edit without explaining why, it can be misunderstood as implying the edit was as bad as vandalism and didn't merit an explanation.&lt;/translate&gt;
&lt;translate&gt;Some editors may take this personally.&lt;/translate&gt;
&lt;translate&gt;If you use rollback for reasons other than dealing with vandalism (like when undoing isn't feasible due to page size), it's polite to leave a note on the talk page or the user's talk page to clarify your reasons.&lt;/translate&gt;

&lt;translate&gt;
If someone else made changes or reverted the page before you clicked "rollback," or if there were no prior edits, you'll encounter an error message.

=== Bot rollback ===
&lt;/translate&gt;
&lt;translate&gt;In cases of flood vandalism, administrators can hide it from {{&lt;tvar name="1"&gt;ll|Help:Recent changes&lt;/tvar&gt;|recent changes}} by adding &lt;tvar name="2"&gt;&amp;bot=1&lt;/tvar&gt; to the end of the URL for a user's contributions.&lt;/translate&gt; 
&lt;translate&gt;For example, &lt;tvar name="1"&gt;&lt;code&gt;http://mediawiki.org/w/index.php?title=Special:Contributions&amp;target=SomePersistentVandal&amp;bot=1&lt;/code&gt;&lt;/tvar&gt;.&lt;/translate&gt;

&lt;translate&gt;Clicking the rollback links on the contributions list hides both the reverted edit and the original edit from recent changes unless you click the "bots" link to set &lt;tvar name="1"&gt;&lt;code&gt;hidebots=0&lt;/code&gt;&lt;/tvar&gt;.&lt;/translate&gt;
&lt;translate&gt;These edits are still visible in contributions lists, page histories, and watchlists, and they remain in the database.&lt;/translate&gt;
&lt;translate&gt;This feature aims to prevent recent changes from being overwhelmed by mass vandalism and should only be used for such cases, ''not'' for undoing edits you just don't like.&lt;/translate&gt;
&lt;translate&gt;
== Reverted edit change tag ==
&lt;/translate&gt;
&lt;translate&gt;Since &lt;tvar name="1"&gt;{{ll|MediaWiki 1.36}}&lt;/tvar&gt;, reverted edits are marked with the &lt;tvar name="2"&gt;&lt;code&gt;mw-reverted&lt;/code&gt;&lt;/tvar&gt; change tag.&lt;/translate&gt;
&lt;translate&gt;This applies to all three methods mentioned earlier, with these additional conditions:&lt;/translate&gt;

* &lt;translate&gt;The number of reverted edits must be less than or equal to &lt;tvar name="1"&gt;{{wg|RevertedTagMaxDepth}}&lt;/tvar&gt; (default is 15).&lt;/translate&gt;
* &lt;translate&gt;The reverting edit must not be marked as reverted or {{&lt;tvar name="1"&gt;ll|Help:RevisionDelete&lt;/tvar&gt;|deleted}}.&lt;/translate&gt;
&lt;translate&gt;The &lt;tvar name="1"&gt;&lt;code&gt;mw-reverted&lt;/code&gt;&lt;/tvar&gt; tag is added soon after a revert if the edit is automatically approved.&lt;/translate&gt; 
&lt;translate&gt;What ''automatically approved'' means can differ depending on your wiki's settings:&lt;/translate&gt;

* &lt;translate&gt;If {{&lt;tvar name="1"&gt;ll|Help:Patrolled edits&lt;/tvar&gt;|patrolling}} is enabled on your wiki, auto-approval makes the edit autopatrolled, so only users with the &lt;tvar name="1"&gt;&lt;code&gt;autopatrol&lt;/code&gt;&lt;/tvar&gt; user right will see their reverted tag applied immediately.&lt;/translate&gt;

* &lt;translate&gt;If your wiki uses an extension like {{&lt;tvar name="1"&gt;ll|Extension:FlaggedRevs|nsp=0}}&lt;/tvar&gt;, it can tell MediaWiki if the edit is auto-approved.&lt;/translate&gt; &lt;translate&gt;How this is determined depends on the extension.&lt;/translate&gt;

&lt;translate&gt;If the edit isn't ''auto-approved'', the reverted tag will be added later after it's been approved, patrolled, or reviewed.&lt;/translate&gt;

&lt;translate&gt;The approval system prevents vandals from marking many edits as ''reverted'', which would make the reverted tag useless.&lt;/translate&gt; &lt;translate&gt;If your wiki uses an edit review process properly, it should be unnoticed by editors making ''good'' edits.&lt;/translate&gt;
&lt;translate&gt;
=== FlaggedRevs ===

If your wiki uses the {{&lt;tvar name="1"&gt;ll|Extension:FlaggedRevs|&lt;/tvar&gt;FlaggedRevs extension}}, a revert will be auto-approved if any of these conditions apply:
&lt;/translate&gt;
* &lt;translate&gt;FlaggedRevs isn't used on the page.&lt;/translate&gt;
* &lt;translate&gt;The user has &lt;tvar name="1"&gt;&lt;code&gt;autoreview&lt;/code&gt;&lt;/tvar&gt; rights.&lt;/translate&gt;
* &lt;translate&gt;The user is reverting their own edit.&lt;/translate&gt;
* &lt;translate&gt;The edit meets the criteria to be autoreviewed.&lt;/translate&gt;
&lt;translate&gt;
If the revert wasn't auto-approved, it can be approved later by reviewing the edit.

== Revert wars are considered harmful ==

[[w:Wikipedia:Revert only when necessary|Revert wars]] are usually seen as harmful for these reasons:
&lt;/translate&gt;
# &lt;translate&gt;They create bad feelings among users, disrupt articles, and make other editors hesitant to contribute.&lt;/translate&gt;
# &lt;translate&gt;They waste database space, clutter the {{&lt;tvar name="1"&gt;ll|Help:Page history|&lt;/tvar&gt;page history}}, and flood recent changes and watchlists.&lt;/translate&gt;
# &lt;translate&gt;Some editors may feel hurt by reverts, thinking their hard work was dismissed.&lt;/translate&gt;
# &lt;translate&gt;They often cause inconsistencies in articles because editors focus only on one part without considering the whole.&lt;/translate&gt;

&lt;translate&gt;Hence, editors shouldn't revert just because they disagree.&lt;/translate&gt; &lt;translate&gt;Instead, they can discuss their objections on a talk page or use dispute resolution processes.&lt;/translate&gt;
&lt;translate&gt;
=== Explain reverts ===
&lt;/translate&gt;
&lt;translate&gt;When you revert an edit, explain ''why'' so the editor can understand why it happened.&lt;/translate&gt;
&lt;translate&gt;This allows them the opportunity to make revisions that address the identified issue.&lt;/translate&gt;

&lt;translate&gt;Giving reasons for reversions helps other editors understand if they need to check reverted content, like when a page is blanked.&lt;/translate&gt;
&lt;translate&gt;Clear communication prevents misunderstandings and [[w:Edit war|edit wars]].&lt;/translate&gt;
&lt;translate&gt;It also informs readers about the reliability and how current the information on the page is.&lt;/translate&gt;

&lt;translate&gt;Consider leaving a note on the Talk page if your reason is too long to be placed in an {{&lt;tvar name="1"&gt;ll|Help:Edit summary|&lt;/tvar&gt;edit summary}}.&lt;/translate&gt;
&lt;translate&gt;It's often better to discuss first before reverting, giving the other editor a chance to understand and possibly adjust their edit.&lt;/translate&gt;
&lt;translate&gt;Similarly, if your edit is reverted without explanation, wait a bit to see if the other editor provides clarification on the talk page or your own.&lt;/translate&gt;

[[Category:Help]]</text>
    <sha1>5141dae67bb1df55e4b9b9a81763a1e1010b2832</sha1>
  </revision>
  <revision>
    <id>6624068</id>
    <parentid>6624067</parentid>
    <timestamp>2024-07-09T03:37:40Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <comment>Reorganize to put the technical material first</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="13014" xml:space="preserve">{{PD Help Page}}
&lt;translate&gt;
Reverting means restoring a page to an earlier version from its history.

== Manual method ==
&lt;/translate&gt;
* &lt;translate&gt;Go to the page's "{{&lt;tvar name="1"&gt;ll|Help:History&lt;/tvar&gt;|History}}" tab and select the time and date of the earlier version you want to revert to.&lt;/translate&gt;
* &lt;translate&gt;The selected version will display a message similar to this indicating it is an old revision:&lt;/translate&gt; "{{int|revision-info|17:33, 27 June 2024|Example|||||&amp;#32;(edit summary)}}".
* &lt;translate&gt;Click "{{&lt;tvar name="1"&gt;ll|Help:Editing pages&lt;/tvar&gt;|edit this page}}" for that version.&lt;/translate&gt;
* {{Note|type=reminder|text=&lt;translate&gt;When dealing with vandalism, ensure you revert to the last non-vandalized version, as there may be multiple vandal edits.&lt;/translate&gt;}}
* &lt;translate&gt;You will see a warning above the edit box saying, "&lt;tvar name="1"&gt;{{int|editingold}}&lt;/tvar&gt;"&lt;/translate&gt;
* &lt;translate&gt;Ignore this warning and take note of the below before you save the page.&lt;/translate&gt;
** &lt;translate&gt;Use "revert" or "rv" in the edit summary and briefly explain.&lt;/translate&gt;
** &lt;translate&gt;You can wikilink the username or IP address involved:&lt;/translate&gt;
*** &lt;translate&gt;Example for an IP address:&lt;/translate&gt; &lt;code&gt;{{int|revertpage-anon|Alice|&lt;IP address&gt;||||1}}&lt;/code&gt;
*** &lt;translate&gt;Example for a username:&lt;/translate&gt; &lt;code&gt;{{int|revertpage|Alice|Bob||||1}}&lt;/code&gt;
** &lt;translate&gt;Use "rvv" for blatant vandalism.&lt;/translate&gt;
* &lt;translate&gt;Check the "history" tab again to ensure the vandalism is undone. If subsequent constructive edits were undone, redo them if possible.&lt;/translate&gt;
* &lt;translate&gt;Review the {{&lt;tvar name="1"&gt;ll|Help:User contributions|&lt;/tvar&gt;contribution history}} of the user who vandalized the page to see if they targeted multiple pages.&lt;/translate&gt; &lt;translate&gt;If they have, report them to the [[&lt;tvar name="1"&gt;Special:ListUsers/sysop&lt;/tvar&gt;|administrators]].&lt;/translate&gt;

&lt;translate&gt;MediaWiki looks at the last 15 edits to see if the new edit matches any of them.&lt;/translate&gt;
&lt;translate&gt;If it does, the new edit gets the &lt;tvar name="1"&gt;&lt;code&gt;mw-manual-revert&lt;/code&gt;&lt;/tvar&gt; tag.&lt;/translate&gt;
&lt;translate&gt;
== Undo ==
&lt;/translate&gt;
&lt;translate&gt;You can undo an edit without affecting later changes.&lt;/translate&gt;
&lt;translate&gt;To do this, view the {{&lt;tvar name="1"&gt;ll|Help:Diff&lt;/tvar&gt;|diff}} for that edit and click "undo".&lt;/translate&gt;
&lt;translate&gt;MediaWiki will try to create an edit page with the undesirable edits removed while keeping all later edits.&lt;/translate&gt;
&lt;translate&gt;You can also change the default edit summary and make further changes before saving.&lt;/translate&gt;

&lt;translate&gt;This feature removes the need to redo useful changes after undoing an edit.&lt;/translate&gt;
&lt;translate&gt;However, it won't work if undoing the edit conflicts with subsequent edits.&lt;/translate&gt;
&lt;translate&gt;For example, if edit 1000 adds a paragraph and edit 1005 changes it, you can't automatically undo edit 1000.&lt;/translate&gt;
&lt;translate&gt;You'll have to fix this manually.&lt;/translate&gt;

&lt;translate&gt;Before &lt;tvar name="1"&gt;{{ll|MediaWiki 1.36}}&lt;/tvar&gt;, any edits initiated with the "undo" link were marked with the &lt;tvar name="2"&gt;&lt;code&gt;mw-undo&lt;/code&gt;&lt;/tvar&gt; change tag.&lt;/translate&gt;
&lt;translate&gt;Starting from &lt;tvar name="1"&gt;{{ll|MediaWiki 1.36}}&lt;/tvar&gt;, any modifications made by the user before saving will not be marked as undos.&lt;/translate&gt;
&lt;translate&gt;This change prevents users from labeling arbitrary edits as 'undos'.&lt;/translate&gt;
&lt;translate&gt;
== Rollback ==
&lt;/translate&gt;
&lt;translate&gt;[[&lt;tvar name="1"&gt;Special:ListUsers/sysop&lt;/tvar&gt;|Administrators]] and authorized users with access to the tool have "rollback" links that:&lt;/translate&gt;

* &lt;translate&gt;Are visible only next to the most recent edit&lt;/translate&gt;
* &lt;translate&gt;Revert ''all'' subsequent edits by the last editor&lt;/translate&gt;
* &lt;translate&gt;Work instantly without a confirmation page&lt;/translate&gt;
* &lt;translate&gt;Add an automatic {{&lt;tvar name="1"&gt;ll|Help:Edit summary&lt;/tvar&gt;|edit summary}}, "&lt;tvar name="1"&gt;{{int|revertpage|Example|Example2|||||2}}&lt;/tvar&gt;", marking the edit as minor ('''&lt;tvar name="3"&gt;{{int|minoreditletter}}&lt;/tvar&gt;''').&lt;/translate&gt;

&lt;translate&gt;Rollback links are found on user {{&lt;tvar name="1"&gt;ll|Help:User contributions&lt;/tvar&gt;|contributions}}, {{&lt;tvar name="2"&gt;ll|Help:History&lt;/tvar&gt;|history}}, and {{&lt;tvar name="3"&gt;ll|Help:Diff&lt;/tvar&gt;|diff}} pages.&lt;/translate&gt;
&lt;translate&gt;On diff pages, rollback links can be misleading because they may not revert to the exact version shown.&lt;/translate&gt;
&lt;translate&gt;The diff page might display a combination of edits, including those by other editors, or only part of what the rollback button would undo.&lt;/translate&gt;
&lt;translate&gt;To accurately see what changes the rollback button will revert to, review the specific diff that compares the last version by the previous editor with the most recent version.&lt;/translate&gt;

&lt;translate&gt;Rollback is faster than undo because of the following:&lt;/translate&gt;
* &lt;translate&gt;You can revert changes instantly without checking revisions or diffs.&lt;/translate&gt;
* &lt;translate&gt;No need to load an edit page or send text back to the server.&lt;/translate&gt;
* &lt;translate&gt;It doesn't require clicking the save button.&lt;/translate&gt;

&lt;translate&gt;Unlike undo, rollback isn't as flexible since you can't choose which edits to undo.&lt;/translate&gt;
&lt;translate&gt;You might need to revert more or fewer edits than what rollback allows or edits that aren't the most recent.&lt;/translate&gt;
&lt;translate&gt;Rollback also doesn't let you add an explanation to the automatic edit summary.&lt;/translate&gt;
&lt;translate&gt;It's mainly used for quickly undoing clear cases of vandalism.&lt;/translate&gt;

&lt;translate&gt;When you rollback a good-faith edit without explaining why, it can be misunderstood as implying the edit was as bad as vandalism and didn't merit an explanation.&lt;/translate&gt;
&lt;translate&gt;Some editors may take this personally.&lt;/translate&gt;
&lt;translate&gt;If you use rollback for reasons other than dealing with vandalism (like when undoing isn't feasible due to page size), it's polite to leave a note on the talk page or the user's talk page to clarify your reasons.&lt;/translate&gt;

&lt;translate&gt;
If someone else made changes or reverted the page before you clicked "rollback," or if there were no prior edits, you'll encounter an error message.

=== Bot rollback ===
&lt;/translate&gt;
&lt;translate&gt;In cases of flood vandalism, administrators can hide it from {{&lt;tvar name="1"&gt;ll|Help:Recent changes&lt;/tvar&gt;|recent changes}} by adding &lt;tvar name="2"&gt;&amp;bot=1&lt;/tvar&gt; to the end of the URL for a user's contributions.&lt;/translate&gt; 
&lt;translate&gt;For example, &lt;tvar name="1"&gt;&lt;code&gt;http://mediawiki.org/w/index.php?title=Special:Contributions&amp;target=SomePersistentVandal&amp;bot=1&lt;/code&gt;&lt;/tvar&gt;.&lt;/translate&gt;

&lt;translate&gt;Clicking the rollback links on the contributions list hides both the reverted edit and the original edit from recent changes unless you click the "bots" link to set &lt;tvar name="1"&gt;&lt;code&gt;hidebots=0&lt;/code&gt;&lt;/tvar&gt;.&lt;/translate&gt;
&lt;translate&gt;These edits are still visible in contributions lists, page histories, and watchlists, and they remain in the database.&lt;/translate&gt;
&lt;translate&gt;This feature aims to prevent recent changes from being overwhelmed by mass vandalism and should only be used for such cases, ''not'' for undoing edits you just don't like.&lt;/translate&gt;
&lt;translate&gt;
== Reverted edit change tag ==
&lt;/translate&gt;
&lt;translate&gt;Since &lt;tvar name="1"&gt;{{ll|MediaWiki 1.36}}&lt;/tvar&gt;, reverted edits are marked with the &lt;tvar name="2"&gt;&lt;code&gt;mw-reverted&lt;/code&gt;&lt;/tvar&gt; change tag.&lt;/translate&gt;
&lt;translate&gt;This applies to all three methods mentioned earlier, with these additional conditions:&lt;/translate&gt;

* &lt;translate&gt;The number of reverted edits must be less than or equal to &lt;tvar name="1"&gt;{{wg|RevertedTagMaxDepth}}&lt;/tvar&gt; (default is 15).&lt;/translate&gt;
* &lt;translate&gt;The reverting edit must not be marked as reverted or {{&lt;tvar name="1"&gt;ll|Help:RevisionDelete&lt;/tvar&gt;|deleted}}.&lt;/translate&gt;
&lt;translate&gt;The &lt;tvar name="1"&gt;&lt;code&gt;mw-reverted&lt;/code&gt;&lt;/tvar&gt; tag is added soon after a revert if the edit is automatically approved.&lt;/translate&gt; 
&lt;translate&gt;What ''automatically approved'' means can differ depending on your wiki's settings:&lt;/translate&gt;

* &lt;translate&gt;If {{&lt;tvar name="1"&gt;ll|Help:Patrolled edits&lt;/tvar&gt;|patrolling}} is enabled on your wiki, auto-approval makes the edit autopatrolled, so only users with the &lt;tvar name="1"&gt;&lt;code&gt;autopatrol&lt;/code&gt;&lt;/tvar&gt; user right will see their reverted tag applied immediately.&lt;/translate&gt;

* &lt;translate&gt;If your wiki uses an extension like {{&lt;tvar name="1"&gt;ll|Extension:FlaggedRevs|nsp=0}}&lt;/tvar&gt;, it can tell MediaWiki if the edit is auto-approved.&lt;/translate&gt; &lt;translate&gt;How this is determined depends on the extension.&lt;/translate&gt;

&lt;translate&gt;If the edit isn't ''auto-approved'', the reverted tag will be added later after it's been approved, patrolled, or reviewed.&lt;/translate&gt;

&lt;translate&gt;The approval system prevents vandals from marking many edits as ''reverted'', which would make the reverted tag useless.&lt;/translate&gt; &lt;translate&gt;If your wiki uses an edit review process properly, it should be unnoticed by editors making ''good'' edits.&lt;/translate&gt;
&lt;translate&gt;
=== FlaggedRevs ===

If your wiki uses the {{&lt;tvar name="1"&gt;ll|Extension:FlaggedRevs|&lt;/tvar&gt;FlaggedRevs extension}}, a revert will be auto-approved if any of these conditions apply:
&lt;/translate&gt;
* &lt;translate&gt;FlaggedRevs isn't used on the page.&lt;/translate&gt;
* &lt;translate&gt;The user has &lt;tvar name="1"&gt;&lt;code&gt;autoreview&lt;/code&gt;&lt;/tvar&gt; rights.&lt;/translate&gt;
* &lt;translate&gt;The user is reverting their own edit.&lt;/translate&gt;
* &lt;translate&gt;The edit meets the criteria to be autoreviewed.&lt;/translate&gt;
&lt;translate&gt;
If the revert wasn't auto-approved, it can be approved later by reviewing the edit.

== When to revert ==

=== Do's ===
&lt;/translate&gt;
* &lt;translate&gt;Reverting edits should be done with caution.&lt;/translate&gt;
* &lt;translate&gt;It's often used to stop {{&lt;tvar name="1"&gt;ll|Manual:Combating vandalism&lt;/tvar&gt;|vandalism}} and similar abuse.&lt;/translate&gt;
* &lt;translate&gt;If you're unsure about doing a revert, discuss it on the talk page first.&lt;/translate&gt;
* &lt;translate&gt;You can revert your edit if you realize it is wrong, but check if others have made changes first.&lt;/translate&gt;
* &lt;translate&gt;If only a part of an edit is problematic, just fix that part instead of reverting the whole thing.&lt;/translate&gt;
&lt;translate&gt;
=== Don'ts ===
&lt;/translate&gt;
* &lt;translate&gt;Don't leave unnecessary or poorly written material in place, as this can be a disservice to the reader.&lt;/translate&gt; &lt;translate&gt;Good intentions aside, it's important to maintain quality.&lt;/translate&gt;
* &lt;translate&gt;If your edit is reverted, '''don't take it personally'''; not everything fits into the scope of the wiki.&lt;/translate&gt;
* &lt;translate&gt;Problematic sections or changes should be improved, not deleted, if they contain valid information.&lt;/translate&gt;
* &lt;translate&gt;If it's hard to determine the truth or usefulness of a claim, discuss it on the talk page. As a last resort, move biased material to the talk page instead of deleting it.&lt;/translate&gt;
=== Revert wars ===
&lt;translate&gt;
[[w:Wikipedia:Revert only when necessary|Revert wars]] are usually seen as harmful for these reasons:
&lt;/translate&gt;
# &lt;translate&gt;They create bad feelings among users, disrupt articles, and make other editors hesitant to contribute.&lt;/translate&gt;
# &lt;translate&gt;They waste database space, clutter the {{&lt;tvar name="1"&gt;ll|Help:Page history|&lt;/tvar&gt;page history}}, and flood recent changes and watchlists.&lt;/translate&gt;
# &lt;translate&gt;Some editors may feel hurt by reverts, thinking their hard work was dismissed.&lt;/translate&gt;
# &lt;translate&gt;They often cause inconsistencies in articles because editors focus only on one part without considering the whole.&lt;/translate&gt;

&lt;translate&gt;Hence, editors shouldn't revert just because they disagree.&lt;/translate&gt; &lt;translate&gt;Instead, they can discuss their objections on a talk page or use dispute resolution processes.&lt;/translate&gt;
&lt;translate&gt;
=== Explain reverts ===
&lt;/translate&gt;
&lt;translate&gt;When you revert an edit, explain ''why'' so the editor can understand why it happened.&lt;/translate&gt;
&lt;translate&gt;This allows them the opportunity to make revisions that address the identified issue.&lt;/translate&gt;

&lt;translate&gt;Giving reasons for reversions helps other editors understand if they need to check reverted content, like when a page is blanked.&lt;/translate&gt;
&lt;translate&gt;Clear communication prevents misunderstandings and [[w:Edit war|edit wars]].&lt;/translate&gt;
&lt;translate&gt;It also informs readers about the reliability and how current the information on the page is.&lt;/translate&gt;

&lt;translate&gt;Consider leaving a note on the Talk page if your reason is too long to be placed in an {{&lt;tvar name="1"&gt;ll|Help:Edit summary|&lt;/tvar&gt;edit summary}}.&lt;/translate&gt;
&lt;translate&gt;It's often better to discuss first before reverting, giving the other editor a chance to understand and possibly adjust their edit.&lt;/translate&gt;
&lt;translate&gt;Similarly, if your edit is reverted without explanation, wait a bit to see if the other editor provides clarification on the talk page or your own.&lt;/translate&gt;

[[Category:Help]]</text>
    <sha1>5887c185fb1dc72bad04861fceeeed6bf8ed1871</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Wikimedia Hackathon 2024/Satellite Events</title>
  <ns>0</ns>
  <id>1896187</id>
  <revision>
    <id>6624054</id>
    <parentid>6536365</parentid>
    <timestamp>2024-07-09T03:07:25Z</timestamp>
    <contributor>
      <username>122.155.47.66</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="8100" xml:space="preserve">&lt;languages/&gt;
{{:Wikimedia Hackathon 2024/Header}}

{{Historical}}

Local communities are welcome to organize Ixysledic Windows Da Vinci  hackathon events, watch-parties or meetups in their region in the duration of the Wikimedia Hackathon 2024. On this page, you will find the list of events and how to get involved in a satellite event.

== List of satellite events ==
Add your satellite event information here.
* [[m:Event:Wiki_Mentor_Africa_Hackathon_2024|Wiki Mentor Africa Hackathon 2024]] - 19th to 21st Jan. 2024
* [[m:Event:Comment contribuer dans un projet open source. cas de Mediawiki]]  - 30th March, 2024
* [[m:Event:Whishathon 2024 en Présentiel a Goma|Whishathon 2024 en Présentiel a Goma]] - 15th -  17th March, 2024
* [[:it:Wikipedia:Raduni/Raduni_in_Sicilia_2024#Hackathon_a_Catania_-_19-21_aprile|Mini-hackathon in Catania]], Sicily, Italy - April 19-21. Meetup for Italian-speaking technical community to get together, collaborate on projects and share skills.
* [[metawiki:AI_Sauna|AI Sauna]] in Helsinki 6–7 May The two-day event invites the Wikimedia technical community, Finnish GLAM organizations, research projects and companies to join envisioning the interactions between cultural heritage, the open ecosystem and the emerging AI technologies. The first day hosts inspire talks, an idea workshop, sauna, pool and mingling. The second day is hands-on learning, hacking, testing, chatting, planning – getting a grip of the challenge in the best suitable way for everyone.
* [[m:Event:Ionian Wikithon 2024|Ionian Wikithon 2024]] - in Corfu, Greece, 15th May, 2024. An annual event organised by the Networks, Multimedia and Systems Security Laboratory of the Department of Informatics of the Ionian University in collaboration with the Wikimedia Community User Group Greece.

== What is a satellite event and how to organize one? ==

A satellite event is an event organized autonomously by a group of people in the duration of the Wikimedia Hackathon 2024. It shares the purpose of the hackathon: brings the global technical community together to connect, hack, run technical discussions and explore new ideas.

Satellite events can take place at different moments in time:
* before the main event (typically, pre-hackathon events can be onboarding sessions, training and workshops for people who newly joined the Wikimedia projects or the technical community)
* during the main event (to encourage people to work on projects in parallel and to interact online with technical contributors who are attending the in-person event in Tallinn)
* after the main event (for example, folks who attended the event in Tallinn can share their experience with their local community, show what they did or learned. It can also be a follow-up event to keep working on projects initiated during the hackathon)

Satellite events can take place in any region of the world, but also online. Organizing a satellite event together with your local community or user group can support people who are new to the technical aspects of the Wikimedia movement and need onboarding, and offer an alternative to people who cannot join the in-person event in Tallinn.

If you are looking for ideas of event formats, or examples of events, you can look at the [[Wikimedia_Hackathon_2023/Satellite_events|list of satellite events]] organized during the 2023 Hackathon in Athens.

=== Checklist to organize a satellite event ===
Are you enthusiastic about organizing a satellite event? Here’s a list of things to keep in mind:

* Don’t do this all on your own! Reach out to your local chapter or user group, start discussions, create a group of people to work together on organizing the event
* Define the frame of the event: What are the main goals? What is the target audience? How is it related to the Wikimedia Hackathon’s purpose? How will your event connect with the main event or other satellite events?
* Define the logistics aspects of the event: Where will it take place? When, and for how long? How many people do you expect? What will they need to join and contribute? What would be the content of the event (program, activities)? 
* Define and reach out to the people you will need to run the event: do you need people with specific skills? Speakers or facilitators? Helpers for the logistics aspects? We encourage you to look for these people within your local community and support people looking to gather some experience in facilitation, event organization, etc.
* We strongly encourage you to find a local partner to help you with the logistics of the event: depending on the context, you can reach out to a local university, library or hackerspace.
* Plan the expenses needed for the event, and ask for funding if needed (if you want to apply for Rapid Fund maintained by the Wikimedia Foundation, see more information in the section below).
* Communicate about the event: create a section below to add the event to the list, create a sub-page if you need more space to add the schedule, participants list, etc. Reach out to your local tech communities on their favorite channels and the general hackathon channels, to let people know that the event will be happening.

If you want to exchange with people who are interested in the hackathon or other satellite events organizers, feel free to use the hackathon channels.
If you have specific questions for the hackathon organizing team, feel free to write at hackathon@wikimedia.org.

=== How to get funding to organize an event? === 
If you need funding to organize a hackathon satellite event, you can apply to the [[m:Grants:Project/Rapid|Rapid Fund program]] maintained by the Wikimedia Foundation.
The usual [[m:Grants:Project/Rapid#Eligibility_criteria|eligibility criteria]] apply, please check them before applying.

The Rapid Fund program is organized in rounds. Depending on when your event takes place and when you need confirmation of the funding and transfer of the funds, you should keep the related deadline in mind.

In order to have enough time to receive feedback on your application as soon as possible, and to integrate improvements if needed, we strongly recommend you to apply as soon as you can and to not wait until the deadline day!

* If your event takes place in April, May, or June 2024, you can apply [[m:Grants:Project/Rapid#Cycle_4_-_January_15,_2024_-_March_16,_2024|using this criteria]].

The application for Rapid Fund takes place [https://wmf.fluxx.io/ on the platform Fluxx]. You can find [[m:Grants:Project/Rapid#Application_Process|more information about the application process and examples of the expenses that can be funded]].

The regional program officers and the evaluation team will be particularly attentive to the following aspects of your application:
* You joined or formed a group of people that have prior experience in organizing events. Additionally, you reach out to a formal organization for support (user group or chapter, local partner)
* Your team includes at least one person who attended a hackathon before and who knows how technical events in the Wikimedia movement work
* Your team include people with technical skills who can help participants, mentor newcomers, or facilitate workshops
* Your project is focused on the technical aspects of the Wikimedia projects, for example: developing scripts, bots or other tools, contributing to the codebase of MediaWiki and its extensions, reusing data on third-party tools, etc.
* Your project has a connection with the main hackathon event or other satellite events
* Your application includes realistic ideas of format, program, facilitators, and location for the event
* Your application includes a description of the target audience of the event and how you plan to encourage your local community to participate

If you have any questions regarding the funding process or your funding application, you can [[m:Grants:Project/Rapid#Resources|reach out to your local program officer]] or join one of the [[m:Grants:Project/Rapid#Conversation_hours|Rapid Fund conversation hours]].


[[Category:Wikimedia Hackathon 2024]]</text>
    <sha1>472e0f3391d896debd8ab5e54437c74dcdf358eb</sha1>
  </revision>
  <revision>
    <id>6624056</id>
    <parentid>6624054</parentid>
    <timestamp>2024-07-09T03:08:05Z</timestamp>
    <contributor>
      <username>MathXplore</username>
      <id>11001828</id>
    </contributor>
    <minor/>
    <comment>Reverted edits by [[Special:Contribs/122.155.47.66|122.155.47.66]] ([[User talk:122.155.47.66|talk]]) to last version by BDavis (WMF): reverting vandalism</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="8076" xml:space="preserve">&lt;languages/&gt;
{{:Wikimedia Hackathon 2024/Header}}

{{Historical}}

Local communities are welcome to organize pre-hackathon events, watch-parties or meetups in their region in the duration of the Wikimedia Hackathon 2024. On this page, you will find the list of events and how to get involved in a satellite event.

== List of satellite events ==
Add your satellite event information here.
* [[m:Event:Wiki_Mentor_Africa_Hackathon_2024|Wiki Mentor Africa Hackathon 2024]] - 19th to 21st Jan. 2024
* [[m:Event:Comment contribuer dans un projet open source. cas de Mediawiki]]  - 30th March, 2024
* [[m:Event:Whishathon 2024 en Présentiel a Goma|Whishathon 2024 en Présentiel a Goma]] - 15th -  17th March, 2024
* [[:it:Wikipedia:Raduni/Raduni_in_Sicilia_2024#Hackathon_a_Catania_-_19-21_aprile|Mini-hackathon in Catania]], Sicily, Italy - April 19-21. Meetup for Italian-speaking technical community to get together, collaborate on projects and share skills.
* [[metawiki:AI_Sauna|AI Sauna]] in Helsinki 6–7 May The two-day event invites the Wikimedia technical community, Finnish GLAM organizations, research projects and companies to join envisioning the interactions between cultural heritage, the open ecosystem and the emerging AI technologies. The first day hosts inspire talks, an idea workshop, sauna, pool and mingling. The second day is hands-on learning, hacking, testing, chatting, planning – getting a grip of the challenge in the best suitable way for everyone.
* [[m:Event:Ionian Wikithon 2024|Ionian Wikithon 2024]] - in Corfu, Greece, 15th May, 2024. An annual event organised by the Networks, Multimedia and Systems Security Laboratory of the Department of Informatics of the Ionian University in collaboration with the Wikimedia Community User Group Greece.

== What is a satellite event and how to organize one? ==

A satellite event is an event organized autonomously by a group of people in the duration of the Wikimedia Hackathon 2024. It shares the purpose of the hackathon: brings the global technical community together to connect, hack, run technical discussions and explore new ideas.

Satellite events can take place at different moments in time:
* before the main event (typically, pre-hackathon events can be onboarding sessions, training and workshops for people who newly joined the Wikimedia projects or the technical community)
* during the main event (to encourage people to work on projects in parallel and to interact online with technical contributors who are attending the in-person event in Tallinn)
* after the main event (for example, folks who attended the event in Tallinn can share their experience with their local community, show what they did or learned. It can also be a follow-up event to keep working on projects initiated during the hackathon)

Satellite events can take place in any region of the world, but also online. Organizing a satellite event together with your local community or user group can support people who are new to the technical aspects of the Wikimedia movement and need onboarding, and offer an alternative to people who cannot join the in-person event in Tallinn.

If you are looking for ideas of event formats, or examples of events, you can look at the [[Wikimedia_Hackathon_2023/Satellite_events|list of satellite events]] organized during the 2023 Hackathon in Athens.

=== Checklist to organize a satellite event ===
Are you enthusiastic about organizing a satellite event? Here’s a list of things to keep in mind:

* Don’t do this all on your own! Reach out to your local chapter or user group, start discussions, create a group of people to work together on organizing the event
* Define the frame of the event: What are the main goals? What is the target audience? How is it related to the Wikimedia Hackathon’s purpose? How will your event connect with the main event or other satellite events?
* Define the logistics aspects of the event: Where will it take place? When, and for how long? How many people do you expect? What will they need to join and contribute? What would be the content of the event (program, activities)? 
* Define and reach out to the people you will need to run the event: do you need people with specific skills? Speakers or facilitators? Helpers for the logistics aspects? We encourage you to look for these people within your local community and support people looking to gather some experience in facilitation, event organization, etc.
* We strongly encourage you to find a local partner to help you with the logistics of the event: depending on the context, you can reach out to a local university, library or hackerspace.
* Plan the expenses needed for the event, and ask for funding if needed (if you want to apply for Rapid Fund maintained by the Wikimedia Foundation, see more information in the section below).
* Communicate about the event: create a section below to add the event to the list, create a sub-page if you need more space to add the schedule, participants list, etc. Reach out to your local tech communities on their favorite channels and the general hackathon channels, to let people know that the event will be happening.

If you want to exchange with people who are interested in the hackathon or other satellite events organizers, feel free to use the hackathon channels.
If you have specific questions for the hackathon organizing team, feel free to write at hackathon@wikimedia.org.

=== How to get funding to organize an event? === 
If you need funding to organize a hackathon satellite event, you can apply to the [[m:Grants:Project/Rapid|Rapid Fund program]] maintained by the Wikimedia Foundation.
The usual [[m:Grants:Project/Rapid#Eligibility_criteria|eligibility criteria]] apply, please check them before applying.

The Rapid Fund program is organized in rounds. Depending on when your event takes place and when you need confirmation of the funding and transfer of the funds, you should keep the related deadline in mind.

In order to have enough time to receive feedback on your application as soon as possible, and to integrate improvements if needed, we strongly recommend you to apply as soon as you can and to not wait until the deadline day!

* If your event takes place in April, May, or June 2024, you can apply [[m:Grants:Project/Rapid#Cycle_4_-_January_15,_2024_-_March_16,_2024|using this criteria]].

The application for Rapid Fund takes place [https://wmf.fluxx.io/ on the platform Fluxx]. You can find [[m:Grants:Project/Rapid#Application_Process|more information about the application process and examples of the expenses that can be funded]].

The regional program officers and the evaluation team will be particularly attentive to the following aspects of your application:
* You joined or formed a group of people that have prior experience in organizing events. Additionally, you reach out to a formal organization for support (user group or chapter, local partner)
* Your team includes at least one person who attended a hackathon before and who knows how technical events in the Wikimedia movement work
* Your team include people with technical skills who can help participants, mentor newcomers, or facilitate workshops
* Your project is focused on the technical aspects of the Wikimedia projects, for example: developing scripts, bots or other tools, contributing to the codebase of MediaWiki and its extensions, reusing data on third-party tools, etc.
* Your project has a connection with the main hackathon event or other satellite events
* Your application includes realistic ideas of format, program, facilitators, and location for the event
* Your application includes a description of the target audience of the event and how you plan to encourage your local community to participate

If you have any questions regarding the funding process or your funding application, you can [[m:Grants:Project/Rapid#Resources|reach out to your local program officer]] or join one of the [[m:Grants:Project/Rapid#Conversation_hours|Rapid Fund conversation hours]].


[[Category:Wikimedia Hackathon 2024]]</text>
    <sha1>b1c0bbdffb62d3148305375496b8909fc6d09852</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>User talk:Baazigar1993</title>
  <ns>3</ns>
  <id>1992231</id>
  <revision>
    <id>6624055</id>
    <timestamp>2024-07-09T03:07:52Z</timestamp>
    <contributor>
      <username>Baazigar1993</username>
      <id>17970467</id>
    </contributor>
    <comment>Created blank page</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="0" xml:space="preserve"></text>
    <sha1>da39a3ee5e6b4b0d3255bfef95601890afd80709</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>MediaWiki talk:Gadget-site.css</title>
  <ns>9</ns>
  <id>4420</id>
  <revision>
    <id>6624057</id>
    <parentid>4876075</parentid>
    <timestamp>2024-07-09T03:09:05Z</timestamp>
    <contributor>
      <username>Quiddity</username>
      <id>13500</id>
    </contributor>
    <comment>add Interface Admin requested edit</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="1287" xml:space="preserve">{{Archives}}

== Code direction ==

Hello. Codes in rtl languages like Persian are broken because the right-to-left structure is applied to them. By adding this command, you can prevent the codes from being right-aligned so that their readability is not lost:
&lt;pre&gt;
pre, code {
  direction: ltr
}
&lt;/pre&gt;
Thanks. [[User:Alireza Ivaz|Alireza Ivaz]] ([[User talk:Alireza Ivaz|talk]]) 07:35, 10 September 2020 (UTC)
:The above code won’t work. [[ResourceLoader]] “helps” by flipping directions in right-to-left languages, so the above code will be transformed into &lt;syntaxhighlight lang="css" inline&gt;direction: rtl&lt;/syntaxhighlight&gt; if the user interface language is RTL. This function can be disabled, luckily: &lt;syntaxhighlight lang="css" highlight="2"&gt;
pre, code {
	/* @noflip */
	direction: ltr;
}
&lt;/syntaxhighlight&gt; —[[User:Tacsipacsi|Tacsipacsi]] ([[User talk:Tacsipacsi|talk]]) 11:27, 13 September 2020 (UTC)

== Dark mode fix ==
{{edit protected}}
Please add this string underneath line 52:
 color:#222; /* dark mode fix */
That should fix a few things such as the "semi-protected page" banners ([https://www.mediawiki.org/w/index.php?title=Category:Extensions&amp;action=edit example]). Thanks! –[[User:Quiddity|Quiddity]] ([[User talk:Quiddity|talk]]) 03:09, 9 July 2024 (UTC)</text>
    <sha1>913401bce51df2492b668f230d0676a62e45f71b</sha1>
  </revision>
  <revision>
    <id>6624073</id>
    <parentid>6624057</parentid>
    <timestamp>2024-07-09T03:55:10Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <comment>/* Dark mode fix */ Done</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="1417" xml:space="preserve">{{Archives}}

== Code direction ==

Hello. Codes in rtl languages like Persian are broken because the right-to-left structure is applied to them. By adding this command, you can prevent the codes from being right-aligned so that their readability is not lost:
&lt;pre&gt;
pre, code {
  direction: ltr
}
&lt;/pre&gt;
Thanks. [[User:Alireza Ivaz|Alireza Ivaz]] ([[User talk:Alireza Ivaz|talk]]) 07:35, 10 September 2020 (UTC)
:The above code won’t work. [[ResourceLoader]] “helps” by flipping directions in right-to-left languages, so the above code will be transformed into &lt;syntaxhighlight lang="css" inline&gt;direction: rtl&lt;/syntaxhighlight&gt; if the user interface language is RTL. This function can be disabled, luckily: &lt;syntaxhighlight lang="css" highlight="2"&gt;
pre, code {
	/* @noflip */
	direction: ltr;
}
&lt;/syntaxhighlight&gt; —[[User:Tacsipacsi|Tacsipacsi]] ([[User talk:Tacsipacsi|talk]]) 11:27, 13 September 2020 (UTC)

== Dark mode fix ==
{{tl|edit protected}}
Please add this string underneath line 52:
 color:#222; /* dark mode fix */
That should fix a few things such as the "semi-protected page" banners ([https://www.mediawiki.org/w/index.php?title=Category:Extensions&amp;action=edit example]). Thanks! –[[User:Quiddity|Quiddity]] ([[User talk:Quiddity|talk]]) 03:09, 9 July 2024 (UTC)
: Done. [[User:Pppery|* Pppery *]] [[User talk:Pppery|&lt;sub style="color:#800000"&gt;it has begun&lt;/sub&gt;]] 03:55, 9 July 2024 (UTC)</text>
    <sha1>c4df64c860125efd8af95d90c3fb6caa098af417</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Topic:Y86w3sbgt4spwofe</title>
  <ns>2600</ns>
  <id>1992232</id>
  <revision>
    <id>6624060</id>
    <timestamp>2024-07-09T03:14:22Z</timestamp>
    <contributor>
      <username>Flow talk page manager</username>
      <id>1946968</id>
    </contributor>
    <comment>/* This page has been converted into a Structured Discussions board */</comment>
    <model>flow-board</model>
    <format>application/json</format>
    <text bytes="1" xml:space="preserve">{"flow-workflow":"y86w3sbgt4spwofe"}</text>
    <sha1>679a7b5442c4d379970927aeb7897b8450a46e8c</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Talk:Edit check</title>
  <ns>1</ns>
  <id>1729326</id>
  <revision>
    <id>6624066</id>
    <parentid>6602803</parentid>
    <timestamp>2024-07-09T03:35:11Z</timestamp>
    <contributor>
      <username>SCP-2000</username>
      <id>16904824</id>
    </contributor>
    <comment>/* We need help */ Reply</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="182266" xml:space="preserve">{{Edit check/Navbar}}
== So glad to see! ==

@[[User:ESanders (WMF)|ESanders (WMF)]]@[[User:PPelberg (WMF)|PPelberg (WMF)]], I'm very glad to see that this project exists! If implemented well, I think it will have a strong positive impact on the new editor experience. Please let me (and others!) know when you're looking for community feedback, and I'll be happy to share thoughts on specific ideas/prototypes! Cheers, &lt;span style="color:#AAA"&gt;&lt;small&gt;&amp;#123;{u&amp;#124;&lt;/small&gt;&lt;span style="border-radius:9em;padding:0 5px;background:#088"&gt;[[User:Sdkb|&lt;span style="color:#FFF"&gt;'''Sdkb'''&lt;/span&gt;]]&lt;/span&gt;&lt;small&gt;}&amp;#125;&lt;/small&gt;&lt;/span&gt; &lt;sup&gt;[[User talk:Sdkb|'''talk''']]&lt;/sup&gt; 18:29, 24 January 2023 (UTC)

:hi @[[User:Sdkb|Sdkb]]! I'm glad that you're glad to see the Editing Team prioritizing work on this  ^ _ ^ 
:&lt;br&gt;
:{{tq|Please let me (and others!) know when you're looking for community feedback, and I'll be happy to share thoughts on specific ideas/prototypes! }}
:Thank you for offering as much; we're going to need it! 
:&lt;br&gt;
:In fact, since we're here, I wonder: can you think of specific Senior Contributors or groups of Senior Contributors that you think we ought to prioritize reaching out to first? ''I've added a bit more context below about the project and what we're currently looking to learn at this stage.''
:&lt;br&gt;
:All of the above aside, thank you for dropping by! You doing so was the reminder I needed to prioritize posting a status update about this work which I'll do on [[Edit check|the project page]] before this week is over.
:&lt;br&gt;
:&lt;big&gt;'''Seeking Input from Seniors'''&lt;/big&gt;
:''Okay, this is the "context" I referred to above...''
:In the coming weeks, I expect us to be ready to share an initial idea for the user experience of the first "check" we're prioritizing work on: a check that will present people who are attempting to add new content without a corresponding reference with a call to action to do just that. ''This design work is happening in [[phab:T325711]].
:&lt;br&gt;
:While we'll be keen to hear what Senior Contributors think of the user experience we're proposing to present to newcomers and Junior Contributors, we're thinking some of the most valuable things we have to learn from y'all in this moment are things like:
:# ''"In what – if any – ways do Senior Contributors think the proposed mobile UX flow could be adjusted/augmented to increase the ease and efficacy with which they can review edits people will be making with Edit Check?''
:# ''"Which parts of the feedback system Edit Check is proposing do Senior Contributors would value being able to configure on a per-project basis?"'' [i][ii]
:---
:i. This "configuration" bit is particularly top-of-mind for the team as we're seeing Edit Check as having two distinct, and complimentary, dimensions: 1) the user experience newcomers and Junior Contributors will see and 2) the configuration tools/options Senior Contributors will have access to that will enable them to customize this user experience it guides people to take actions that align with project policies and conventions.
:ii. For more details about how we're thinking about consulting with experienced volunteers, please see [[phab:T327330]]. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 22:33, 24 January 2023 (UTC)
::{{tq|...thank you for dropping by! You doing so was the reminder I needed to prioritize posting a status update about this work which I'll do on the project page before this week is over.}}
::{{done}}: [[Edit check#27 January 2023|Edit Check Update: 27 January 2023]] [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 19:32, 27 January 2023 (UTC)
:::@[[User:PPelberg (WMF)|PPelberg (WMF)]], thanks for sharing all that! I reviewed the project page, phabricator tickets, and Figma mockups for desktop and mobile. I [https://phabricator.wikimedia.org/T327330#8566397 responded on Phabricator] to some of your prompts there.
:::I think you're on the right track with who to reach out to — [[w:WT:Teahouse]] and [[w:WT:Growth Team features]] are good options, and I'd add somewhere more general like [[w:WP:VPI]] to bring in some folks who might have good advice but who we might not have thought to ask.
:::Regarding your questions:
:::#If I'm understanding this right, you're looking to make sure that the mobile implementation of EditCheck doesn't make mobile editing annoying for experienced editors. Well, when I need to make an edit on mobile, my workflow (and that of most other experienced editors I know) is to just switch to desktop mode, since the mobile mode is so deeply lacking in functionality it's preferable to suffer through the tiny fonts/buttons of desktop on mobile. I know {{u|Clovermoss}} has been [[w:User:Clovermoss/Mobile editing|interested in mobile editing]], so they might be able to offer more.
:::#There are lots of things we might want to configure. We care more about referencing for certain types of articles, such as [[w:WP:BLP|those on living people]] and [[w:WP:MEDRS|those on medical topics]], so we'd likely want a more aggressive implementation for those than others. Of note for you all, there's [[w:Special:AbuseFilter/686|currently a tag]] for new users adding unreferenced material to a BLP. Noting this comment you made on Phabricator — {{tq|Iterate on the "Citoid" edit card to include some kind of guidance that prompts people to reflect on whether the source they're considering adding is likely to be one other volunteers deem acceptable}} — we'll absolutely want control over the source list there, so that we can modify it as [[w:WP:RSP|RSP]] changes, and ideally we'll want to be able to provide context/specific conditions for (sometimes-)unreliable sources, as it's far from just a binary reliable/unreliable switch. And we'll want to be able to tweak all the guidance text that shows up at the different steps.{{parabr}}Going more broadly, I think the true wiki way would be to allow us to come up with custom filters (just as we currently do abuse tags) and provide custom feedback. This would probably mean leaving out some of the more advanced functionality, but I think the community would be able to come up with many good uses that'd be more effective than our current approach when we notice a persistent error of trying to expand guidance (leading to [[w:WP:CREEP|creep]]).
:::One other thought (for now): Many editors who are contributing uncited material are providing [[w:WP:OR|original research]], so we'll want to identify and provide guidance to them. The [[w:Wikipedia:File upload wizard|Upload Wizard]] comes to mind for its approach to a similar problem. When you're contributing a local file, it asks you whether it's a free work, in a fair use category, or {{tq|doesn't fit either of the categories above}}. If you choose the last option, it comes back with {{tq|Please don't upload it}} as it's very likely a copyright violation. For here, the question we want to make folks adding information answer is "How do you know this?" If it's from a particular source, we of course want the source. But if not, we want to give editors a way to express that by saying "it's something I know from my personal experience". And we want to then explain to them why that's original research and why they need to either find a source for it, or if it's private information that doesn't have a public source, why they shouldn't contribute it.
:::Cheers, &lt;span style="color:#AAA"&gt;&lt;small&gt;&amp;#123;{u&amp;#124;&lt;/small&gt;&lt;span style="border-radius:9em;padding:0 5px;background:#088"&gt;[[User:Sdkb|&lt;span style="color:#FFF"&gt;'''Sdkb'''&lt;/span&gt;]]&lt;/span&gt;&lt;small&gt;}&amp;#125;&lt;/small&gt;&lt;/span&gt; &lt;sup&gt;[[User talk:Sdkb|'''talk''']]&lt;/sup&gt; 06:47, 28 January 2023 (UTC)
::::First off, thank you for investing the time and energy into thinking about these prompts and making this thinking easy for us to understand and engage with, @[[User:Sdkb|Sdkb]]! 
::::I'm going to respond to the specific points you raised in discrete comments so that we can more easily explore the distinct points you are raising here.
::::Before that, thank you for being patient with me.
::::''Note: I've also seen the comments you posted on [[phab:T327330|T327330]] (thank you!); I'll respond there directly.'' [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 00:57, 11 February 2023 (UTC)
::::{{tq|I think you're on the right track with who to reach out to — w:WT:Teahouse and w:WT:Growth Team features are good options, and I'd add somewhere more general like w:WP:VPI to bring in some folks who might have good advice but who we might not have thought to ask.}}
::::Excellent. You affirming the instincts we had leads me to think something like, ''"Okay, we're on the right track."'' [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 00:58, 11 February 2023 (UTC)
::::{{tq|If I'm understanding this right, you're looking to make sure that the mobile implementation of EditCheck doesn't make mobile editing annoying for experienced editors.}}
::::While we're open to hearing input on the user experience, at this stage, we're primarily seeking to learn things like the following from experienced volunteers:
::::# ''How can you envision this general approach going wrong? What fundamental assumptions/constraints might this project be at risk of "running up against"?''
::::# ''What logic/heuristic do experienced volunteers think ought to cause the reference check to get triggered? ''Thank you for responding to this in [[phab:T327330#8566397|T327330#8566397]]; I'm going to follow up with you there.
::::# What kinds of editors do experienced volunteers think the reference check should be enabled for? E.g. All logged out editors? All logged out editors *and* editors who have made fewer than (insert number here) cumulative edits? Etc.
::::# ''How might experienced volunteers value being able to evaluate/audit how Edit Check is performing and the impact it is having so that they can make improvements to it?''
::::# ''What other kinds of checks can experienced volunteers imagine being useful?'' I see you shared a collection of wonderful ideas in [[phab:T327330#8581224|T327330#8581224]] (thank you!). Similar to "2.", I'm going to respond in Phabricator.
::::Note: we do NOT anticipate the in-editor Edit Check user experience to disrupt experienced editors because we:
::::* Assume experienced editors are unlikely to use the visual editor on mobile to edit. See data
::::*  Assume experienced editors are likely to intuitively add references when they are adding new content to the wikis and thus, be unlikely to trigger the reference check
::::* Think we might start by only enabling Edit Check for people who are logged out and have made fewer than, let's say, 500 edits or something like that''. Exact number TBD. Although, writing this out led me to realize we need a task to hold ourselves accountable for deciding this: [[phab:T329340|T329340]].''
::::[[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 01:01, 11 February 2023 (UTC)
:::::Responding to the numbered questions:
:::::# I think there is some risk for false positives. E.g. if the tool tells people to add citations for the plot section of a film, that'll violate [[w:MOS:PLOTCITE]]. There is also some risk for false negatives. This could happen if newcomers become used to the tool, and then start expecting it to let them know whenever they need to add a reference. Then, when the tool misses an instance, they might falsely think that they don't need to add anything because edit check didn't flag it.{{parabr}}More generally, I think the difficulty of this project is that it's trying to communicate Wikipedia's policies/guidelines succinctly at points when newcomers need them, but those guidelines are both inherently complex and not designed to be machine-readable. Because of that, identifying when they come into play will be a challenge.
:::::#(See Phabricator discussion)
:::::#We always want even the newest of newcomers to be incentivized to create an account, so I would &lt;em&gt;not&lt;/em&gt; want to see it enabled only for logged-out editors. Once the tool is mature, I could see it being enabled for everyone if it's good enough about not having false positives — but of course there would be an option in the settings for anyone to turn it off. For the beta stage, I think something like fewer than 15 days or 100 edits might capture most of the target user base. I think you should also make it an opt-in beta feature, though, since some experienced editors like myself are going to want to try it out to provide feedback.
:::::#This could be tricky, as our normal way of checking things is to look at edits, but this tool of course intervenes before an edit is made. I think trying it out for ourselves will be very helpful, as we'll be able to see how accurate its suggestions are.
:::::#(See Phabricator discussion)
:::::Cheers, &lt;span style="color:#AAA"&gt;&lt;small&gt;&amp;#123;{u&amp;#124;&lt;/small&gt;&lt;span style="border-radius:9em;padding:0 5px;background:#088"&gt;[[User:Sdkb|&lt;span style="color:#FFF"&gt;'''Sdkb'''&lt;/span&gt;]]&lt;/span&gt;&lt;small&gt;}&amp;#125;&lt;/small&gt;&lt;/span&gt; &lt;sup&gt;[[User talk:Sdkb|'''talk''']]&lt;/sup&gt; 18:42, 11 February 2023 (UTC)
::::{{tq| Well, when I need to make an edit on mobile, my workflow (and that of most other experienced editors I know) is to just switch to desktop mode, since the mobile mode is so deeply lacking in functionality it's preferable to suffer through the tiny fonts/buttons of desktop on mobile.}}
::::Understood. I appreciate you naming the differences in what functionality is and is not available within the desktop and mobile editing experiences. 
::::While we are aware of this, the Editing Team is not currently prioritizing work on feature parity.
::::I recognize that me saying the above offers no relief. Tho, it is important to me that, at a minimum, you know what the ''Editing Team''  is and is not focusing on in the near-term. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 01:03, 11 February 2023 (UTC)
:::::Yeah, certainly. I definitely didn't mean it as an accusation that you ought to focus more on mobile editing. (And indeed, I'm not sure how fruitful that might be — there are some tasks just inherently not well-suited to mobile.) &lt;span style="color:#AAA"&gt;&lt;small&gt;&amp;#123;{u&amp;#124;&lt;/small&gt;&lt;span style="border-radius:9em;padding:0 5px;background:#088"&gt;[[User:Sdkb|&lt;span style="color:#FFF"&gt;'''Sdkb'''&lt;/span&gt;]]&lt;/span&gt;&lt;small&gt;}&amp;#125;&lt;/small&gt;&lt;/span&gt; &lt;sup&gt;[[User talk:Sdkb|'''talk''']]&lt;/sup&gt; 18:46, 11 February 2023 (UTC)
::::{{tq|There are lots of things we might want to configure. We care more about referencing for certain types of articles, such as those on living people and those on medical topics, so we'd likely want a more aggressive implementation for those than others.}} 
::::Understood and I feel energized hearing that you anticipate people wanting to be able configure the checks themselves! 
::::But back to what you shared, two follow-up questions for you:
::::# Would it be accurate for me to think that you'd expect to be able to configure the check based on the category in which the article someone is editing belongs to?
::::# Can you say a bit more about what you mean by "aggressive implementation" in this context? ''Asked another way: can you share the kinds of 'rules' you'd imagine wanting the reference check to operate on and that you think volunteers would value being able to 'tune' based on the category an article belongs to?''
::::[[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 01:03, 11 February 2023 (UTC)
:::::On (1), yes. We might also want to configure the check based on project tags (which add categories to the talk pages) or even Wikidata information.
:::::Another way we might want to configure is based on article quality, which would also be reflected in talk page categories. For instance, we might decide to tone down the suggestions on a featured article, which has already received extensive human review.
:::::On (2), I'm thinking of it in terms of the confidence level of the tool. So, for example, if the tool thinks there's an 80% chance that adding a reference is needed, we might decide that that's high enough that we want to display the check at a [[w:WP:BLP|BLP]] page, but not if it's a normal page. &lt;span style="color:#AAA"&gt;&lt;small&gt;&amp;#123;{u&amp;#124;&lt;/small&gt;&lt;span style="border-radius:9em;padding:0 5px;background:#088"&gt;[[User:Sdkb|&lt;span style="color:#FFF"&gt;'''Sdkb'''&lt;/span&gt;]]&lt;/span&gt;&lt;small&gt;}&amp;#125;&lt;/small&gt;&lt;/span&gt; &lt;sup&gt;[[User talk:Sdkb|'''talk''']]&lt;/sup&gt; 18:51, 11 February 2023 (UTC)
::::{{tq|Of note for you all, there's currently a tag for new users adding unreferenced material to a BLP.}}
::::Oh, great spot. [https://w.wiki/6Kmc I've added this] tag/filter ([[En:Special:AbuseFilter/history/686|Special:AbuseFilter/history/686]]) to the Edit Check project page. Although, please boldly edit that page if I've linked to a tag/filter that differs from the one you had in mind. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 01:05, 11 February 2023 (UTC)
::::{{tq|Noting this comment you made on Phabricator — Iterate on the "Citoid" edit card to include some kind of guidance that prompts people to reflect on whether the source they're considering adding is likely to be one other volunteers deem acceptable — we'll absolutely want control over the source list there, so that we can modify it as RSP changes, and ideally we'll want to be able to provide context/specific conditions for (sometimes-)unreliable sources, as it's far from just a binary reliable/unreliable switch.}}
::::Great call; I'm glad you named the nuance and configurability such feedback would require.
::::I've added a note to [[phab:T276857|T276857]] (the ticket where we'll explore adding feedback of this sort) so that I can hold us accountable to revisiting this conversation when we prioritize work on it. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 01:05, 11 February 2023 (UTC)
::::{{tq| And we'll want to be able to tweak all the guidance text that shows up at the different steps.}}
::::Understood. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 01:06, 11 February 2023 (UTC)
::::{{tq|Going more broadly, I think the true wiki way would be to allow us to come up with custom filters (just as we currently do abuse tags) and provide custom feedback. This would probably mean leaving out some of the more advanced functionality, but I think the community would be able to come up with many good uses that'd be more effective than our current approach when we notice a persistent error of trying to expand guidance (leading to creep).}}
::::I feel inspired reading the above! Primarily because it sounds like you and us (the Editing Team) are seeing similar potential in this work…
::::Where – to double confirm – "potential" in this context refers to the ability for experienced volunteers to write custom filters/checks (e.g. similar to those you've listed in T327330#8581224) in ways that:
::::* New and inexperienced volunteers will intuitively understand and be equipped with the tools/workflows they need to apply them
::::* Experienced volunteers can audit and iterate upon
::::&lt;br&gt;
::::I'd value knowing if you sense any gaps between the potential you articulated above and what I responded with.
::::&lt;br&gt;
::::''Note: I still think there is a lot for us to collectively execute and validate before I'd feel comfortable "promising" the potential we seem to both see, but yes, the Editing Team is definitely thinking about this first check as a proof of concept for an open-ended system that we can collaboratively shape and expand.'' [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 01:08, 11 February 2023 (UTC)
:::::Yep, that's correct! &lt;span style="color:#AAA"&gt;&lt;small&gt;&amp;#123;{u&amp;#124;&lt;/small&gt;&lt;span style="border-radius:9em;padding:0 5px;background:#088"&gt;[[User:Sdkb|&lt;span style="color:#FFF"&gt;'''Sdkb'''&lt;/span&gt;]]&lt;/span&gt;&lt;small&gt;}&amp;#125;&lt;/small&gt;&lt;/span&gt; &lt;sup&gt;[[User talk:Sdkb|'''talk''']]&lt;/sup&gt; 18:52, 11 February 2023 (UTC)
::::{{tq|One other thought (for now): Many editors who are contributing uncited material are providing original research, so we'll want to identify and provide guidance to them.}}
::::Before inquiring more deeply about the Upload Wizard, would it be accurate for me to understand what you're describing above as the following?
::::In the event that someone declines to add a source, the edit check user experience ought to present them with next steps (that experienced volunteers at individual projects ought to be able to configure) that align with the best practices outlined in [[En:Wikipedia:No original research|WP:No original research]].
::::In the meantime, I've filed [[phab:T329406|T329406]]. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 01:09, 11 February 2023 (UTC)
:::::Yep, that's correct! &lt;span style="color:#AAA"&gt;&lt;small&gt;&amp;#123;{u&amp;#124;&lt;/small&gt;&lt;span style="border-radius:9em;padding:0 5px;background:#088"&gt;[[User:Sdkb|&lt;span style="color:#FFF"&gt;'''Sdkb'''&lt;/span&gt;]]&lt;/span&gt;&lt;small&gt;}&amp;#125;&lt;/small&gt;&lt;/span&gt; &lt;sup&gt;[[User talk:Sdkb|'''talk''']]&lt;/sup&gt; 18:53, 11 February 2023 (UTC)
::::::@[[User:Sdkb|Sdkb]], are you saying that if someone adds material without adding a source, then it's likely ''impossible'' for anyone to find a reliable source that could support the new material?  That hasn't been my experience, but perhaps it varies by subject area.  For example, consider [https://en.wikipedia.org/w/index.php?title=Autoimmune_disease&amp;curid=19468046&amp;diff=1139180333&amp;oldid=1139001055&amp;diffmode=source this edit] that turned up in my (volunteer) watchlist the other day.  Would you call that "original research"? [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 21:11, 14 February 2023 (UTC)
:::::::@[[User:Whatamidoing (WMF)|Whatamidoing (WMF)]], I'm not saying that. It's certainly always easiest for the person adding info to provide the source when they add it, but others can always do so later. For the category of editors who don't add a source, there are two subcategories: the ones where there is a public source but it's just not provided, and the ones where there is no public source (e.g. "I know Jane Smith lives in Glendale because she's my neighbor"). It's the latter subgroup that is likely original research. &lt;span style="color:#AAA"&gt;&lt;small&gt;&amp;#123;{u&amp;#124;&lt;/small&gt;&lt;span style="border-radius:9em;padding:0 5px;background:#088"&gt;[[User:Sdkb|&lt;span style="color:#FFF"&gt;'''Sdkb'''&lt;/span&gt;]]&lt;/span&gt;&lt;small&gt;}&amp;#125;&lt;/small&gt;&lt;/span&gt; &lt;sup&gt;[[User talk:Sdkb|'''talk''']]&lt;/sup&gt; 21:56, 14 February 2023 (UTC)
::::::::@[[User:Sdkb|Sdkb]], I am thinking about this:  "Many editors who are contributing uncited material are providing original research".
::::::::Original research is "material—such as facts, allegations, and ideas—for which no reliable, published sources exist".  "Exist" means they're available to be found in the real world.  So if you write "Jane Smith lives in Glendale" because she's your neighbor, but it happens that Jane Smith has posted on her Facebook account that she lives in Glendale, then that's not original research.  Jane's Facebook post is a reliable, published source for her residence, and therefore a reliable, published source exists for this material, even though it's not cited.  (If, on the other hand, Jane is like me in shunning all anti-social media, then it might or might not be OR.)
::::::::Looking at it from the POV of the software, I think that OR is not a useful lens for evaluating content.  The software can identify whether material is cited, but it won't be able to identify whether uncited material either ''should be'' (WP:V) or ''could be'' (WP:OR) cited.  Consequently, I'm thinking that it's simpler to focus on the concept of cited/uncited instead of "policy violations". [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 22:28, 16 February 2023 (UTC)
:::::::::If it helps to have a real-world example, [[w:User_talk:87.212.157.70#Real_Time|this is from earlier today]].
:::::::::If I understand correctly, you're saying that it's very hard for the software to determine whether or not a reliable source exists for content contributed without a source, so it's therefore hard to say whether or not it's original research. That makes sense.
:::::::::Basically, I imagine the flow for editors who decline to provide a source to be something like this. First, we nag them and say, "you should really provide a source, it'll make you less likely to be reverted". For the portion that still decline, we want to know why. For some, they might be unwilling to be bothered. For some, there might be a source but the novice editor can't manage to find it (we want to divert them to somewhere where experienced editors can help with that). And for some, there might be no source available because they're contributing original research. I think you make a good point that it can be hard for a novice editor to know whether they're in the second-to-last group or the last group. But we want to find ways to provide appropriate guidance to everyone. &lt;span style="color:#AAA"&gt;&lt;small&gt;&amp;#123;{u&amp;#124;&lt;/small&gt;&lt;span style="border-radius:9em;padding:0 5px;background:#088"&gt;[[User:Sdkb|&lt;span style="color:#FFF"&gt;'''Sdkb'''&lt;/span&gt;]]&lt;/span&gt;&lt;small&gt;}&amp;#125;&lt;/small&gt;&lt;/span&gt; &lt;sup&gt;[[User talk:Sdkb|'''talk''']]&lt;/sup&gt; 22:45, 16 February 2023 (UTC)
::::::::::I don't think it would be possible for the software to differentiate that kind of edit from someone doing a basic copyedit.  It's pretty easy to identify "added a whole paragraph".  It's kind of hard to identify "added a new sentence" (How many sentences is "In 1939 Mr. Smith went to Washington, D.C."?).  It's really hard to differentiate "added new information" from "fixed grammar". [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 00:02, 18 February 2023 (UTC)
Commenting since I was pinged (thanks {{u|Sdkb}}!). {{u|PPelberg (WMF)}}, if you're interested in my thoughts about mobile editing, I wrote a piece for the Signpost last month. [https://en.wikipedia.org/wiki/Wikipedia:Wikipedia_Signpost/2023-01-01/Essay] There's some interesting comments on the related talk page from other Wikipedians. If there's anything you want to ask me, feel free. [[User:Clovermoss|Clovermoss]] ([[User talk:Clovermoss|talk]]) 15:20, 28 January 2023 (UTC)

:hi @[[User:Clovermoss|Clovermoss]] – it's great to arrive in a conversation with you after appreciating the some of [[en:Wikipedia:Wikipedia_Signpost/2023-01-01/Essay|the work you've done from a distance]]. Now, as someone who is experienced with and has developed nuanced thoughts around Wikipedia's mobile editing experience, I'd value hearing what you think of the mobile experience we're envisioning for [[Edit check]].
:I expect us to have some mockups to share in the next week or so (maybe sooner)...I'm thinking I'll ping you here once we've published them along with some prompts/questions to serve as feedback guides. How does that sound to you? [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 00:23, 15 February 2023 (UTC)
:: {{ping|PPelberg (WMF)}} Feel free to reach out whenever you have something you'd like to share. I still have access to my old phone so I can actually observe what it looks like from two devices if you think that'd be useful. [[User:Clovermoss|Clovermoss]] ([[User talk:Clovermoss|talk]]) 04:33, 15 February 2023 (UTC)

I responded at the ticket and have found this discussion, which is perhaps a better place for it. [[User:Mathglot|Mathglot]] ([[User talk:Mathglot|talk]]) 00:13, 12 February 2023 (UTC)

:hi @[[User:Mathglot|Mathglot]]! Based on [[phab:T327330#8607428|what you've written on Phabricator]], I have the sense that we (you, @[[User:Sdkb|Sdkb]], and the broader [[Editing|Editing Team]]) are thinking about [[Edit check]] in similar ways which I feel quite energized about! 
:You can expect direct responses from me to the feedback you shared in [[phab:T327330#8607428|T327330#8607428]] before this week is over. In the meantime, I wanted you to know that the feedback you shared is by no means too late. In fact, it's arriving at just the right time ^ _ ^ [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 00:18, 15 February 2023 (UTC)
::Thanks for the update. Just wanted to confirm that I am interested, and to let you know that I'm less experienced here at mw:, so if you ping here and don't hear from me within a day or two, definitely try an en-wiki ping; I won't knowingly ignore responses from you (or anyone) here. [[User:Mathglot|Mathglot]] ([[User talk:Mathglot|talk]]) 23:06, 16 February 2023 (UTC)
:::Understood! And just so you know, the response I [[Talk:Edit check|committed to sharing before today was over]] will need to come next week instead...today got away from me ^ _ ^ [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 01:52, 18 February 2023 (UTC)
Above somewhere you asked about who might be contacted, and I know that [[User:Cullen328]] has a [[w:User:Cullen328/Smartphone editing|page on smartphone editing]] and may be interested in this topic. &lt;small&gt;(It's too far up to try to figure out the right indent/spot to add it, so just tacking it on here.)&lt;/small&gt; [[User:Mathglot|Mathglot]] ([[User talk:Mathglot|talk]]) 23:37, 16 February 2023 (UTC)
:Thanks for the ping, {{u|Mathglot}}. I have been an active editor on English Wikipedia for almost 14 years and 98% of my contributions for the past 12 years have been made using smartphones. I have been an administrator for 5-1/2 years and have carried out many thousands of administrative actions on my phone. My strongly held perspective is that all sites and apps offered by the WMF for the purpose of editing should be fully functional. Wikipedia is a collaborative project and new editors become productive and committed to the projects when they are fully able to collaborate and interact with their colleagues. In my view, all of the software offered to mobile editors is inadequate in a variety of well-documented ways. That is why I use the so-called "desktop" site on my phone, because it is fully functional and enhances collaboration. "Desktop" in this context, in my view, is an inaccurate moniker that discourages mobile editors from using readily available fully functional collaborative software on their phones. I am aware that my view of this matter is is often castigated and ridiculed, but I believe that my own long record of contributing high quality, well-referenced content, and fully participating in many "behind the scenes" areas of the encyclopedia serves as a refutation of those criticisms. To be frank, I am not much interested in placing band-aids on software that I believe impedes collaboration. If these fixes help a little bit, that is fine, I suppose. I take a much broader view. [[User:Cullen328|Cullen328]] ([[User talk:Cullen328|talk]]) 00:37, 17 February 2023 (UTC)
::@[[User:Mathglot|Mathglot]], @[[User:Cullen328|Cullen328]], and anyone else:  You should see a "Subscribe" button at the top of this thread.  If you click it, you'll get Echo/Notifications for every new (signed) comment added. [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 00:04, 18 February 2023 (UTC)

== Dark Continent ==

The project has a focus on editors from Sub-Saharan Africa.  But there seem to be several issues including:

# As noted, "people from Sub-Saharan Africa represent only 1% of active unique editors".  
# Sub-Saharan Africa is different in nature to the West, being lower in resources, development and infrastructure

The proposition is to add a feature to the Visual Editor to nag editors about adding references.  But how does this address the geographical issue?  Sub-Saharan Africa is not richly endowed with libraries, museums, quality press and other GLAM institutions which will help with formal citations, is it?  Instead, it has different traditions such as oral history.  So, nagging Sub-Saharan Africa about expectations based upon the experience of the more privileged 99%, doesn't seem appropriate.

For example, consider a topic in the English Wikipedia: [[:en:Furra|Furra]] -- a legendary queen.  This was started by a BBC journalist with Ethiopian heritage.  I assisted her in getting this started at a [https://www.bbc.co.uk/news/technology-38219838 BBC 100 event] and then did some follow-up work, taking it through the [[:en:Template:Did_you_know_nominations/Furra|DYK process]].  I was able to find some sources to cite in our customary way but it wasn't easy and I suppose that the work might seem quite difficult or strange to people in that region.  There might be some good sources in the [[:en:Sidama language|Sidama language]] and oral tradition but they will not be easy to access here.

So, the proposal doesn't seem a good fit with the objective.  Perhaps it should be turned around so that the 99% of our editors in the developed world, like me, get the nagging, while those in Sub-Saharan Africa are exempted from this.

[[User:Andrew Davidson|Andrew Davidson]] ([[User talk:Andrew Davidson|talk]]) 13:12, 23 February 2023 (UTC)

:Quite interesting point you suggested relating how people will reach out to library or reliable sources: if not par to Sub-Saharan editors, us in ja, or in the global North but in the East, also suffer from finding good sources to reach. We are gifted with decent libraries to each prefecture, dotted Japan in 47+ cities. But as far as you are yet to learn how to hunt books in libraries, numbers are numbers, not treasure troves.
:I am green to my ears that Sub-Saharan peers are given the chance to explore the five-pillar supported effort and try explore reliable sources with peers. And I am ambitious to see how things turn out, as Sub-Saharan experience would be a great forerunner for us on jawp.
:One thing aside from how many libraries you have near you. Isn't this an opportunity to demonstrate that you can't write un-sourced materials on Wikipedia? Our weak point in jawp is that newer editors need to learn that and Five Pillars, and realize we are not on a chat board or SNS. Of course, some topics such as anime or voice actors, pop singers, attract newer editors; they come jumping in to write/change whatever they ''heard/ seen'', and such pages naturally ends up in editing wars. We senior editors fail to prove them what a digital encyclopedia should be handled. Or us old-school don't understand the best route to find backing information for those very new and developing artists/genre of entertainment.
:One question. 
:Seriously, should such reliable sources be physically located on the Continent? Or documented in local language only? Written in local language and any chance stored across the ocean? My search for good ''ukiyo-e'' woodblock prints of 18th-19th century Japan often leads me to the States or UK museums/collections. Then I need to correct captions on Commons, as references on each artist are a bit richer in ja, and misunderstanding can be solved with reliable sources. 
:Well, replace prints to sculpture/costume abroad, and references local, that formula might apply to any part of the world. Human history had many explorers/scholars coming to the end of the world (on the map projection they had used), picked up whatever they found curious, brought those evidences/collections to their home in the global North, to the West. That is not that bad, or in Tokyo alone, we, too, had collected items of anthoropology from around Japan, then lost many of them to fires/earthquakes in the 20th century. Or hymns of 16th century Jesuit has been orally handed down to 1860s among those ''hidden Christians'' in southern Japan (''orrassio'' in local term), in 16th century Catalan dialect.
:Let's hope we have backed up important human knowledge in material form at distant places. And local wisdom or non-material knowledge is still handed down among us somewhere on this planet, including among Sub-Saharan peers. Or invite unwritten wisdom to be put into texts. Are there any more dreamer like me? [[User:Omotecho|Omotecho]] ([[User talk:Omotecho|talk]]) 13:12, 24 February 2023 (UTC)
::[[File:Suzuki Harunobu - Evening Snow on the Heater.jpg|thumb|right|"Evening Snow on the Heater" from New York's Metropolitan Museum of Art.  What is happening here -- can you guess?]]
::Good points.  Me, I live in London, which has many GLAM institutions and so I recently started [[:en:Stanhope Demonstrator|an article]] after seeing an exhibit at [[:en:The Science Museum|our Science Museum]].  But multi-cultural topics can be challenging.  For another example, I started an article to explain a ''ukiyo-e'' print when it was featured as a baffling Japanese picture on the English Wikipedia ''(right)'' without any narrative to explain the subject.  That has now been expanded into a [[:en:Zashiki Hakkei|detailed explanation of the series]] -- an elaborate parody or pastiche of Chinese art.  People in one culture may find it difficult to understand such intricate conventions, culture and history of another... [[User:Andrew Davidson|Andrew Davidson]] ([[User talk:Andrew Davidson|talk]]) 14:05, 24 February 2023 (UTC)
:::Wonderful I encounter somebody who cares about ''ukiyo-e'', and so appreciating to focus on Harunobu, a kind of mysterious artist to me. 
:::I imagine it takes very deep understanding that many art forms in Japan had entertained ideas to have your tongue in cheek kind of resistance against the ''Bakuhan'' system. Or brocade on the back of cotton kimono and cheat the luxury ban imposed on you by the government/feudal lords stocking for wars that would never break.
:::&lt;br&gt;
:::Then, that kind of everyday people's spirit against the rulers would be a global theme, won't it be? How about in Sub-Saharan area? 
:::I am thrilled to imagine that had happened somewhere...
:::FYI, regarding the image of the cotton on those laquarwares, I will scan NDL biblio database. Kindly,, [[User:Omotecho|Omotecho]] ([[User talk:Omotecho|talk]]) 13:43, 25 February 2023 (UTC)
:Some of the major interest areas in Africa seem to be pop culture (like everywhere else), current politics (like everywhere else) and businesses information.  As a result of the interest areas, the sources tend to be available online.   [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 22:06, 28 February 2023 (UTC)
::But not always.  For example, consider the town of [[:en:Azia|Azia]] which is in Nigeria.  I picked this up on [[:en:Wikipedia:WikiProject Proposed deletion patrolling|prod patrol]] and then had some [[:en:Wikipedia:Articles_for_deletion/Azia|difficulty defending]] it.  The best source is a book.  To access this myself, I had to visit the [[:en:British Library|British Library]].  That's one of the best reference libraries in the world but it's in London and so not readily available to most editors.  The original editor used the book but then got burnt by using it too faithfully.  This is a common issue -- damned if you do and damned if you don't.
::Note, by the way, that one of the editors involved in this incident -- [[:en:user:SpinningSpark|SpinningSpark]] -- has recently died.  My impression is that the original corps of veteran editors who established much of the current thinking about such matters is now dying off or being driven off.  There is much that can and has been said about this.  I don't want to digress but it may be relevant as background.
::[[User:Andrew Davidson|Andrew Davidson]] ([[User talk:Andrew Davidson|talk]]) 23:24, 28 February 2023 (UTC)
:::Picked up the term British Library: @[[User:Whatamidoing (WMF)|Whatamidoing (WMF)]], hi, do you see we are able to expand like the following, and I wonder whose team under the WMF umbrella does the best job: in my case, I'd depend much on Wikipedia Library; 
:::* can we request the WL sponsor establishment and set a number of temporary accounts on Wikipedia Library; they can expire automatically on the due date of each initiative? 
:::*Or any matching page where those needing book research in a book/journal will be paired with those WM editors, who are lucky enough to hold accounts, esp at those publishers whose resources focus on each initiative? If not writing or content proofreading, book research itself is an area some people are very resourceful.
:::* Wikimedia Library has partner establishments who sets the number of total ''library cards'' or free-of-charge log-in accounts. That is why editors are in queue for vacancy, and those who holds account are encouraged to offer and do book research when requested. I have encountered only two jawp editors who were aware of WL, so I translated the page into jawp. As [https://www.wikidata.org/wiki/Q46795 Wangari Muta Maathaï] has said, '''''Mottainai'''''! (waste of reserouces)
:::[[User:Omotecho|Omotecho]] ([[User talk:Omotecho|talk]]) 04:58, 1 March 2023 (UTC)
::::''[[:en:Mottainai|Mottainai]]''!?  It's a small world as that was a remarkably controversial topic on the English Wikipedia -- see [[:en:Talk:Mottainai|Talk:Mottainai]] and its [[:en:Talk:Mottainai/Archive_1|archive]]. [[User:Andrew Davidson|Andrew Davidson]] ([[User talk:Andrew Davidson|talk]]) 10:16, 1 March 2023 (UTC)

== Where will this sit in the publish process? ==

Timing wise, is Edit check going to be before the contributor attempts to publish, or will it interrupt the publish process? Other items in this workflow are pre-publish items like disambiguation resolution, and interpublish items like CAPTCHA and Abuse Filter. [[User:Xaosflux|Xaosflux]] ([[User talk:Xaosflux|talk]]) 15:44, 28 February 2023 (UTC)

:I think the answer is "yes".  Nothing's written in stone (or even in code ;-) yet, but the notion is that it could trigger:
:* after you've added some content (e.g., a whole paragraph) and/or 
:* when you click the Publish changes… button.
:The first option runs the risk of interrupting you.  The second option runs the risk of people cancelling their completed edits.
:I think that the very first version will not trigger frequently.  (If there's something totally broken about the experience, you don't want it interfering with all the edits.)  So – on the first day – it might not trigger on a page like [[w:en:User:WhatamIdoing/Christmas candy]], because it contains just one short paragraph (115 bytes long) plus some lists.  But eventually I would expect it to trigger when a short paragraph is added. [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 21:37, 28 February 2023 (UTC)
::From the early mockups on Figma, it also looked like there may be a difference with mobile vs. desktop, with mobile interrupting the publish process whereas desktop coming up as you edit. &lt;span style="color:#AAA"&gt;&lt;small&gt;&amp;#123;{u&amp;#124;&lt;/small&gt;&lt;span style="border-radius:9em;padding:0 5px;background:#088"&gt;[[User:Sdkb|&lt;span style="color:#FFF"&gt;'''Sdkb'''&lt;/span&gt;]]&lt;/span&gt;&lt;small&gt;}&amp;#125;&lt;/small&gt;&lt;/span&gt; &lt;sup&gt;[[User talk:Sdkb|'''talk''']]&lt;/sup&gt; 19:01, 3 March 2023 (UTC)
:::The team decided recently that the mobile and desktop versions are probably going to be different.  It's more work, but it could produce a more natural feel in the different platforms. [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 18:57, 24 March 2023 (UTC)

This was discussed at the meeting today.  I liked the suggestion that the process might be a background activity rather than an intrusive dialog.  This would highlight issues in the text as the user edited or created it.  Background shading or annotation would appear, drawing attention to issues such as spelling errors, missing citations, plagiarism, grammar and so on.  An example of a tool which works in this way was [[:en:Grammarly|Grammarly]].  I've not used this myself but it seems successful and so may be familiar to our users.  We might copy the method of operation of such popular tools so that it would seem intuitive. [[User:Andrew Davidson|Andrew Davidson]] ([[User talk:Andrew Davidson|talk]]) 22:49, 3 March 2023 (UTC)

:It looks like the first version will be more like "intrusive dialog" and less like "background activity", but the hope is to adjust that in the future. [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 02:12, 17 March 2023 (UTC)
::{{talkquote|I liked the suggestion that the process might be a background activity rather than an intrusive dialog. This would highlight issues in the text as the user edited or created it. Background shading or annotation would appear, drawing attention to issues such as spelling errors, missing citations, plagiarism, grammar and so on.|source={{u|Andrew Davidson}}}}
::{{reply to|Andrew Davidson|Whatamidoing (WMF)|PPelberg (WMF)}} {{u|Suffusion of Yellow}} brings up an excellent point, [[#Privacy|below]], regarding the privacy implications of this sort of approach.
::A background task inherently means evaluating unpublished data — that's a privacy minefield, unless the analysis is performed entirely client-side without ever sending even a single byte of content back to the Wikimedia servers. (Which, for certain of those suggestions — e.g. plagiarism — is basically impossible.)
::If data ''is'' evaluated server-side, then it would have to be immediately discarded because '''retaining''' users' private data for analysis / review purposes is a huge red flag.
::Spiriting away unpublished content from the client edit interface would probably also run afoul of the GDPR, unless the user is given a (clearly-explained) choice and explicitly affirms their opt-in to data-sharing, '''before''' any such sharing takes place.
::Even if the data collected were to be managed in a fully-anonymized fashion with all identifying metadata removed, it wouldn't make any difference. As {{u|Suffusion of Yellow}} points out, what we ''can't'' know for sure is that the '''content itself''' contains no sensitive personal data. So it just can't be collected or stored, full stop. Not anywhere, not for any length of time.
::Storing potentially-sensitive data would be a bad idea, even if the only person with access was {{u|PPelberg (WMF)}} — forget about making any of it semi- or totally-public. Not having access to any of the actual content processed by Edit Check seems like it would hamper analysis of the tool's accuracy/performance.
::All of these issues go away, once the user has signaled their intent to publish the edit interface's contents by hitting the "Publish" button. But for anything that occurs prior to that point, it's a completely different story.
::Have any privacy experts (and/or the Evil WMF Lawyers™) been involved in discussions about Edit Check's features and design? The time to invite them to the table is yesterday. [[User:FeRDNYC|FeRDNYC]] ([[User talk:FeRDNYC|talk]]) 08:54, 4 May 2023 (UTC)
:::This objection seems excessive.  If users have such extravagant privacy requirements then these should be addressed at the outset rather than waiting for the Publish interaction, which is not a good place for it, as discussed below. [[User:Andrew Davidson|Andrew Davidson]] ([[User talk:Andrew Davidson|talk]]) 09:16, 4 May 2023 (UTC)
::::I would not consider this an "extravagant" privacy requirement. Do you except the recipients of your emails to be able to read them before you click "Send"? [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 21:04, 4 May 2023 (UTC)
:::::I use Gmail and expect that service to save drafts frequently while I'm working on them.  They are saved into the cloud and that seems quite normal for such services now.  This is not a bug, it's a feature, as losing a draft version because it hasn't been saved is quite annoying.  If people have extravagant privacy requirements then they shouldn't be using internet services like Wikipedia and should be warned off at the earliest opportunity so that they don't waste their time. [[User:Andrew Davidson|Andrew Davidson]] ([[User talk:Andrew Davidson|talk]]) 10:25, 22 June 2023 (UTC)
:::As noted below, we already are ''sending'' the content of unsaved edits to servers. Open up your browser's network monitor, and look for "stashedit". But as far as I know, that's discarded after ''one'' minute. I see no problem with sending back to user, and ''only'' the user, the result of some evaluation. It's allowing anyone ''but'' the user access to this result, or the text that was evaluated, that is the problem. [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 21:01, 4 May 2023 (UTC)
::::I could check in with the Legal team about this, if/when that ever happens.  While storing the data might be useful during development (e.g., to see whether the evaluation is happening correctly), I'm less certain that it would be wanted in the long-term.
::::As for whether it's legally acceptable:  Do users in Europe see autocomplete search suggestions on major web search engines?  Do you remember being "given a (clearly-explained) choice" or "explicitly affirm[ing] their opt-in to data-sharing" for that?  AIUI sending the data back to the servers for evaluation is how that happens, and if it's okay for Google to do that without clearly explaining the mechanism and letting you opt out, then it's going to be okay for other websites to do that, too.  I therefore doubt that it is a legally insurmountable problem. [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 18:33, 5 May 2023 (UTC)
::::: Re {{tq|storing the data might be useful during development}}. sure, on a separate wiki (beta or whatever) where people have a lower expectation of privacy, so long as it's clearly disclosed. On a production wiki? At a minimum, it should only be visible to NDA'd developers, and deleted-for-real (not "archived") when you're finished debugging. Yes, someone, somewhere at Google, has access to your autocomplete suggestions. But imagine if one day Google started sharing that history with all your contacts. That goes beyond "legally acceptable or not". That's creepy.
::::: But each wiki is going to have its own highly customized "edit checks", right? Each time the equivalent of a local EFM updates one of the "edit checks", they need some way to know they haven't made a mistake. Looking for an NDA'd developer to go sifting through a log obviously does not scale. Hopefully, it will be enough just to look at the finished edits. [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 20:03, 5 May 2023 (UTC)
::::::{{reply to|Suffusion of Yellow}} {{tq|quotes=yes|Hopefully, it will be enough just to look at the finished edits.}} Ooh, that just made me realize something. Because the Edit Check data is eventually working towards ''published'' content, it would be really easy to [https://www.eff.org/deeplinks/2009/09/what-information-personally-identifiable de-anonymize]. Say the Edit Check log shows that some anonymous user was writing some text, which Edit Check flagged and suggested they change in some way. They do so, and the updated text becomes part of their edit when published. Well, the information on who made that ''edit'' is public, which means we know who received that suggestion, and we've now tied the '''input''' data back to them as well. Yeah, there's no such thing as anonymous Edit Check data. [[User:FeRDNYC|FeRDNYC]] ([[User talk:FeRDNYC|talk]]) 19:34, 7 May 2023 (UTC)
:::::::(...For published edits. If the user ultimately decides not to publish their edit, then they haven't "outed" themselves as the same person who interacted with Edit Check.) [[User:FeRDNYC|FeRDNYC]] ([[User talk:FeRDNYC|talk]]) 19:40, 7 May 2023 (UTC)
::::::::They could still out themselves by the content of the edit, e.g. "as I just told you, Bob", or "I made [this diff] because", etc. Absolutely nothing must be logged anywhere, except "this finished edit matched this edit check", which is something anyone with time on their hands could have worked out for themselves anyway. [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 19:45, 7 May 2023 (UTC)
:::::{{reply to|Whatamidoing (WMF)}} That's a good question, regarding autocomplete. AFAIK it does work in Europe, although (just like the in US) you can opt out of it. However, Google sets strict limits on how that data is managed — it's quickly aggregated, so that the only strings their servers store are the ones that have been entered by thousands of users (if not more), which no longer makes it personal data. They've also [https://www.forbes.com/sites/emmawoollacott/2014/08/06/more-privacy-woes-for-google-this-time-its-autocomplete/ been sued], [https://arstechnica.com/tech-policy/2012/01/french-court-frowns-on-google-autocomplete-issues-65000-fine/ more than once] over the ''results'' of those autocompletions.
:::::And the enhanced spell checking feature in Chrome (which sends your typed input back to their servers) [https://www.androidpolice.com/google-chrome-servers-get-passwords-enhanced-spell-check/ ''is'' explicitly default-off and opt-in '''only''', even though it promises to anonymize and not retain the data], all out of privacy concerns. (Much greater ones than are involved here, of course, since it has access to everything you type in ''any'' input field. Including our editing interfaces.) [[User:FeRDNYC|FeRDNYC]] ([[User talk:FeRDNYC|talk]]) 19:11, 7 May 2023 (UTC)
::::::This is slightly off-topic. The issue of ''sending'' the text to servers is moot. The "stash edit" feature has been doing this for at least half a decade. It's why huge pages sometimes seem to save instantly; the server had already quietly parsed the page and even checked it against edit filters, and was just waiting for your confirmation. The reply tool with which you typed this response was sending data to the servers so it could show you a live preview. And of course "show preview" and "show changes" were server-side from the very beginning, and never explicitly disclosed that fact. The issue is ''storing'' the data, and worse, ''sharing'' it. [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 19:33, 7 May 2023 (UTC)
:::::::I agree that it's probably possible to do this (send information to the servers, and even to store it briefly) legally.  I can ask Legal to particularly look at that.  
:::::::But the bigger question, and one that Legal might not accept, is ''sharing'' the information.  But if editors can't see the information, that might limit their ability to test their own checks.  The underlying software could be made as open-ended as [[Special:AbuseFilter]], and it could be made as pre-packaged as Growth's Newcomer Home Page.  But if it's open-ended, I'd hope that editors are verifying that it's really catching what it should be.  There is always a risk that when you try to prevent one bad edit, you will accidentally lose two good edits as well.  If you can't see what's happening, you might not know that a given check is causing more harm than benefit. [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 22:32, 20 May 2023 (UTC)
::::::::My objection goes beyond "is this legal?" See my example about Alice and Bob below. It's not just questionably legal, it's ''toxic''. Either you have to be worried ''at every keystroke'' that your innermost thoughts are going to be shared, ''or'' you get yelled for something you never intended to publish. [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 22:56, 20 May 2023 (UTC)
:::::::::I agree that it's a significant worry.  It's one thing to have a couple of people with a contractural obligation to maintain confidentiality who are checking something on many edits, for a particular purpose ("Your call may be recorded for quality purposes...").  
:::::::::It's quite another thing to have an editor with no obligations, and who might be in a dispute with you, reading the words you typed before you publish them, including things you did not publish.  
:::::::::I would not like to see this be possible.  But:  There are consequences for this decision.  Being able to see what editors do before they publish (e.g., right now, they can count how many editors click on a button in the editing toolbar) helps developers know whether a tool is working (e.g., nobody clicks on that button; people who click on that button abandon their edits; clicking on that button results in fewer reversions...).  Having that visibility into pre-publication actions improves the tools (e.g., nobody clicks on that button → change the label on the button, so users know what the button does).
:::::::::Perhaps if editors can't (and they normally shouldn't!) have the information that is necessary to find out whether the tool is working, then they ''also'' shouldn't be creating brand-new tools that ought to use this sometimes-private information for testing purposes.
:::::::::As a simple example, imagine that someone wants to encourage new articles to be well-sourced.  This well-intentioned person creates a "check" that guesses whether the article is about a living person and requires the citation of six sources, and that only sources from a pre-approved list are counted.  
:::::::::What they will notice is:
:::::::::* All new articles about living people contain at least six citations from sources on the pre-approved list.  🙌
:::::::::They might even notice that:
:::::::::* Fewer articles are created. 
:::::::::* Fewer new articles end up deleted during the first 30 days.
:::::::::What they will not necessarily see is:
:::::::::* Fewer articles about dead people are created, because the heuristic for detecting whether the subject is alive is poor.
:::::::::* Fewer articles that aren't about people at all are created, because the heuristic for detecting whether the subject is about a person is poor.
:::::::::* Articles about living people don't get created, because the editors couldn't figure out how to format the citations in a way that was recognizable to the new "check".
:::::::::* Articles about living people don't get created, because not all of the good sources were included in the pre-approved list.
:::::::::* The pre-approved list of sources is focused on English-speaking content, so the creation of articles about people from non-English-speaking countries is particularly badly affected.
:::::::::* More articles about certain borderline subjects (e.g., minor politicians, newly hired athletes, first-time actors) are being created.
:::::::::* It doesn't trigger when a redirect is turned into an article, so editors bypass the new "check" by creating articles as redirects first and only then adding article content.
:::::::::...and so forth.
:::::::::When the Editing team creates software, they look for these kinds of bad outcomes.  This ''sometimes'' requires more information than is visible in a diff.  If you don't feel that you could trust volunteer devs to have the pre-publication information that is necessary to notice such problems, do you also think we should we limit the "check" system so that they can't (independently) write their own, potentially inadequately tested, versions? [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 18:56, 23 May 2023 (UTC)
::::::::::As in, have to file a phab ticket every time we think a "check" might need tweaking? And wait the usual one week to fifteen years to get it fixed? No, that would terrible in its own way. It would effectively give the WMF a channel to ''tell users the right way to write content''. Traditionally, there's been a "separation of powers" and that would be a major breach. I think a combined approach will work:
::::::::::* First, on every popup, have a prominent "report error" button. Not some ''ad hoc'' system like we have with edit filters, but built right in to the extension. When they click that, it's clearly disclosed that ''now'' the contents of the edit form will be made public (and also CC-BY-SA, you are editing logged out, blah blah blah). They can click "cancel" if there's a something private or copyrighted.
::::::::::* Second, as discussed above, a log of those checks which stall match when the user clicks "publish". I understand the worry that this won't be adequate, but really, from working with warn-only edit filters, I think that maybe 50% of time, ''even when the filter is correct'', people just ignore the warning. And it's probably about 95% when the filter is wrong. In your example above, nearly everyone creating an article about a dead person will think, "oh, stupid buggy system", ignore the popup, and publish anyway. And then we'll have the data we need.
::::::::::And no, I don't want either of these logs to be limited to "volunteer devs" or any special group. With edit filters, we value transparency; and ''only'' mark filters private if there's a good reason to do so. We certainly don't mark "good-faith" edit filters (like [[:en:Special:AbuseFilter/869]]) private. [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 19:39, 23 May 2023 (UTC)
:::::::::::I don't think you were around for the Article Feedback Tool, which was [[w:en:Wikipedia_talk:Article_Feedback_Tool/Version_5/Archive_5#Article_Feedback:_Next_Steps|removed by community demand]] in 2014.  I can recommend reading [[w:en:User:Risker/Risker's checklist for content-creation extensions]] in general &lt;small&gt;(FYI @[[User:Risker|Risker]])&lt;/small&gt;, and I'm sure that a feedback tool inside the editing window won't result in as much extra work for oversighters as the ones shown to readers did, but it could still be a lot.  
:::::::::::Also, feedback tools usually have a pretty poor signal:noise ratio.  Some people will report errors on correctly functioning software (e.g., spammers), and most newcomers just trust that the software is correct, or they'll click pasts it and decide that it's not worth their time to report the problem.  The false positives and false negatives are both significant.
:::::::::::And, of course, this is assuming that the problem is fairly obvious to the end-user.  If the check says "This ''appears'' to be an article about a living person, and it ''appears'' to have zero sources.  Sources are required for all regular Wikipedia articles" with options like {{clickable button|Not a living person}} and {{clickable button|Already cites sources}} and {{clickable button|This is a disambiguation page}}, then that might result in people getting past it when the check is buggy.  
:::::::::::But if it says instead "This article must have more sources.  You cannot publish this unless you add citations to reliable sources", with the only possible response being {{clickable button|Add sources|color=blue}}, then I would expect a very different reaction from the users. [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 18:23, 24 May 2023 (UTC)
::::::::::::With edit filters, the tradition is to almost ''never'' disallow an edit unless it is ''disruptive''.  Certainly I wouldn't want Edit Check to be any different. It should offer suggestions, and nothing more. If something really should be disallowed, we can continue to use AbuseFilter. [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 18:39, 24 May 2023 (UTC)
:::::::::::::I could imagine editors wanting Edit Check to "disallow" the addition of any URL that matches the [[Extension:SpamBlacklist|spam blacklist]], and once "disallow" is an option, it's an option that could be used against (the English Wikipedia's) tradition.  (Different wikis have different traditions.) [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 16:46, 13 June 2023 (UTC)

== Clarify please: warning for SpamBlacklist warning ==
{{done}}
As it says: ''[https://www.mediawiki.org/w/index.php?title=Special%3ATranslate&amp;showMessage=Edit_check%2F38&amp;group=page-Edit+check&amp;language=ja&amp;filter=&amp;optional=1&amp;action=translate Warn when the url added as reference is registered in the SpamBlacklist, and thus prevent the warning from appearing when saving the page]'', does it mean the SpamBlacklisted url is removed automatically? [[User:Omotecho|Omotecho]] ([[User talk:Omotecho|talk]]) 09:56, 4 March 2023 (UTC)

:@[[User:Omotecho|Omotecho]], that might be possible in the future, but I think it would probably just show a message and (I hope) highlight the place where the link is located. [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 02:11, 17 March 2023 (UTC)
::I see, and case closed. Thank you helping me (: [[User:Omotecho|Omotecho]] ([[User talk:Omotecho|talk]]) 03:24, 17 March 2023 (UTC)

== Privacy ==

It's suggested that we are going to be able to {{tq|'''Review''' the edits people who are shown Edit Check are making}}. But the user hasn't clicked "Publish" yet. Publish means "make public". Until they click that, it's private. The contents of the edit form might contain all sorts of private information: cut &amp; paste fails of passwords or personal info, ill-thought-out personal attacks, copyrighted text, and so on. The user hasn't agreed to for it to be shown to anyone, even users with special rights. So how will we be able find and adjust broken filters/checks? [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 22:27, 13 April 2023 (UTC)

:Editing a complex text like an article will naturally tend to require some interaction.  For example, I commonly use the visual editor to generate citations from URLs and it is good practice to do this as one goes along.  If such interaction causes privacy concerns then these are best dealt with at the outset, before the user starts editing.  The user should be warned of any such implications in advance so that they don't waste their time or risk their privacy.  It's no good waiting for a final publish interaction.  As that may come at the end of a lengthy editing session, the user will tend to be weary at this point and disinclined to read through detailed formalities and legal warnings.  If these are important, they are best done when the user is fresh. [[User:Andrew Davidson|Andrew Davidson]] ([[User talk:Andrew Davidson|talk]]) 09:09, 4 May 2023 (UTC)
::It's not the information being sent to the ''servers'' that I'm worried about. &lt;code&gt;stashedit&lt;/code&gt; has been doing that for years. But a stashed edit is kept for what, one minute? And even if it's kept for longer, only some NDA'ed developer is ever going to see it. But what's being proposed here would seem to be making ''public'' (or at least sharing with some huge group, like admins) the contents of the edit box, ''before'' the user intended to make it public.
::For example, suppose Alice types {{tq|Bob, you're a total moron}}, regrets that a few seconds later, hits backspace, and types {{tq|Bob, I respectfully disagree}},  Should Bob be able to access Alice's original comment?
::A disclaimer won't help here; we're talking about fundamentally changing the way we interact with Wikipedia. To start, it'll no longer be possible to preview anything you don't want public. It'll no longer be possible to keep copyrighted text in the edit form, for easy reference. We'll have to be ''on edge'' every time we hit CTRL-V.
::I can see a few solutions, though:
::* Only log the edit if the problem was still there when they clicked "publish". That would be incomplete data, but possibly enough.
::* Provide a "report problem" button. When the user clicks that, warn them ''then'' that they're about to make a public post, and they should remove any copyrighted material, etc. 
::[[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 20:50, 4 May 2023 (UTC)
:In the early days, "review" will mean "review via [[Special:RecentChanges]]".  The first step will be a new item in [[Special:Tags]] (which was recently created, but which just picks up the addition of any 50 characters, so not really functional right now) that shows finished edits that EditCheck should have triggered on.  We'll be able to make sure that it's (usually) picking up the right things before the tool is shown to any editors at all. [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 18:37, 5 May 2023 (UTC)
:@[[User:Andrew Davidson|Andrew Davidson]], @[[User:FeRDNYC|FeRDNYC]], and @[[User:Suffusion of Yellow|Suffusion of Yellow]]: thank you for opening up this conversation about the relationship between Edit Check configurability/extensibility and the Movement's/Foundation's commitment to protecting peoples' privacy. Also, thank you for being patient with me in responding here.
:&lt;br&gt;
:Below is an attempt to address the points I currently understand y'all to be raising in this discussion and the discussion @[[User:Xaosflux|Xaosflux]] [[Talk:Edit check#c-Xaosflux-20230228154400-Where will this sit in the publish process?|started above]] that evolved to encapsulate questions around privacy.
:&lt;br&gt;
:Of course, if you think I've misunderstood or missed anything about what y'all are expressing here, please let me know. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:08, 16 June 2023 (UTC)
::{{tq| As Suffusion of Yellow points out, what we can't know for sure is that the content itself contains no sensitive personal data. So it just can't be collected or stored, full stop. Not anywhere, not for any length of time.}} ''via [[Talk:Edit check#c-FeRDNYC-20230504085400-Whatamidoing (WMF)-20230317021200|FERDNYC]]''
::@[[User:FeRDNYC|FeRDNYC]], as Edit Check grows more nuanced, there may be a point where the software will need to send unpublished data people input during an edit session to servers to be evaluated. Note: this data will not be automatically stored or shown to anyone. 
::Although, as @[[User:Suffusion of Yellow|Suffusion of Yellow]] [[Talk:Edit check#c-Suffusion of Yellow-20230504210100-FeRDNYC-20230504085400|pointed out]], stashing provides a precedence for this. Before implementing functionality of this sort we will ensure it adheres to the Foundation's established privacy standards. Here is a ticket to hold the Editing Team accountable to delivering on this by consulting with WMF legal staff, @[[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] [[Talk:Edit check#c-Whatamidoing (WMF)-20230505183300-Suffusion of Yellow-20230504210100|suggested]]: [[Phab:T339316|T339316]]. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:10, 16 June 2023 (UTC)
::{{tq|"But what's being proposed here would seem to be making public (or at least sharing with some huge group, like admins) the contents of the edit box, before the user intended to make it public."}} ''[[Talk:Edit check#c-Suffusion of Yellow-20230504205000-Andrew Davidson-20230504090900|via Suffusion of Yellow]]''
::@[[User:Suffusion of Yellow|Suffusion of Yellow]]: the Editing Team has no plans now, or in the future, to share the contents of an unpublished edit publicly or with other volunteers, regardless of the rights/permissions volunteers are afforded.
::Can you please share what you've seen that might've contributed to you perceiving us as planning this kind of functionality so that I can update it to make this commitment explicit/unambiguous? [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:11, 16 June 2023 (UTC)
:::I don't recall seeing any place where this was implied. Just trying to head off any bad ideas at the pass. :-) [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 02:07, 17 June 2023 (UTC)
::::@[[User:Suffusion of Yellow|Suffusion of Yellow]], understood and thank you. The entire Editing Team continues to be grateful for how proactive you're being about naming potential issues the idea of Edit Check brings to mind. We're eager to hear what you think of the prototype that will be ready in the next few days. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 15:52, 20 June 2023 (UTC)
::{{tq|But each wiki is going to have its own highly customized "edit checks", right? Each time the equivalent of a local EFM updates one of the "edit checks", they need some way to know they haven't made a mistake. Looking for an NDA'd developer to go sifting through a log obviously does not scale.}} ''[[Talk:Edit check#c-Suffusion of Yellow-20230505200300-Whatamidoing (WMF)-20230505183300|via Suffusion of Yellow]]''
::Two things:
::'''1.''' Yes, we are designing the Edit Check system in ways that enable individual projects to configure existing checks and potentially author new ones. 
::'''2.''' And we agree with you in thinking volunteers will need a way to verify the checks they've authored/configured are working as they expect without needing an NDA'd developer to intervene. 
::With this in mind, @[[User:Suffusion of Yellow|Suffusion of Yellow]]: are there existing systems on-wiki whose debugging capabilities you think we should look to as a source for inspiration? ''We started gathering a few ideas in [[Phab:T327959|T327959]].'' [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:16, 16 June 2023 (UTC)
:::The most important thing is, when the user ignores the check and chooses to publish anyway, ''everything'' about the (final) edit is saved, just like at [[Special:AbuseLog]]. So long as we can query that from the API, we can build tools. [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 02:17, 17 June 2023 (UTC)
::::{{tq|everything about the (final) edit is saved, just like at Special:AbuseLog.}}
::::@[[User:Suffusion of Yellow|Suffusion of Yellow]], the point you're raising above feels important...can you please say more/be explicit about what "everything about the (final) edit is saved" means in the context of Special:AbuseLog? [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:40, 23 June 2023 (UTC)
:::::I mean, just look at an [[en:Special:AbuseLog/35389237|example AbuseLog entry]]. Along with the filter pattern, everything you need to ''work out why the filter matched'' is there. So:
:::::# Alice adds an unreferenced paragraph
:::::# Edit Check asks Alice for a reference
:::::# Alice declines, and does ''not'' choose to make a public report.
:::::# Alice makes some more edits, but leaves the unreferenced paragraph there.
:::::# Alice clicks "publish"
:::::At this point, ''another'' check is run on whatever ''Alice is trying to publish'', and if it matches any Edit Check, the result is saved in something very similar to [[Special:AbuseLog]]. Of course this isn't perfect, because we can't see what the text was at step 2. But it's the best we can do. [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 21:05, 25 June 2023 (UTC)
::::::@[[User:Suffusion of Yellow|Suffusion of Yellow]] you sharing this example was the prompt I needed to look more closely at all of the information that is provided alongside each abuse log entry...thank you. I've [[phab:T327959#8965947|added this example to T327959]]. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 22:36, 26 June 2023 (UTC)
::::{{tq| So long as we can query that from the API}}
::::I'm going to raise this topic of an API in a new thread to increase visibility. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:42, 23 June 2023 (UTC)
::{{tq|...have to file a phab ticket every time we think a "check" might need tweaking? …No, that would terrible in its own way.}} | [[Talk:Edit check|source]]
::@[[User:Suffusion of Yellow|Suffusion of Yellow]], agreed. A system design that would require tweaks to Edit Check be made by MediaWiki developers making changes to code that needs to ride a weekly deployment train does not seem attractive or feasible to me. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:17, 16 June 2023 (UTC)
::{{tq|First, on every popup, have a prominent "report error" button. Not some ad hoc system like we have with edit filters, but built right in to the extension. When they click that, it's clearly disclosed that now the contents of the edit form will be made public (and also CC-BY-SA, you are editing logged out, blah blah blah). They can click "cancel" if there's a something private or copyrighted.}} | [[Talk:Edit check#c-Suffusion of Yellow-20230523193900-Whatamidoing (WMF)-20230523185600|source]]
::+1 to the idea of including an option for people to express that they think Edit Check is appearing in error. 
::To start, we're thinking we'll expose this option to people who decline to add a reference when invited to do so. 
::The work to implement this is happening in [[Phab:T329593|T329593]]. We've yet to converge on the language for this choice, so if ideas come to mind, please let us know as much by commenting on the ticket. ''Note: you can see a work in progress design pictured below.'' [[File:EditCheck-Reference-No.png|thumb|Working design. ''More in [[phab:T329593]]'']]
::As to the idea you're entering about sharing the cases where people believe Edit Check to appear in error, we're not yet sure technically or socially how to go about doing this. We filed to [[Phab:T338909|T338909]] as a placeholder. So if ideas emerge, I'd value you sharing them there. In the meantime, I've [[phab:T338909#8937200|linked the comment above on that ticket]] so that we can refer to it when we prioritize this work. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:22, 16 June 2023 (UTC)

== Where can I find a live example? ==

It's written that test wiki, en wiki and fr wiki should already have this feature deployed. However, I tried to add changes with more than 50 characters and still nothing (changes published without asking for citations). Can you tell when this will be deployed and whether it's possible to see this feature live now? [[User:Kanzat|Kanzat]] ([[User talk:Kanzat|talk]]) 13:57, 19 June 2023 (UTC)

:hi @[[User:Kanzat|Kanzat]] – thank you for writing to ask! A couple of responses to the questions you posed...
:{{tq|Can you tell when this will be deployed and whether it's possible to see this feature live now?}}
:If all goes according to "plan," the initial reference Edit Check will become available as a beta feature at an initial set of wikis before July is over.
:With the above said, an initial prototype of the ''mobile experience'' will be available before '''tomorrow''' is over.
:{{tq|It's written that test wiki, en wiki and fr wiki should already have this feature deployed.}}
:Can you please share what you read that contributed to the impression you shared above? ''I ask this wanting to update the language you're referencing so it's clear that Edit Check is '''not''' yet available in production on any wiki.'' [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 19:22, 20 June 2023 (UTC)
::Thanks for reply. I probably misread status update from May 12th. It's written there about prototype in test wiki. And then something about new tag in frwiki and enwiki, so I thought functionality should be there too. [[User:Kanzat|Kanzat]] ([[User talk:Kanzat|talk]]) 20:32, 20 June 2023 (UTC)
:::Understood, okay! Thank you for following up, @[[User:Kanzat|Kanzat]] ^ _ ^ [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 20:55, 20 June 2023 (UTC)

== Seeking Feedback: Edit Check Prototype ==

hi y'all! Below are instructions for trying and sharing feedback about the mobile prototype for the first Edit Check. [[File:Edit Check demo (mobile).webm|thumb|Edit Check demo (mobile)]]

If you find anything about the instructions below confusing/unclear, please comment here so that we can try to help.

For context, this first Edit Check that will prompt '''newcomers''' who are contributing '''new content without '''including a corresponding '''reference''' to consider doing so. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 22:22, 21 June 2023 (UTC)

:'''&lt;big&gt;Try the prototype&lt;/big&gt;'''
:# On a '''mobile device''', visit an article page on the patch demo wiki. ''E.g. https://patchdemo.wmflabs.org/wikis/dbe9212625/w/index.php?title=Douglas_Adams&amp;mobileaction=toggle_view_mobile'' 
:# Tap any edit pencil you see on the page
:# Decide whether you'd like to &lt;span class="mw-ui-button mw-ui-progressive"&gt;Edit without logging in&lt;/span&gt; or create a temporary account by tapping the &lt;span class="mw-ui-button mw-ui"&gt;Sign up&lt;/span&gt; button to switch editing modes.
:# Ensure you are using the '''visual editor'''. If not, please switch to it by tapping the &lt;span class="mw-ui-button mw-ui-progressive"&gt;✎&lt;/span&gt; button
:# Add a couple of new sentences to the article you arrived at in "Step 1." ''without'' including a reference
:# Tap the &lt;span class="mw-ui-button mw-ui-progressive"&gt;&gt;&lt;/span&gt; button to proceed to publishing 
:# Follow the prompts you're presented with to publish the changes you made in "Step 4."
:# ✅ You are now ready to share feedback.
:[[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 22:26, 21 June 2023 (UTC)
:'''&lt;big&gt;Share feedback&lt;/big&gt;'''
:# [https://www.mediawiki.org/wiki/Talk:Edit_check?action=edit&amp;section=new&amp;dtpreload=1&amp;preloadtitle=Feedback:%20YOUR%20USERNAME Click here to start a new topic] on the talk page.
:# Share what you think as responses to the following prompts [i]:
:## ''What did you find unexpected about the prototype?''
:## ''What do you like about the prototype?''
:## ''What do you wish was different about the prototype?''
:## ''What concerns you about this prototype?''
:## ''What questions does this prototype bring to mind?''
:# Click the blue "Add topic" button.
:# ✅ You are done! Thank you!
:---
:i. Please do NOT feel limited by the prompts above. The Editing Team is interested in any and all feedback. So, if you feel like what you want to share does not fit neatly within these prompts, don't worry, please share the feedback you have to offer in whatever way feels natural to you. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 22:29, 21 June 2023 (UTC)
::Do we need to use a mobile useragent for this, or is there a mobilefront end url? (Or is using Minerva enough for this test?) [[User:Xaosflux|Xaosflux]] ([[User talk:Xaosflux|talk]]) 15:35, 22 June 2023 (UTC)
:::@[[User:Xaosflux|Xaosflux]], great question. At present, you'll need to use the prototype on a mobile device.
:::Before next week is over, we plan for the desktop prototype to be ready. Tho, we're not quite there yet.
:::''Note: in the meantime, I've updated the "Try the prototype" instructions to make this explicit.'' [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 18:45, 22 June 2023 (UTC)
:&lt;small&gt;''Pinging a few people who I think will have valuable feedback and insight to offer about the [https://patchdemo.wmflabs.org/wikis/dbe9212625/wiki/Douglas_Adams Edit Check mobile prototype]: @[[User:Andrew Davidson|Andrew Davidson]], @[[User:Clovermoss|Clovermoss]], @[[User:FeRDNYC|FeRDNYC]], @[[User:Kanzat|Kanzat]], @[[User:Mathglot|Mathglot]], @[[User:Omotecho|Omotecho]], @[[User:Sdkb|Sdkb]], @[[User:Suffusion of Yellow|Suffusion of Yellow]], @[[User:Xaosflux|Xaosflux]]&lt;/small&gt; [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 22:35, 21 June 2023 (UTC)
::When I click "Publish changes" button, the dialog has such a small height, that I can't see anything. [[User:Kanzat|Kanzat]] ([[User talk:Kanzat|talk]]) 23:28, 21 June 2023 (UTC)
:::@[[User:Kanzat|Kanzat]], what you described does not sound ideal...can you please share a screenshot of what you're seeing? [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:35, 21 June 2023 (UTC)
::::[[File:Edit check screenshot 2023-06-22 08.55.25.png|thumb|test of WMF feature]]
::::My result seemed similar..  Here's a screenshot. [[User:Andrew Davidson|Andrew Davidson]] ([[User talk:Andrew Davidson|talk]]) 08:40, 22 June 2023 (UTC)
:::::@[[User:Andrew Davidson|Andrew Davidson]], can you please try the prototype again using a '''mobile device'''? 
:::::And thank you for saying something about this and sharing this screenshot, @[[User:Andrew Davidson|Andrew Davidson]]...you doing so helped prompt me to update the testing instructions above 🙏🏼 [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 18:48, 22 June 2023 (UTC)
::I've made three edits, two of which were minor and one that was slightly more substantial. None of them have given me the prompt. Am I not adding enough? I was hoping the most recent one with a few sentences would trigger it. I would like to note that I did receive a prompt about using the suggested edits feature after the third edit and this message had a bunch of numbers in it? I could email a screenshot of what that looked like if you are interested.  [[User:Clovermoss|Clovermoss]] ([[User talk:Clovermoss|talk]]) 12:30, 22 June 2023 (UTC)
:::hi @[[User:Clovermoss|Clovermoss]]! Thank you for trying out the prototype with such swiftness 🙏🏼 
:::{{tq|I've made three edits, two of which were minor and one that was slightly more substantial. None of them have given me the prompt. Am I not adding enough?}}
:::Assuming [https://patchdemo.wmflabs.org/wikis/dbe9212625/w/index.php?title=Douglas_Adams&amp;diff=prev&amp;oldid=159 this edit] is the "more substantial" one you were referring to, can you please try making another edit (with a similar amount of text: 1-2 sentences) and ensure you are using the '''visual editor''' to do so?
:::At present, Edit Check is only activated for people using the visual editor. Tho, I'm now realizing the instructions as previously written did not make this clear. I've [https://w.wiki/6r$t updated them] to make this explicit. I'm sorry for the confusion. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 00:47, 23 June 2023 (UTC)
::::I did try again and I recieved the prompt this time. I was impressed by the feature. :) Is there anything else you were looking for/wanted to ask? It looks like you've put a lot of thought into how this works so I'm not sure there's really anything that I'd suggest you do differently.  [[User:Clovermoss|Clovermoss]] ([[User talk:Clovermoss|talk]]) 08:40, 24 June 2023 (UTC)
:::::{{tq|I did try again and I recieved the prompt this time. }}
:::::Wonderful, okay! Thank you for giving it a second try.
:::::{{tq|I was impressed by the feature. :)}}
:::::Were there particular aspects of the experience that you noticed? No worries if there aren't details you can recall. Knowing what you thought about the overall experience is valuable unto itself.
:::::{{tq|Is there anything else you were looking for/wanted to ask?}}
:::::Outside of the overall impression the prototype left you with, I wonder what – if any – questions you'd value being addressed before you'd be confident in the feature being offered in production? [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 22:49, 26 June 2023 (UTC)

== Feedback: Sdkb ==

I may come back for more thorough feedback later, but for now, when I dismissed the suggestion to add a citation, it felt like follow-through was lacking. When someone selects "this info is already cited elsewhere," it should prompt them to reuse a ref, and when someone selects "I don't know what citation to add" it should offer up info about citations to try to help them out. It might also be good for research purposes to have the "other" answer give the opportunity to provide feedback. &lt;span style="color:#AAA"&gt;&lt;small&gt;&amp;#123;{u&amp;#124;&lt;/small&gt;&lt;span style="border-radius:9em;padding:0 5px;background:#088"&gt;[[User:Sdkb|&lt;span style="color:#FFF"&gt;'''Sdkb'''&lt;/span&gt;]]&lt;/span&gt;&lt;small&gt;}&amp;#125;&lt;/small&gt;&lt;/span&gt; &lt;sup&gt;[[User talk:Sdkb|'''talk''']]&lt;/sup&gt; 06:18, 22 June 2023 (UTC)

:Thank you for taking the time to promptly review the prototype, @[[User:Sdkb|Sdkb]]. 
:{{tq|When someone selects "this info is already cited elsewhere," it should prompt them to reuse a ref, and when someone selects "I don't know what citation to add" it should offer up info about citations to try to help them out. }}
:Oh! Interesting ideas. I've taken a first pass at articulating these in ticket form here: [[phab:T341535]].
:''Meta: I appreciate how in both of the ideas you're describing above is this notion of offering people ways to go "deeper" / "learn more."'''
:{{tq|It might also be good for research purposes to have the "other" answer give the opportunity to provide feedback.}}
:Agreed; here's a ticket for this idea: [[phab:T341536]].
:Zooming out a bit, would it be accurate for us to think you did not see any issues with the current "No" suggestions themselves? [[File:Edit Check decline.png|thumb|Reasons for declining to add a reference]] [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:27, 10 July 2023 (UTC)
::@[[User:PPelberg (WMF)|PPelberg (WMF)]], the current suggestions look good, but they don't quite capture all the common decline reasons an editor might have.
::One option to add to the list might be "I added info that does not need a citation". In most cases, the response will be, "yes, it does, because [[w:WP:Verifiability]]," but it would be helpful to know when users are thinking this. There's a bit of a risk that, by including such an option, we give users the impression that sometimes citations are not needed, but that would be mitigated if the interface returned an explanation on verifiability whenever someone chose that option.
::Another common use case would be the "I just can't be bothered" one, where an editor knows that a citation would be preferred, but just doesn't think it worthwhile to put in the effort to provide it. The current suggestions don't capture that, but adding an option like "I don't think a citation is important" might. The response to it from the interface would be to emphasize that uncited information is much more likely to be reverted, so if they want their edit to stick, they should really provide one. &lt;span style="color:#AAA"&gt;&lt;small&gt;&amp;#123;{u&amp;#124;&lt;/small&gt;&lt;span style="border-radius:9em;padding:0 5px;background:#088"&gt;[[User:Sdkb|&lt;span style="color:#FFF"&gt;'''Sdkb'''&lt;/span&gt;]]&lt;/span&gt;&lt;small&gt;}&amp;#125;&lt;/small&gt;&lt;/span&gt; &lt;sup&gt;[[User talk:Sdkb|'''talk''']]&lt;/sup&gt; 14:31, 12 July 2023 (UTC)
:I disagree that if the same information appears twice in an article, both instances should have a citation to one source. Citing the same source several times should be done when different pieces of information are obtained from the same source. [[Special:Contributions/24.62.188.162|24.62.188.162]] 13:29, 12 July 2023 (UTC)
::The same information isn't generally appearing twice in an article, other than once in the lead and once in the body. But often two pieces of information from the same source appear, and in that case the general expectation at en-WP is to reuse the citation. Anything else creates [[w:Don't repeat yourself|undesired]] redundancy. &lt;span style="color:#AAA"&gt;&lt;small&gt;&amp;#123;{u&amp;#124;&lt;/small&gt;&lt;span style="border-radius:9em;padding:0 5px;background:#088"&gt;[[User:Sdkb|&lt;span style="color:#FFF"&gt;'''Sdkb'''&lt;/span&gt;]]&lt;/span&gt;&lt;small&gt;}&amp;#125;&lt;/small&gt;&lt;/span&gt; &lt;sup&gt;[[User talk:Sdkb|'''talk''']]&lt;/sup&gt; 14:07, 12 July 2023 (UTC)
:::I'm concerned that this feedback may be rather enwiki-centric, but even at the English Wikipedia, [[w:en:Wikipedia:When to cite#When a source or citation may not be needed]] (the standard for FAs) does not require duplicate citations for most repeated information, and the guideline at [[w:en:Wikipedia:Citing sources#Consecutive cites of the same source]] says the same thing. 
:::The same information can appear many times in an article.  The fact that COVID-19 is caused by a virus (e.g., rather than a bacteria or a parasite) appears in [[w:en:COVID-19]] a few dozen times.  It is a direct claim only a handful of times (e.g., lead sentence, infobox, ==Cause== section) a few times, but a sentence like "People remain contagious for up to 20 days and can spread the virus even if they do not develop symptoms" also contains an indirect claim that the disease is caused by a virus.   [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 19:42, 22 August 2023 (UTC)

== Feedback: Andrew Davidson ==

I didn't get a functional dialog.  Here's a screenshot.

[[File:Edit check screenshot 2023-06-22 08.55.25.png|thumb|test of WMF feature]]

A couple of other observations.

1.  I made some other edits of the Adams article as an IP.  I repeatedly got demands for CAPTCHA -- a painful process which I'm not used to as a registered editor.  When I made the test edit to add sentences, I didn't get the CAPTCHA, iirc, which indicates that the new feature is cutting in first.  This seems the wrong way round.

2.  When I made a screenshot of the issue above, I then faced the challenge of inserting it here.  I used the upload feature and this took me to Commons which I usually avoid as I prefer to directly upload to the English Wikipedia using their simpler interface.  The Commons process was painful too, with a tiresome Wizard which I mostly ignored and then a maze of inputs for WikiData and whatever.   This seemed quite excessive for just a simple screenshot.  The issue is that multiple layers of well-meaning but tiresome demands and nagging are a big turnoff when you just want to get something simple done.  If we are adding yet another layer, there should be monitoring of how many users start the process but then give up in disgust or frustration.  

3.  The test article is a biography of Douglas Adams.  This is entertaining and I am strongly reminded of the Sirius Cybernetics Corporation. 
For more cheap entertainment of this sort, I recommend [https://www.looneylabs.com/games/are-you-a-robot Are you a robot?] which, by coincidence, resurfaced here recently when I was tidying up.   "Share and Enjoy!"  

[[User:Andrew Davidson|Andrew Davidson]] ([[User talk:Andrew Davidson|talk]]) 09:15, 22 June 2023 (UTC)

:@[[User:Andrew Davidson|Andrew Davidson]]: thank you for trying out the prototype and being patient with me here. Responses to what you shared below...
:{{tq|I didn't get a functional dialog. Here's a screenshot.}}
:Can you please try again using this updated version of the prototype https://patchdemo.wmflabs.org/wikis/9a60b4369e/wiki/Douglas%20Adams which we've updated to work on desktop machines?
:{{tq|When I made the test edit to add sentences, I didn't get the CAPTCHA, iirc, which indicates that the new feature is cutting in first. This seems the wrong way round.}}
:To make sure I'm understanding: are you suggesting that it seems more intuitive to you that people be prompted to complete the CAPTCHA ''before'' being prompted to add references? If so, can you say a bit more about what's leading you to think as much?
:{{tq|The issue is that multiple layers of well-meaning but tiresome demands and nagging are a big turnoff when you just want to get something simple done. If we are adding yet another layer, there should be monitoring of how many users start the process but then give up in disgust or frustration.}}
:I hear you on seeing the potential in streamlining the Commons upload experience. In fact, it looks like there is a team at the Foundation who will be focusing on this very thing in the coming months. ''See [[phab:T337466]]''.
:{{tq|Sirius Cybernetics Corporation}}
:Ha. This is the first time I'm hearing of [https://hitchhikersguidetoearth.fandom.com/wiki/Sirius_Cybernetics_Corporation this] – thank you for sharing :) [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 22:53, 17 July 2023 (UTC)
::I don't think you can ask for a CAPTCHA in the pre-ref state, because you don't know whether the ref will contain a URL. [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 19:47, 22 August 2023 (UTC)

== Imagining an Edit Check API ==

Based on what you know about Edit Check so far, and [[Edit check|other projects]] like [[Extension:AbuseFilter|Abuse Filter]] that Edit Check draws inspiration from, what kinds of information / functionality can you imagine being useful to have access to through an API?

We're asking the above in response to @[[User:Suffusion of Yellow|Suffusion of Yellow]] [[Talk:Edit check#c-Suffusion of Yellow-20230617021700-PPelberg (WMF)-20230616231600|raising the idea of an API]]  in the context of a broader conversation about how we might create ways for volunteers to independently audit, configure, and potentially author Edit Checks([[phab:T327959|T327959]]).

''Note: please do not feel urgency around the above. This discussion is very much exploratory as the Editing Team remains focused on [[Talk:Edit check#c-PPelberg (WMF)-20230621222200-Seeking Feedback: Edit Check Prototype|first validating the initial reference Edit Check]] we're in the midst of developing and seeking feedback about.'' [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:50, 23 June 2023 (UTC)

== Feedback: Suffusion of Yellow ==

So, I'm not sure what the point of this prototype is. It only prompts me ''after'' I begin the publish process; is that intended? Because I was under the impression that I would get some sort of reaction before that; hence all my concerns about privacy. '''So far, you've mostly reinvented [[Special:AbuseFilter]]'s "warn" option under a new name'''. I say "mostly" because you've added one nifty feature that edit filters don't have: the ability to highlight the problematic text in the edit window. So why not patch AbuseFilter to allow something like that, instead of building a new extension from scratch? [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 20:52, 25 June 2023 (UTC)

:Took the words right out of my mouth. My assumption has been that it works like (and will replace) [[m:Community Wishlist Survey 2021/Warn when linking to disambiguation pages|the disambiguation link warning]]. I get that you wouldn't want a prompt about citation every key stroke or every few seconds, but that's exactly why the prompt is a baffling choice for a demo. [[User:Nardog|Nardog]] ([[User talk:Nardog|talk]]) 21:09, 25 June 2023 (UTC)
::{{tq|I get that you wouldn't want a prompt about citation every key stroke or every few seconds, but that's exactly why the prompt is a baffling choice for a demo.}}
::hi @[[User:Nardog|Nardog]] – can you please say a bit more about the above? ''Asked another way: can you please describe what's leading you to think the [https://patchdemo.wmflabs.org/wikis/9a60b4369e/wiki/Douglas%20Adams current experience] could cause people to become frustrated/distracted?''
::''Note: I ''think'' we're aligned in thinking people would become distracted and frustrated were the interface prompt them repeatedly to add a citation while they're in the midst of drafting new content. Thus, why we've started with [https://patchdemo.wmflabs.org/wikis/9a60b4369e/wiki/Douglas%20Adams an initial approach] that presents people with a prompt once we're fairly certain they're finished typing.'' [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:37, 17 July 2023 (UTC)
:::You seem to have completely misconstrued my comment. Let me rephrase it hopefully more clearly: My assumption has been that the edit check will work like the disambiguation link warning in that it gives you notifications ''as you edit'' (i.e. [[phab:T315072|T315072]]). If it gives you prompts ''after'' you click Publish then there's little utility in it because that function already exists in AbuseFilter. That's why I find the prompt about citation a baffling choice for a demo, because citation is not something that needs to be prompted about ''as you edit''. [[User:Nardog|Nardog]] ([[User talk:Nardog|talk]]) 05:46, 18 July 2023 (UTC)
::::Thank you for clarifying what you meant, @[[User:Nardog|Nardog]].
::::Responses and a follow up question in response below.
::::''Note: I think some of what's contained below applies to some of the points @[[User:Suffusion of Yellow|Suffusion of Yellow]] [[Talk:Edit check#c-Suffusion of Yellow-20230718202600-PPelberg (WMF)-20230717233000|raised below]]. Although, I'll respond to [[Talk:Edit check#c-Suffusion of Yellow-20230718202600-PPelberg (WMF)-20230717233000|that comment]] directly in a subsequent message.''
::::"{{tq|My assumption has been that the edit check will work like the disambiguation link warning in that it gives you notifications as you edit (i.e. T315072). If it gives you prompts after you click Publish then there's little utility in it because that function already exists in AbuseFilter.}}"
::::I ''think'' we are aligned in wanting to avoid allocating resources implementing functionality that already exists.
::::With the above said, it ''seems'' you perceive Edit Check, as currently implemented, to be undifferentiated from Abuse Filter and as a result, see the former as being redundant. ''Of course, please tell me if I've misunderstood you.''
::::The Editing Team on the other hand sees Edit Check to be different enough from Abuse Filter to consider the two projects as distinct and therefore not duplicative and potentially, uniquely valuable. ''More on the "valuable" piece below.''
::::As to why the Editing Team thinks this…
::::The Editing Team sees Edit Check and Abuse Filter as '''similar''' in so far as they both seek to offer volunteers an on-wiki way to specify that certain messages be shown when an edit meets certain criteria.
::::The Editing Team sees Edit Check and Abuse Filter as '''different''' in the extent to which the messages/feedback they present are integrated into the editing experience…
::::Edit Check will present people feedback that is paired with calls to action and features that invite them to immediately improve the edit they're making without need to consult documentation or exert effort trying to locate the specific part of the change the feedback they're receiving is relevant to.
::::Now, I think it's important to say explicitly that we have NOT yet  proven that the points of distinction I named above amount to real impact. We've [[Edit check#Evaluating impact|shared how we're thinking about evaluating the impact of this project]] so that we, staff and volunteers, can converge on an evaluation framework that encompasses the nuances of this project.
::::In fact, writing the above out leads me to wonder: what do you think about ''potentially'' running a test that looks something like this…
::::Of the people who are attempting to add new content without a source, ⅓  are shown an abuse filter, ⅓ are shown an Edit Check, and ⅓ are shown nothing and then comparing how peoples' behavior varies between these three groups? 
::::''Note: I'm not sure if the above is technically feasible. Tho, I wonder if it is a start to us arriving at a way of understanding how impactful these different experiences are for improving the quality of edits people make.'' [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:28, 23 August 2023 (UTC)
:::::My main objection is not that it duplicates AbuseFilter (although it does), but that you claim this project is about "Offer[ing] people actionable feedback about Wikipedia policies '''while''' they are editing" (emphasis in original) yet you're NOT building it.
:::::As demonstrated by the disambiguation link warning and as discussed in [[phab:T315072|T315072]], there's tremendous potential and utility in parsing the source and offering warnings and error messages '''while''' the user is editing, so as to reduce the significant number of volunteer hours spent on fixing lint errors, template errors, inappropriate sources, MoS violations, etc., which is currently done mainly through tracking categories, preview warnings, tags (via AbuseFilter), and [[Special:SpecialPages#mw-specialpagesgroup-maintenance|special pages]]. 
:::::You may choose not to work on such a thing, but at least be honest and accurate about what you're actually building (i.e. offering feedback ''after'' submitting changes, and only in Visual Editor), so that others who might want to work on T315072 won't mistakenly think it's already happening. [[User:Nardog|Nardog]] ([[User talk:Nardog|talk]]) 15:11, 24 August 2023 (UTC)
::::::The time in between clicking the edit button and the change being published is "while editing", right?  There is:
::::::* before you are editing – before you click the edit button
::::::* while you are editing – after you click the edit button and before you publish your edit
::::::* after you are editing – after you publish your edit
::::::[[File:From_minimum_viable_product_to_more_complex_product.png|alt=From minimum viable product to more complex product|thumb|500x500px|The current prototypes are closer to the skateboard end of this spectrum than to the car.  A skateboard is faster than walking, but it's not yet self-propelled, we don't yet have a comfortable place to sit down, and we'll still get wet if it rains.  We might be on the right path, but this isn't the finished product.]]
::::::The Editing team has talked about providing near-instant feedback, but it's the nature of a [[w:en:Minimum_viable_product|first testable iteration]] that not every feature is there yet.  It's more sensible to try something small and see whether it's a worthwhile concept at all.  
::::::In particular, figuring out the right time to provide real-time feedback in an instantaneous system, without interrupting people, is ''really'' difficult.  [[w:en:Microsoft_Clippy|Much larger teams have tried and failed at that]].  You need to provide the feedback before the person moves on to another task, but after they're definitely done.  There's no obvious way to differentiate between pauses that mean "I'm stuck and don't know what to do next – some help would be nice" and the ones that mean "Stop interrupting me, I only paused to grab a copy of the URL for the source that you were telling me to add!"  And, of course, the whole system has to work on a wide variety of devices, some of which may not be able to support checking the contents as the editor types.  The challenges might be worth addressing, but if the whole idea turns out to be unhelpful, then we could save a lot of time and trouble by finding that out first ("fail quickly", if you like the Silicon Valley jargon). [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 17:58, 24 August 2023 (UTC)
:::::::One could argue, but that's not what one thinks of when one hears "while editing". I'm just asking for clarification on what the scope of this project is. I was interested in this project because of what the top of the infobox said it was about. If the project is not what I thought it was, fine, I don't object to the project per se, but I strongly suggest you be clearer in the description.
:::::::You seem to be implying that this project will support offering feedback ''before'' "Save changes" is clicked, but I haven't seen anyone in the Editing team saying it will. Are you speaking for the Editing team when you imply that?
:::::::Also, does the Editing team have any intention to make it work with other editors? If not, while I don't object to the project like I said, I do think the same resources could be better spent making something that works for all (or most) editors. [[User:Nardog|Nardog]] ([[User talk:Nardog|talk]]) 18:37, 24 August 2023 (UTC)
::::::::I know that the Editing team has talked about offering feedback while you're still typing, but I don't know – and AFAICT nobody actually knows – whether that will happen in the foreseeable future. 
::::::::The visual editor is used by more than half of desktop-based new editors for their first edit.  The percentages vary significantly by community.  For example, at the English Wikipedia, 45% of newcomers' first four edits to articles are in the visual editor.  At many large Wikipedias, including German, French, Spanish, Hebrew, and Arabic, it's around 70%.  At the Japanese and Korean Wikipedias, it's 55%.  Turkish is 60%.  Portuguese is 75%.   Chinese is 40%.   Globally, the overall score is that the first few edits are made 55% visual editor, 37% in the 2010 wikitext editor, 4% switching between visual and wikitext modes, 3% using something else (e.g., the 2003/non-Javascript editor or a script), and a tiny fraction using the 2017WTE.
::::::::As a result, even if they only built this for the visual editor, it would still be available to more than half of newcomers.
::::::::(I can pull mobile numbers if you want, but overall, I think [[mobile visual editor]] is less visible, less used, and less capable [=less space for toolars/buttons], making it more important to provide additional help there.) [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 19:54, 24 August 2023 (UTC)
:::::{{re|PPelberg (WMF)}} Can you (or anyone who's actually working on this project) respond to my request for making the project description clearer? [[User:Nardog|Nardog]] ([[User talk:Nardog|talk]]) 12:30, 28 September 2023 (UTC)
::::::hi @[[User:Nardog|Nardog]] – can you please help me understand what remains unclear in your mind? Might this confusion stem from us holding different understandings for what constitutes "while someone is editing"? If so, I wonder whether that difference in perspective is notable considering we seem aligned on the spirit of that language...
::::::Offering people feedback in moments: A) when they are likely to act on said feedback and B) before changes are published that would likely result in experienced volunteers needing to allocate time/effort to improving.
::::::You raising this again signals to me that this is important to you and I do not mean to doubt that. Tho, at present, I'm needing some help understanding where you're coming from. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 16:32, 28 September 2023 (UTC)
:::::::{{re|PPelberg (WMF)}} As I said above, I find this important because currently this project appears to be cookie-licking [[phab:T315072|T315072]].
:::::::{{tq|we seem aligned on the spirit of that language}} I'm at a loss as to how you came to this conclusion. I don't consider "after clicking 'Save changes'" to be what one thinks of upon reading "while someone is editing". Now that you've said it, "before changes are published" seems like a good alternative.
:::::::And that wasn't my only concern. If this is just about VisualEditor, then ''please'' say so in the description. [[User:Nardog|Nardog]] ([[User talk:Nardog|talk]]) 16:48, 28 September 2023 (UTC)
::::::::The initial version will only be in the visual editor (=Extension:VisualEditor's visual mode, not even in [[2017 wikitext editor|its wikitext mode]]).  It is being extended to the [[mobile visual editor]].
::::::::The team recently talked about what it would take to make this work in the 2010 wikitext editor (largely a difference between ContentEditable and HTML textarea).  I do not believe that they can extend it to the 2003 wikitext editor (=non-Javascript), and I do not believe that they are likely to extend it to wikEd or other editors that are not officially supported.  I do not know whether they intend to extend it to the mobile wikitext editor.
::::::::You don't use the visual editor, so you might be unaware that, unlike in most of the wikitext editors, clicking the blue 'Publish changes...' button in the visual editor is never the end of the editing process.  In the visual editor, Edit check will trigger before people write their edit summaries or check the diff. [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 19:43, 28 September 2023 (UTC)
:::::::::{{talkquote|1=The team recently talked about what it would take to make this work in the 2010 wikitext editor}}
:::::::::{{ping|PPelberg (WMF)}} And the conclusion was? And I ask for the nth time: please change "while editing" in the project description to something to the effect of "before the edit is published" as long as you're not building something that offers feedback while the editable content is being edited. [[User:Nardog|Nardog]] ([[User talk:Nardog|talk]]) 01:57, 16 November 2023 (UTC)
:::::::::@[[User:PPelberg (WMF)|PPelberg (WMF)]]: Asking once again. [[User:Nardog|Nardog]] ([[User talk:Nardog|talk]]) 13:44, 19 May 2024 (UTC)
::::::::::hi @[[User:Nardog|Nardog]] thank you for the ping. To start, Edit Check will be offered only within the visual editor.
::::::::::With regard to updating the language we use to describe the project, we're going to keep it as-is for the reason you described [i], we [[Phab:T359107|plan to work on a check]] in the next fiscal year that will offer people feedback while they're editing.
::::::::::I hope this helps and please let me know if anything about the above brings new questions to mind.
::::::::::Also: thank you for being patient with me. I've been on leave.
::::::::::---
::::::::::i. {{tq|as long as you're not building something that offers feedback while the editable content is being edited.}} [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 21:51, 20 May 2024 (UTC)
:::::::::::Also! You asking this was the prompt I needed to [https://www.mediawiki.org/w/index.php?title=Help:Edit_check&amp;diff=prev&amp;oldid=6532635 update the FAQ section] of [[Help:Edit check]]. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 21:56, 20 May 2024 (UTC)
:@[[User:Suffusion of Yellow|Suffusion of Yellow]], hi – thank you for taking a close look at the prototype and allocating the time to share what the experience brought up for you. Some comments in response below...
:{{tq| It only prompts me after I begin the publish process; is that intended? Because I was under the impression that I would get some sort of reaction before that...}}
:Can you please say a bit more about when you had expected the prompt to appear? And if you can recall, what assumptions/past experience(s)/etc. might be informing that expectation?
:''For context: the prompt appearing ''after'' you initiate the save process by clicking/tapping the publish button ''is'' intentional.''
:{{tq|...hence all my concerns about privacy.}}
:Are you able to share what – if anything – about the current experience causes you to worry about privacy?
:Fwiw, the Editing Team does not have any plans to share the contents of an unpublished edit with anyone, [[Talk:Edit check#c-PPelberg (WMF)-20230616231100-PPelberg (WMF)-20230616230800|as noted above]].
:{{tq|So far, you've mostly reinvented Special:AbuseFilter's "warn" option under a new name. I say "mostly" because you've added one nifty feature that edit filters don't have: the ability to highlight the problematic text in the edit window. So why not patch AbuseFilter to allow something like that, instead of building a new extension from scratch?}}
:We agree with you in seeing Edit Check as an evolution of Abuse Filter. In fact, it's one of the features that [[Edit check#Background|helped inspire the project]] and continues to inform how we approach it.
:Further, I think the distinction you highlighted above between Abuse Filter and Edit Check [i] represents one of the core assumptions this projects rests on: presenting people with feedback and actions about a specific change they're making while they still have the editing interface open will increase the likelihood that they act on the suggestions they're being presented with and subsequently, make edits they're proud of and projects value. We still have some experimenting to do to learn the extent to which this proves true.
:{{tq|So why not patch AbuseFilter to allow something like that, instead of building a new extension from scratch?}}
:Inside of the question you're posing above I see a concern for efficiency and a value of leveraging the momentum/behavior an existing feature has garnered over years of use. Assuming this doesn't stray too far for what you meant, than I think we are aligned.
:It's with the above in mind that we're ''not'' developing Edit Check as a new extension. Rather we are building Edit Check as a set of improvements to the visual editor codebase that will, hopefully, make it easier for other teams and volunteers to plug directly into and customize the editing interface in ways that have historically been difficult to do.
:---
:i. Edit Check introduces the ability to present people with feedback and actions about a specific change they're attempting to make in moments when they are, ideally, motivated and equipped to act. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:30, 17 July 2023 (UTC)
::{{tq|Can you please say a bit more about when you had expected the prompt to appear?}}
::I had expected it to appear as I was typing.
::{{tq|And if you can recall, what assumptions/past experience(s)/etc. might be informing that expectation?}}
::The infobox at [[Edit Check]] says "Offer people actionable feedback about Wikipedia policies '''while''' they are editing." (emphasis in original)
::{{tq|Are you able to share what – if anything – about the current experience causes you to worry about privacy}}
::Nothing. You seem to [https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/VisualEditor/+/refs/heads/master/modules/editcheck/init.js running the check client-side], in fact.
::{{tq|presenting people with feedback and actions about a specific change they're making while they still have the editing interface open}}
::But that's ''not'' what you're doing. You're "presenting people with feedback" ''after'' they begin the publish process. ''That's what, to a very close approximation, AbuseFilter already is doing'', and if we wanted to warn people for adding an unreferenced paragraph, ''we would already be doing so.'' That fact that we're ''not'' should be a very big clue that this, as Nardog says, is a poor choice for a demo. 
::{{tq|Rather we are building Edit Check as a set of improvements to the visual editor codebase that will, hopefully, make it easier for other teams and volunteers to plug directly into and customize the editing interface in ways that have historically been difficult to do.}}
::I'm unclear as to what that means. Is this going to be a VisualEditor-only thing? Because a quick glance at [[en:Special:RecentChanges]] suggests that on enwiki only about 10% of edits are made through VE. Is the plan to leave out the other 90%? Or to create two parallel system, carefully kept in sync, one for VE, and the other for the classic editor? [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 20:26, 18 July 2023 (UTC)

== Feedback: Joe Roe ==

Thanks for sharing this, it's really cool. Here's my feedback from the point of view of the English Wikipedia:

* As I think your team already knows, most but not ''all'' material on enwiki needs an inline citation. Notably, your video demo appears show someone adding text to the lead section of an article, which is [[:en:WP:LEADCITE|one of those exceptions]]. Obviously the tool can't accommodate all these nuances and I appreciate that users can always click no. What seems to be lacking is guidance (especially for new users) on when citations are and aren't required; when it's okay to click "no" without worrying about your edit being reverted. Ideally the finished tool should make the prompt text locally configurable, so we can add that project-specific guidance.
* Relatedly, I think it's important that there is a way to turn this off for mainspace pages that don't use citations (on enwiki that includes disambiguation pages and certain types of list). Perhaps with a magic word? Then we could incorporate into templates like [[:en:Template:Disambiguation]] etc.
* I don't like the follow-up questions very much. The first two options sound like reasonable reasons not to add a reference, but actually aren't consistent with enwiki policy, so it feels like you're teaching people the wrong lessons. The second option would make more sense if it said "my changes are already cited ''later''" (per LEADCITE above). But more to the point, I don't think we should be asking editors to explain themselves to interfaces. It's annoying and infantalising. The text says "other editors would value learning..." but a) it's not clear how this information is going to be conveyed to other editors and b) knowing other editors, they probably don't value it at all.
* When you go through all the prompts, but then go back to editing the page before publishing, you're re-prompted about the same text. I can also see that becoming quite frustrating.

[[User:Joe Roe|Joe Roe]] ([[User talk:Joe Roe|talk]]) 14:47, 30 June 2023 (UTC)

:{{tracked|T327959}} {{tracked|T341535}} {{tracked|T329593}} {{tracked|T342589}}
:@[[User:Joe Roe|Joe Roe]], hi! Thank you for making the time to try the prototype and thinking critically about it. I'm going to post responses to what you shared below as individual comments so they're [hopefully] easier to discuss one-by-one...
:Before that: thank you for being patient with me 🙏🏼 [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 01:01, 25 July 2023 (UTC)
:{{tq|...most but not all material on enwiki needs an inline citation. Notably, your video demo appears show someone adding text to the lead section of an article, which is one of those exceptions.}}
:Great spot. To equip projects to configure Edit Check to accommodate the LEADCITE exception you're naming here, [[phab:T327959|we're planning to make it possible]] for volunteers, on a per project basis, to:
:# Decide what – if any – sections Edit Check ought to ''ignore'' edits to and
:# Implement said preferences on-wiki independent of the Editing Team. 
:...what do you think about the plan for on-wiki configuration that I described above? What – if any – aspects of it lead you to question the extent to which it could be effective? [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 01:02, 25 July 2023 (UTC)
::That sounds useful in the specific case of LEADCITE. [[User:Joe Roe (mobile)|Joe Roe (mobile)]] ([[User talk:Joe Roe (mobile)|talk]]) 10:29, 22 August 2023 (UTC)
:{{tq| What seems to be lacking is guidance (especially for new users) on when citations are and aren't required; when it's okay to click "no" without worrying about your edit being reverted.}}
:Mmm, understood and I'm glad you named this. Two resulting questions...
:1) Are you aware of a page (or set of pages) that you think are effective at equipping people with the information they need to decide whether proceeding ''without'' accompanying the new content with a reference is likely to result in that edit being reverted? 
:2) More broadly, what prompted this thought? ''Asked in another way: what do you worry could happen were Edit Check '''not''' to offer guidance of the sort you're describing above?''
:For context: we've been thinking in a future release, we'd offer people who ''decline'' to add a referenc when prompted, follow-up actions and learning opportunities of the sort [I think] you're describing here. ''See: [[phab:T341535|T341535]].'' [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 01:03, 25 July 2023 (UTC)
::1: There's [[en:WP:NOTCITE]], but it's a bit neglected. Specific examples of things that don't need a citation are scattered across various project pages (e.g., off the top of my head, [[en:WP:LEADCITE]], [[en:WP:BLUESKY]], [[en:WP:CALC]], [[en:WP:LISTVERIFY]]). There are also specialised types of article that aren't expected to have citations, like [[en:WP:DISAMBIG|disambiguation pages]] or certain types of [[en:WP:SETINDEX|set indexes]]. And there are lots of unwritten conventions in specific topic areas. I imagine we could come up with an information page that summarises the major exceptions, though at the end of the day it's possible to argue that anything that doesn't fit the [[:en:WP:BURDEN]] criteria doesn't need a reference.
::2: I'm worried that Edit Check could reinforce a simplistic and rules-oriented reading of Wikipedia's verifiability policy, which is that everything has to have an inline citation, even when that citation brings no value to readers or editors. The actual policy is considerably more nuanced than that and like all Wikipedia policies is intended to guide and develop editorial judgement, not replace it. The kind of situation I'm thinking of is when an editor (new or not) ''correctly'' declines to provide a reference. In that situation the software shouldn't hassle them further, flag their edit for attention, or otherwise condition them into thinking they've done something bad. The prompt system described in that ticket seems to assume that if an editor declines to add a reference, they are wrong and need to be corrected. [[User:Joe Roe (mobile)|Joe Roe (mobile)]] ([[User talk:Joe Roe (mobile)|talk]]) 11:06, 22 August 2023 (UTC)
:{{tq|Ideally the finished tool should make the prompt text locally configurable, so we can add that project-specific guidance.}}
:Great call and agreed. I've updated [[phab:T327959]] and [[phab:T341535]] to include this.&lt;sup&gt;[[phab:T327959#9039714|[1]]]&lt;/sup&gt; &lt;sup&gt;[[phab:T341535#9039712|[2]]]&lt;/sup&gt;
:{{tq|Relatedly, I think it's important that there is a way to turn this off for mainspace pages that don't use citations (on enwiki that includes disambiguation pages and certain types of list). Perhaps with a magic word? Then we could incorporate into templates like en:Template:Disambiguation etc.}}
:Great call and agreed. [[phab:T327959|We've been thinking]] this configuration, like the other Edit Check configurations we've been talking about in this discussion, would happen in a centralized place on-wiki. Where exactly, we're not yet sure. So, if ideas of places where you think these sorts of settings would make sense to put, please do share! [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 01:04, 25 July 2023 (UTC)
:{{tq|The first two options sound like reasonable reasons not to add a reference, but actually aren't consistent with enwiki policy, so it feels like you're teaching people the wrong lessons. The second option would make more sense if it said "my changes are already cited later" (per LEADCITE above).}}
:Understood. The edits you're suggesting above read, to me, as added reason for the suggestion you made above about the tool making the prompt text locally configurable. ''Please let me know if you're seeing this differently.''
:{{tq| But more to the point, I don't think we should be asking editors to explain themselves to interfaces. It's annoying and infantalising. The text says "other editors would value learning..." but a) it's not clear how this information is going to be conveyed to other editors and b) knowing other editors, they probably don't value it at all.}}
:I appreciate you being clear and direct about this...
:I think we're aligned in wanting to avoid an experience that causes people to feel frustrated or infantalized. While we're not yet aware of people experiencing the user experience, as it's currently been implemented, in this way, I think it's important that we do our best to verify this remains true post-deployment.
:To this end, I've filed [[phab:T342589]] to hold us accountable to reporting on the above.
:As to making it clear how the response people provide will be used by other editors, we agree with you in thinking this needs to be made clear in the design. ''I've [[phab:T329593#9039767|updated the requirements]] to make this doubly clear.''
:Now, about whether other volunteers are likely to value the context people who decline to add a reference when prompted provide, what you're suggesting might be accurate. Tho, [[mw:Editing_team/Community_Conversations#3_May_2023|we've also heard]] people sharing how they think this information would be useful. Ultimately, my gut is telling me this is the kind of thing we'll need to try out and see... [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 01:04, 25 July 2023 (UTC)
::To expand on why I find it annoying and infantalising, there are two questions that cross through my mind when software initiates a dialogue like this:
::# ''Who'' is asking? Is my response going to be used to calculate aggregate statistics? Recorded in some sort of log? Transmitted to a human? Personally, I'd say the first two purposes are a disrespectful use of volunteer time, while the third ''can'' be defensible, if there's a genuine benefit to both parties. So yes, it absolutely needs to be made clear what is going to happen to these responses. But again speaking from 12+ years of experience of how Wikipedians engage with newcomers, ''if'' other editors use this information, it'll be to more efficiently patrol and revert edits, not engage in any positive way. It doesn't feel honest to suggest that others are going to "value" it.
::# ''Why'' am I being asked to provide this information? If it's to decide which help page or FAQ answer to direct me to, then I again have to question the assumption answering "no" to the first prompt is something that needs to be corrected. If it's to provide explanation, then we already have edit summaries: why not simply prompt the user, non-interactively, to explain why they're not including a reference there?
::Of course I can't speak for others, but this is the kind of thing that would make me disable the tool and never try it again. I really urge you to reconsider whether asking someone to justify a decision that they've already made ''and'' already told you they're sure about meets your goal of "empowering" users. [[User:Joe Roe (mobile)|Joe Roe (mobile)]] ([[User talk:Joe Roe (mobile)|talk]]) 11:52, 22 August 2023 (UTC)
:::&gt; {{tq|speaking from 12+ years of experience of how Wikipedians engage with newcomers}}
:::@[[User:Joe Roe|Joe Roe]], do you think this should only be visible to newcomers?  I've been thinking that it should treat everyone equally.  Editors like me probably shouldn't be dropping in whole unsourced paragraphs often enough to be irritated by a reminder about adding the ref before saving. [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 19:57, 22 August 2023 (UTC)
::::I agree, it should be the same for everyone, whether that's opt-in or opt-out. But [[Edit check#Primary audience]] says its aimed at people {{tq|learning the basics of contributing to Wikipedia}} and I was asked to comment here via enwiki new page patrol, so I've responded with that in mind. [[User:Joe Roe (mobile)|Joe Roe (mobile)]] ([[User talk:Joe Roe (mobile)|talk]]) 07:20, 23 August 2023 (UTC)
:{{tq|When you go through all the prompts, but then go back to editing the page before publishing, you're re-prompted about the same text. I can also see that becoming quite frustrating.}}
:Oh, this sounds like a bug. We're going to file a ticket so that we can address it.
:...thank you for saying something [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 01:07, 25 July 2023 (UTC)
::EDIT: it looks like @[[User:RYasmeen (WMF)|RYasmeen (WMF)]] already filed a ticket for – what looks like – this same issue: [[phab:T342311]]! [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 01:10, 25 July 2023 (UTC)

== 14 July Community Call ==

hi y'all – this [https://zonestamp.toolforge.org/1689348648 Friday, 14 July (15:30 to 19:00 UTC)] [[mw:Editing|we]] would like to invite you to [[Mw:Editing team/Community Conversations#Next Conversation|a virtual meeting]] about [[Mw:Edit check|Edit Check]].

We're planning to use this time to:
# Talk about the Edit Check prototype @[[User:Xaosflux|Xaosflux]], @[[User:Kanzat|Kanzat]], @[[User:Andrew Davidson|Andrew Davidson]] [i], @[[User:Clovermoss|Clovermoss]], @[[User:Sdkb|Sdkb]], @[[User:Suffusion of Yellow|Suffusion of Yellow]] [i], and @[[User:Joe Roe|Joe Roe]] [i] have shared comments about above.Specifically, what you all think might need to be added, removed, and/or changed before the feature is offered to people in production.
# Brainstorm [[Mw:Edit check/Ideas|ideas]] for additional "edit checks" we ought to consider building in the future.

We'll also hold space for general Q&amp;A about anything related to the [[VisualEditor|visual editor]] and/or [[Mw:Extension:DiscussionTools|DiscussionTools]].

If the above brings any questions to your mind, please ping me so that I can try to answer. In the meantime, [[Mw:Editing team/Community Conversations#14 July 2023 | this MediaWiki page]] ''should'' contain all the information you need to join Friday's conversation.

---

i. @[[User:Andrew Davidson|Andrew Davidson]], @[[User:Suffusion of Yellow|Suffusion of Yellow]], and @[[User:Joe Roe|Joe Roe]]: I still need to process and respond to the feedback that you shared (thank you for being patient with me). [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 22:22, 11 July 2023 (UTC)

:{{tq|what you all think might need to be added, removed, and/or changed before the feature is offered to people in production}} Um, sorry, but ... everything? That's a nice mockup, but I gather it's only a mockup, right? Let me repeat what I said above: you have reinvented AbuseFilter under a new name. Only without the ability to fix FPs (see below).
:{{tq|Brainstorm ideas for additional "edit checks" we ought to consider building in the future}} ... who is "we"? I thought ''communities'' were going to be able to create their own checks, as with AbuseFilter? Have y'all started building a mechanism for us to do this, or is the current plan just for the WMF to maintain each check? Keep in mind that the AbuseFilter source is over 45,000 lines of PHP (though parts of it could be re-used, I suppose), and this is arguably a ''more'' complex task. This seems like putting the cart before the horse. [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 00:30, 12 July 2023 (UTC)
::{{re|PPelberg (WMF)}} Oh wait. Misread that. You're not asking for feedback ''here'', you want us join a ''video chat'' on Google. What's wrong with discussing these issues right here, on this page? [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 00:46, 12 July 2023 (UTC)
:::Different people have different preferences.  Also, in video chats, you can say things like "Hey, can you screenshare the most recent version and show me what happens if...", which is a lot harder to do in text.  Written feedback is extremely valuable to the team, but it's not always the best for people who have complicated questions for the team. [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 19:59, 22 August 2023 (UTC)

== Features that are likely to increase interaction and understanding? ==

Hi all,

What are the "features that are likely to increase interaction and understanding" in the encourage interaction section that I see on the community conversations page? (That is, the phrasing suggests they're targeted at the reviewer portion, not the inexperienced creator portion of users?) [[User:Nosebagbear|Nosebagbear]] ([[User talk:Nosebagbear|talk]]) 18:36, 13 July 2023 (UTC) ''[With a request to ping on reply, as I never think to check mediawiki watchlist]''

:I was thinking the same thing. Maybe some way to remind reviewers to attempt to find a source before reverting an edit? (per [[:en:WP:ROWN]]). [[User:Bart Terpstra|Bart Terpstra]] ([[User talk:Bart Terpstra|talk]]) 18:40, 13 July 2023 (UTC)
::If it's something like that it's going to need some fancy footwork to get the "false positive" of reminders down a long way to not really aggravate users who are removing it for any other reason (or have indeed already tried to find a source) [[User:Nosebagbear|Nosebagbear]] ([[User talk:Nosebagbear|talk]]) 18:42, 13 July 2023 (UTC)
:::Could that be addressed in the same way as [[:en:template:failed verification]]? failed to find source. [[User:Bart Terpstra|Bart Terpstra]] ([[User talk:Bart Terpstra|talk]]) 18:56, 13 July 2023 (UTC)
:{{tracked|T341533#9042441}} {{tracked|T329593}}
:Great question, @[[User:Nosebagbear|Nosebagbear]]...
:The first feature we’re introducing intended to encourage interaction and understanding is:
:# Presenting people who decline to add a source when Edit Check prompts them to do so with a way to share why they made this decision and
:#  Showing/sharing the rationale people provide in a place where people who are reviewing edits are likely to see. ''Where this "place" (to start) will be in diffs and history pages by way of [[phab:T341533#9042441|introducing new edits tags]] that correspond to the decline response people share.''
:Does the above bring up any questions/ideas/concerns in your mind? Also: can you think of revisions that you think would be worthwhile to consider making to the decline responses people are presented with (pictured below)? [[File:Edit Check decline.png|thumb|Mockup of potential decline responses]] [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:43, 27 July 2023 (UTC)

== Opting out ==

Will it be possible for any wiki to opt out of this whole system? [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 20:41, 18 July 2023 (UTC)

:{{ping|PPelberg (WMF)}} Not sure if you missed this. [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 23:51, 1 August 2023 (UTC)
:hi @[[User:Suffusion of Yellow|Suffusion of Yellow]]: by "{{tq|opt-out of this whole system}}" are you referring to opting out of any and all checks/features that are introduced as part of the Edit Check project? Something else? 
:...having a better sense of what you're referring to will help me address the question you're posing. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 22:56, 8 August 2023 (UTC)
::{{re|PPelberg (WMF)}} Yes, this is what I mean. [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 21:04, 9 August 2023 (UTC)
:::Generally, features like this are configurable per wiki, and the Editing team generally does not deploy features that the local community objects to. 
:::I expect the English Wikipedia to be one of the most enthusiastic adopters (of this or anything else that encourages editors to add inline citations), but the German Wikipedia has a different approach to sourcing, and they might not want it at all, and a Wikipedia in a very small language might not want to put up any perceived barriers to contributions. [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 20:06, 22 August 2023 (UTC)
::::{{re|Whatamidoing (WMF)}} Would you (or anyone else with a (WMF) account) be willing to state that again, but replace the "generally" with an "absolutely"?
::::I am frankly getting more and more disturbed by this project every day. So far, this is nothing other than a '''WMF-controlled "warn" edit filter'''. Yes, citations are good, m'kay, but it's not up the WMF to decide what should and shouldn't be sourced, how those sources are to be formatted, etc. etc. Most importantly, this is the WMF "getting its foot in the door" with respect to micro-managing content; even if you believe ''this'' check is innocuous, what about the next one?
::::Of course, if the WMF is willing to say "no, of course, this is just a feature we're offering y'all, and if you don't want it, we absolutely won't try to force it on you", that's different. But I will probably still be objecting to its deployment on enwiki; that depends on what, precisely, is being deployed. I won't be starting any RFC ''yet'' because its not ''finished''; who knows, maybe it will be much more configurable that I imagine. But if there's no way for us to deal with the "unknown unknowns" except file a phab ticket and wait, consider me opposed.
::::But if this is going to be forced on us, MediaViewer-style, I do not plan to wait. I will be drawing this to a wider audience shortly. [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 21:12, 23 August 2023 (UTC)
:::::I suggest instead that if anyone associated the WMF tells you that "absolutely, all features are always configurable per wiki", then you should not believe them.  Some features are deployed everywhere for (e.g.,) legal or performance reasons.  However, AFAIK this feature isn't one of those.  
:::::I do not think that this is something you need to worry about for this feature. I say this because I've worked with the Editing team for more than 10 years and with its current product manager since he was hired ~4.5 years ago.  He has never forced a feature on any community that formally objected to it, and he has delayed deployments over a single editor's objection more than once.  I can also tell you that not only has the team never even hinted at requiring this particular feature, but they have also already discussed ''not'' deploying it to some Wikipedias. 
:::::That said, I want to point out that volunteer-me has been a registered editor at the English Wikipedia for 17 years, and I've made more than 100,000 edits there.  Few editors can claim to have spent more time with the [[w:en:WP:RFC]] process than me, and you will find my name all over the archives of all of the English Wikipedia's policies and guidelines about sourcing.  And I suggest to you, based on my not-inconsiderable experience of that particular community (not to mention the comments in and linked to [[Editing team/Community Conversations]]) that if you go to ''that'' community with a question about whether they want software to prompt editors to add citations, the answer will be "yes, absolutely, right now".
:::::Consequently, there is no real chance of it being forced on the English Wikipedia (even if the team were inclined to do such a thing, which they aren't) because that particular community is extremely likely to want it.  
:::::The scenarios that worry me are much closer to the team concluding that it is net harmful (e.g., because the extra step results in good edits being abandoned) and enwiki still demanding that it be deployed anyway. [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 02:58, 24 August 2023 (UTC)
::::::I do not doubt your experience; you grok the true meaning of "[[en:WP:FETCH|rv unsourced]]" better than anyone. But again, I'd feel more comfortable if words like "AFAIK" weren't in there; I would like to hear someone say straight out "No, ''this'' feature will not be deployed against consensus".
::::::As to the outcome of a RFC, the devil is in the details. The question will not be "Should be sprinkle some [[File:Pixie dust.png|20px|link=|alt=]]&amp;nbsp;'''magic [[en:pixie dust|pixie dust]]''' to make everyone add references". It will be "should we deploy this specific feature, to do this specific thing, that might encourage people to add references". If said feature starts yelling at people for using Harvard references, or adding unsourced plot summaries, or reordering text, or building disambig pages, or doing any of a million other things that I haven't thought of yet '''and''' if the solution to those problems is "file a bug report on phab" as opposed to "fix it ourselves" I expect the answer just might be "no". [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 21:12, 24 August 2023 (UTC)

== Risks of this project and approach to validating it  ==

I noticed here that the Risks section of the product documentation is empty. It seems obvious to me that the primary risk here is that these edit check notices might either confuse or discourage new editors. 

The strategy notes that "This project is built on the belief that by surfacing relevant guidance in the precious moments when people are in the midst of making a change to Wikipedia and equipping them with the know-how and tools necessary to apply this guidance they will make changes they are proud of and that experienced volunteers value". This belief can be tested scientifically by administering a randomized test (i.e. an A/B test). 

@[[User:PPelberg (WMF)|PPelberg (WMF)]] are there plans to test new edit check notices and prove whether or not they A) discourage new editors from successfully completing edits they started B) decrease the revert rate of edits completed successfully? [[User:Steven Walling|Steven Walling]] ([[User talk:Steven Walling|talk]]) 01:47, 24 July 2023 (UTC)

:hi @[[User:Steven Walling|Steven Walling]] – I'm glad you acted on the instinct to ask these questions. You doing so was the reminder I needed to update the project page with the outcomes of [[phab:T325838|T325838]] and [[phab:T325851|T325851]]. I expect to have this done before next week is over and I'll ping you in this thread once this thinking is in a place for you to review.
:From there, I think we ought to start a wider conversation about what – if any – changes/additions we ought to consider making to:
:# How we evaluate the impact of this project
:# The risks we ought to hold ourselves accountable to monitoring throughout this project.
:In the meantime, responses to the specific questions you raised...
:{{tq| It seems obvious to me that the primary risk here is that these edit check notices might either confuse or discourage new editors.}}
:We agree with you in thinking this is a key risk we need to hold ourselves to managing.
:{{tq|This belief can be tested scientifically by administering a randomized test (i.e. an A/B test).}}
:Great call and we plan to do exactly as you described: use A/B tests to ''help'' evaluate the extent to which the checks we're introducing are causing the impact they've been designed to cause.
:{{tq|are there plans to test new edit check notices and prove whether or not they A) discourage new editors from successfully completing edits they started B) decrease the revert rate of edits completed successfully?}}
:Per the above, definitely; I'm eager to talk through the specifics of the experiments we're planning and the metrics we'll use them to help us evaluate. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 00:29, 1 August 2023 (UTC)
::{{tq|You doing so was the reminder I needed to update the project page with the outcomes of T325838 and T325851. I expect to have this done before next week is over and I'll ping you in this thread once this thinking is in a place for you to review.}}
::@[[User:Steven Walling|Steven Walling]]: I'll need to do the above next week...this week got away from me :o [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 00:18, 12 August 2023 (UTC)
:::@[[User:Steven Walling|Steven Walling]] ok! The project page should now be updated with the [[Edit check#Evaluating impact|risks and desirable outcomes]] I was alluding to above as well as the methods we'll use to gather the information needed to determine the impacts Edit Check is causing.
:::What – if any – questions/concerns/uncertainties/ideas/etc. does [https://www.mediawiki.org/w/index.php?title=Edit_check&amp;diff=6071776&amp;oldid=6066348 what the Editing team is planning] bring up for you? [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:22, 17 August 2023 (UTC)
::::This is perfect, thank you for all the detail and thinking this plan through. [[User:Steven Walling|Steven Walling]] ([[User talk:Steven Walling|talk]]) 00:36, 25 August 2023 (UTC)
:::::Wonderful and you bet. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 16:20, 30 August 2023 (UTC)

== Feedback: Sir Amugi ==

it's super cool working with it.  [[Special:Contributions/154.160.24.204|154.160.24.204]] 18:26, 7 August 2023 (UTC)

:We're glad to hear this! If there are particular aspects that you appreciated and/or were uncertain about, we'd value hearing ^ _ ^ [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:09, 17 August 2023 (UTC)

== Feedback: SIR SUCCESS (NAA JAHINFO) ==

1. What I found unexpected is asking me to add citation.

2. What I like about the prototype is that, drawing attention that is important to add a source of information to help readers know where the information is found


3. I wish it could also prompt me to add inter links when possible

4. I  tried adding a section/heading but couldn't find it. Quiet apart from that,  I think  the prototype will help to improve the quality of the wikimedia content and make it more reliable 

5. what if we actually have this tool  on the wikipedia platforms help new editors know the importance of adding citations?

Thank you. [[Special:Contributions/154.160.26.192|154.160.26.192]] 12:32, 10 August 2023 (UTC)

:Thank you for taking the time to try out the prototype and come to here to share what your experience with it was like!
:A couple of follow-up questions in response to what you shared...
:{{tq|1. What I found unexpected is asking me to add citation. 2. What I like about the prototype is that, drawing attention that is important to add a source of information to help readers know where the information is found.}}
:Would it be accurate for me to understand the combination of the two points you named above as something like the following?
:''"Despite it being unexpected to you that the interface asked you to add a citation, you ended up finding it useful seeing as how important sources are to Wikipedia.''
:{{tq|3. I wish it could also prompt me to add inter links when possible}}
:Oh, interesting. Can you please say more about this? What do you find attractive about the prototype that led you to imagine it being useful for adding wiki links?
:{{tq|4. I  tried adding a section/heading but couldn't find it.}}
:Do you recall whether you were using a desktop or mobile device to try the prototype? 
:{tq| I think  the prototype will help to improve the quality of the wikimedia content and make it more reliable}}
:This is encouraging to hear ^ _ ^
:{{tq|what if we actually have this tool  on the wikipedia platforms help new editors know the importance of adding citations?}}
:Assuming it's accurate for me to understand the above as you asking if/when the functionality the prototype demonstrates will be made available on Wikipedias, then the answer: we are planning for Edit Check to be available at initial set of partner wikis within the next month or so. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:08, 17 August 2023 (UTC)

== This is wrongheaded ==

{{talkquote|Across all Wikipedias, new content edits that include a reference are ~2x less likely to be reverted (6.2%) than edits that do not include a reference (11.5%)}}

Duh. That doesn't automatically mean prompting newcomers to add citations is going to improve the ''quality'' of articles. What it means is that it's harder for patrollers to sort out welcome and unwanted contributions because contributions with bogus citations are much, much harder to spot than contributions with no citations. You cannot just look at the number of reverted edits and measure success because that doesn't account for what should be reverted but isn't. [[User:Nardog|Nardog]] ([[User talk:Nardog|talk]]) 03:00, 12 August 2023 (UTC)

:{{tq|That doesn't automatically mean prompting newcomers to add citations is going to improve the quality of articles. What it means is that it's harder for patrollers to sort out welcome and unwanted contributions because contributions with bogus citations are much, much harder to spot than contributions with no citations.}}
:@[[User:Nardog|Nardog]]: great observations! Responses to the points you raised below...
:As you're naming here, the reference Edit Check, as currently implemented, does ''not'' offer newcomers and Junior Contributors guidance about how likely people who are reviewing edits are/are not to consider a given source reliable.
:This could, as you adeptly noted, could lead to a scenario wherein Edit Check is causing lower quality edits that are ''more difficult'' for people reviewing edits to detect and moderate.
:We also agree with you in thinking that looking ''solely''at the number of reverted edits would be an ''incomplete'' and ''unreliable'' way of evaluating the impact of this project.
:Two questions for you with the above in mind: 
:# What information do you think would be helpful in measuring the success of the reference check feature?
:# Can you think of ways we might detect whether Edit Check is causing, as you put it, more "bogus citations" to make their way onto the wikis?
:In the meantime, here are three things the Editing Team is doing/thinking about in response to the risk you named:
:# Exploring how we might go about iterating upon the initial reference check design that would provide people who are adding citations feedback about how likely people reviewing said citations are to perceive a source as reliable. ''This work is happening in [[phab:T325414|T325414]].''
:# Researching what would need to be in place in order to deliver the functionality [[phab:T325414|T325414]] is describing. ''This work is happening in [[phab:T276857|T276857]].''
:# Cataloguing the risks/undesirable outcomes the Edit Check project could cause and identifying what information we'll use to detect if/when we enter into such a scenario. ''This work relates to the question @[[User:Steven Walling|Steven Walling]] [[Talk:Edit check#c-Steven Walling-20230724014700-Risks of this project and approach to validating it|posed above]] and I'll be sharing a proposal for before this week is over.''
:[[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 22:43, 15 August 2023 (UTC)
::The only outcome of the reference check I would see as a success is its not happening. You have yet to address the points made by [[User:Suffusion of Yellow|Suffusion of Yellow]] [[#c-Suffusion of Yellow-20230718202600-PPelberg (WMF)-20230717233000|above]] and until then I believe this project should not proceed as is. [[User:Nardog|Nardog]] ([[User talk:Nardog|talk]]) 23:48, 16 August 2023 (UTC)
::To be clear, while I believe the reference check should not happen at all (and would support turning it off on projects I'm active on should it be imposed on them), I don't care as strongly about Edit Check as a whole (unless it provides a solution to [[phab:T315072|T315072]]—which this project page claims it does, but what's being built does not). [[User:Nardog|Nardog]] ([[User talk:Nardog|talk]]) 15:27, 24 August 2023 (UTC)
:&gt; {{tq|You cannot just look at the number of reverted edits and measure success because that doesn't account for what should be reverted but isn't}}
:Good point.  Also, it doesn't account for what shouldn't be reverted, but is anyway (e.g., the reviewer who didn't notice that it's a simple summary of content already cited elsewhere in the article, or whose personal standards are out of step with the rest of the community). [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 20:11, 22 August 2023 (UTC)

== Feedback: Dnshitobu ==

@[[User:PPelberg (WMF)|PPelberg (WMF)]] I have tried the demo several times and I have the following feedback based on the check up questions:
'''What did you find unexpected about the prototype?'''
::{{tq|I realized that prompt came when I tried to publish my edits. However, even with minor edits, I still got prompts.}}
'''What do you like about the prototype?'''
::{{tq|The prompts are good}}
'''What do you wish was different about the prototype?'''
::{{tq|I really wish that there is a video link to guide people on how to go about adding citations or a textual documentation.}}
'''What questions does this prototype bring to mind?'''
::{{tq|Wikipedia is an aggregator of sources and this will help make the platform more credible and help new editors learn about how to add citations and the very reasons for the citation}}
[[User:Dnshitobu|Dnshitobu]] ([[User talk:Dnshitobu|talk]]) 22:34, 19 August 2023 (UTC)

:[[File:Auto-citing_a_source_using_VisualEditor,_small.gif|right]]
:@[[User:Dnshitobu|Dnshitobu]], would something like this be helpful? [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 20:14, 22 August 2023 (UTC)

{{clear}}

== Suffusion of Yellow's demo ==

I've thrown together a quick demo of what might be a better approach. Steps to try it out:

# On enwiki, enable the '''CodeMirror syntax highlighter''' (the highlighter pen in the editing toolbar, ''not'' any gadget)
# Install [[en:User:Suffusion of Yellow/wikilint.js]] in your common.js
# Open your sandbox (or any page), using the '''2010 text editor'''.
# Type &lt;code&gt;&lt;nowiki&gt;Lorem ipsum.&lt;ref&gt;https://foxnews.com&lt;/ref&gt;&lt;/nowiki&gt;&lt;/code&gt;

Within a second or so, "foxnews.com" should have a squiggly underline, and a little triangle should appear on the right. Hover other either, and you should see the text "Reliability depends on contributor or topic".

This should work with any source from {{u|Headbomb}}'s [[en:User:Headbomb/unreliable.js|unreliable sources list]].

Also note at the bottom right, there's an options to ''show problems already on the page'' (like a conventional linter). This is off by default, but can turned on if you are bored and looking for something to fix. You can also turn the whole thing off, if desired.

As I said, this is just a demo. The style is the CodeMirror default. And the CodeMirror 5 linter is ''really'' simplistic; I understand y'all are going switch to CodeMirror 6 soon, and I don't want to dig too much through the version 5 manual, just to rewrite this later.

The main point is that we aren't ''interrupting'' the user. There's a [https://codemirror.net/examples/gutter/ gutter marker] which they can investigate as they choose. Or they can continue typing.

Also, elsewhere there came up the question of which user groups these checks should apply to. That's AbuseFilter thinking. The checks ''should apply to all users who haven't turned them off''. When it comes to actual ''abuse'' of course you can't make the filter voluntary, so you have to ''guess'' based if on edit count, etc. But there's no need to guess here; just let the user choose. [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 01:01, 24 August 2023 (UTC)

:How would you use this approach to identify "negative" problems?  That is, how do you identify that the problem is the non-existence of the ref?  [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]]) 18:05, 24 August 2023 (UTC)
::Not yet implemented; see your skateboard analogy above. :-) Just highlighting unsourced paragraphs in the text would be trivial; more challenging is figuring out whodunnit: were they ''adding'' an unsourced paragraph or ''modifying'' one. &lt;small&gt;(something something [[en:edit distance|edit distance]])&lt;/small&gt; I went with "does the new text match any of these regexes" because it is a trivial check; the real purpose of this demo is to show ''how the message might be presented'': the same way we already show problems in JavaScript, CSS, JSON, and even edit filters. [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 20:52, 24 August 2023 (UTC)
:@[[User:Suffusion of Yellow|Suffusion of Yellow]]: what a neat demo! [[File:Wikilint_Gadget.png|thumb|Wikilint Gadget drawing attention to the reliability of a source]]. I appreciate how Wikilint.js is presenting feedback: '''A)''' immediately after you make a change and '''B)''' in immediate spatial proximity to the content it is relevant to.
:{{tq|there's an options to show problems already on the page (like a conventional linter). This is off by default, but can turned on if you are bored and looking for something to fix. You can also turn the whole thing off, if desired.}}
:I also find this idea to be quite powerful and it's leading me to think about a future wherein [[mw:Help:Growth/Tools/Suggested_edits|suggested edits]] appear within/alongside the editor you have open.
:The reflections above aside, I wonder: what inspired you to create this gadget? What energizes you about the approach you're demonstrating here? [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 00:13, 18 October 2023 (UTC)
::Well, we already have something similar for nearly ''every'' other content model: Javascript, CSS, Lua, JSON, etc. It seems odd that on a ''wiki'' we aren't doing the same for ''wikitext''. If nothing else, a few built in warnings for unclosed tags and comments, malformed links, and maybe even nonexistent templates would be universally applicable. Warnings about ''content'' issues would of course have to be fully customizable. [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 22:16, 26 October 2023 (UTC)
:::{{tq|Well, we already have something similar for nearly every other content model: Javascript, CSS, Lua, JSON, etc.}}
:::To be doubly sure I'm accurately understanding you: by "something similar" are you referring to [[en:data validation|data validation]]?
:::If so, that framing resonates with me! I find it quite clarifying.
:::A resulting question: are there ways you've seen community-driven validation systems implemented that you find to be particularly useful or, on the contrast, unhelpful? 
:::...I ask the above thinking there are patterns from these systems that we can learn from/avoid. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 21:59, 30 October 2023 (UTC)
:{{tq|Also, elsewhere there came up the question of which user groups these checks should apply to. That's AbuseFilter thinking. The checks should apply to all users who haven't turned them off. When it comes to actual abuse of course you can't make the filter voluntary, so you have to guess based if on edit count, etc. But there's no need to guess here; just let the user choose.}}
:Oh, and regarding the above, we've designed Edit Check in such a way that empowers volunteers, on a per project basis, to decide what people a given edit check applies to. ''See more in [[Edit check/Configuration|Edit_check/Configuration]].'' 
:Are there ways you can see this approach going wrong? If so, I'd be eager to hear... [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 00:15, 18 October 2023 (UTC)
::Why not both? I mean, yes, allow wikis to decide which groups to apply the checks to, but still allow users in those groups to opt out. Because not everyone's brain works the same way, and no matter what we do, some people will find the feedback so irritating as to discourage them from contributing at all. A good interface design will reduce that number, but not to zero. [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 00:07, 27 October 2023 (UTC)
:::{{tq|Because not everyone's brain works the same way, and no matter what we do, some people will find the feedback so irritating as to discourage them from contributing at all.}}
:::@[[User:Suffusion of Yellow|Suffusion of Yellow]]: I agree with you in thinking there is a possibility some people will find the feedback disruptive to the point that they'd rather not edit at all.
:::Having named that causes me to think we'd benefit from way(s) of detecting whether the scenario you described is occurring and the extent to which it is occurring.[i] 
:::'''Question: can you think of a way we might go about detecting this?''' ''One thought: we could look to see if there is a significant '''increase''' in the percentage of people who abandon the edit the were attempting to make after being presented with feedback from Edit Check.''
:::Knowing the above, I think, will help us decide what interventions we want to experiment with to relieve people of this frustration.[ii] 
:::---
:::i. E.g. are there any patterns in who is reacting to the feedback Edit Check is presenting in this way? Are there particular facets of the experience that they find to be especially frustrating/demotivating/etc.?
:::ii. E.g. Do we revise the user experience such that people can bypass the feedback prompts? Do we, as you suggested, provide a way to dismiss feedback forever? etc. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 21:50, 30 October 2023 (UTC)

== How should we evaluate this project? ==

Hi y'all – [https://www.mediawiki.org/w/index.php?title=Edit_check/Deployment_status&amp;diff=prev&amp;oldid=6149270 on 11 October, Edit Check became available] to newcomers for the first time at an initial set of wikis. 

This means, we're  [[Edit check#Deployment sequence|a step closer]] to [[phab:T342930|running an A/B test]] to evaluate the impact the first Edit Check is causing.

Before this A/B test can start, we – staff and volunteers – need to align on how we'll evaluate the impact of this project.

It's with the above in mind that we would value you all reviewing [[Edit check#Evaluating impact|the measurement proposal published on the project page]] and sharing what you think about it.

While we are interested in any and all feedback, here are some specific questions that we need your help answering:

# ''If this project is successful, and Edit Check becomes a valuable tool for your community, what measurable impact might you hope it will have? What metrics/numbers could we monitor to evaluate that impact?''
# ''If this project fails, and ends up disrupting your community, how might you know this is happening? What could we monitor to detect that Edit Check could be causing harm?''
# ''How might we evaluate the extent to which Edit Check is a tool experienced volunteers use to help moderate/improve the quality of edits?''

Of course, if there is any additional information you think would help you provide the kind of feedback we're seeking, please let me know, we're eager to share.

''CC @[[User:Sdkb|Sdkb]], @[[User:Andrew Davidson|Andrew Davidson]], @[[User:Xaosflux|Xaosflux]], @[[User:Suffusion of Yellow|Suffusion of Yellow]], @[[User:Omotecho|Omotecho]], @[[User:Novem Linguae|Novem Linguae]], @[[User:Joe Roe|Joe Roe]], and @[[User:Steven Walling|Steven Walling]]. Y'all have commented/raised questions about the broader implications of this project leading me to think you may be well-positioned to respond to the questions above.'' [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 23:09, 19 October 2023 (UTC)

:If I viewed the mock ups correct, EC processes prior to AF; so for #3 a reduction in AF hits could be a measure. [[User:Xaosflux|Xaosflux]] ([[User talk:Xaosflux|talk]]) 23:15, 19 October 2023 (UTC)
::{{tq|...a reduction in AF hits could be a measure.}}
::Oh, yes. Great spot, @[[User:Xaosflux|Xaosflux]]! Are there specific AbuseFilters that you think we should monitor at en.wiki?
::A couple that immediately looked relevant to me:
::* [[en:Special:AbuseFilter/833|Filter 833: Newer user possibly adding unreferenced or improperly referenced material]] cc @[[User:Suffusion of Yellow|Suffusion of Yellow]]
::* [[en:Special:AbuseFilter/869|Filter 869: Adding deprecated source to articles]]
::[[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 00:11, 20 October 2023 (UTC)
:For #1, since Edit check is designed to reduce the number of bad edits, a lower revert rate would be a key indicator. For the narrower implementation of Edit check that is just about references, I think the number of times filters 833 and 869 are tripped looks good.
:For #2, the main way I could see the project causing harm is if it introduces too much friction to the editing process, causing people not to make edits they otherwise would have. This is tricky to observe as volunteers, since we can't see edits not happening. But if you're able to measure it, the percentage of people who open the edit window who ultimately publish an edit would be a key metric to track. If Edit check makes it substantially lower, that'd be a red flag. However, if combined with positive indicators from #1, it might mean the feature is working well — people who would make a bad edit are realizing the edit would be bad and then choosing not to make it. If that data is unavailable, then looking at whether the number of edits overall decreases in the sample group would be a proxy.
:For #3, I would just check in on relevant talk pages once the test has commenced, and ask editors how their experience is coming across edits tagged with the Edit check tag. &lt;span style="color:#AAA"&gt;&lt;small&gt;&amp;#123;{u&amp;#124;&lt;/small&gt;&lt;span style="border-radius:9em;padding:0 5px;background:#088"&gt;[[User:Sdkb|&lt;span style="color:#FFF"&gt;'''Sdkb'''&lt;/span&gt;]]&lt;/span&gt;&lt;small&gt;}&amp;#125;&lt;/small&gt;&lt;/span&gt; &lt;sup&gt;[[User talk:Sdkb|'''talk''']]&lt;/sup&gt; 04:45, 20 October 2023 (UTC)
::{{tq|For #1, since Edit check is designed to reduce the number of bad edits, a lower revert rate would be a key indicator.}}
::Understood and agreed. Assuming what's currently written in row "1." of [[Edit check#Evaluating impact|the "Desirable Outcomes" table]] looks good to you, I think we're aligned on this.
::{{tq|For the narrower implementation of Edit check that is just about references, I think the number of times filters 833 and 869 are tripped looks good.}}
::Wonderful. Have you seen existing tools/methods that visualize (read: graph) abuse filter hits over time? ''I'm thinking some of this sort would be helpful for enhancing our collective awareness of a particular Edit Check's effectiveness. See [[phab:T343166|T343166]].''
::{{tq|For #2, the main way I could see the project causing harm is if it introduces too much friction to the editing process, causing people not to make edits they otherwise would have. This is tricky to observe as volunteers, since we can't see edits not happening. But if you're able to measure it, the percentage of people who open the edit window who ultimately publish an edit would be a key metric to track. If Edit check makes it substantially lower, that'd be a red flag. However, if combined with positive indicators from #1, it might mean the feature is working well — people who would make a bad edit are realizing the edit would be bad and then choosing not to make it. If that data is unavailable, then looking at whether the number of edits overall decreases in the sample group would be a proxy.}}
::Great spot and I agree with all that you described. It seems like [[Edit check#Evaluating impact|Rows "3." and "4." of the "Risks (Undesirable Outcomes)"]] could benefit from with adding the following to each: "...without a corresponding increase in edit quality." 
::With the revision I'm proposing based on what you shared would cause them to read:
::* ''"3. Edit completion rate drastically decreases without a corresponding increase in edit quality."''
::* ''"4. Edit abandonment rate drastically increases without a corresponding increase in edit quality."''
::…how does the above sound to you?	
:: {{tq|For #3, I would just check in on relevant talk pages once the test has commenced, and ask editors how their experience is coming across edits tagged with the Edit check tag.}}
:: Simple enough. Makes sense. We'll prioritize doing the above in the newly-created [[phab:T349878|T349878]].
::And hey, thank you for engaging with these questions so thoroughly, @[[User:Sdkb|Sdkb]]. [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 22:46, 26 October 2023 (UTC)

== Next check: Reference Reliability ==

The [[phab:T276857|next Edit Check]] will prompt people to replace a source when they attempt to cite a domain a project has deemed to be spam. [[file:Edit check Reference Reliability Explorations.jpg|thumb|Edit Check (Reference Reliability) design explorations]]

Where "spam" for this first iteration means the domain someone is attempting to cite is listed on a project's &lt;code&gt;Special:BlockedExternalDomains &lt;/code&gt; page.

Zooming out, the Editing Team sees this as a first step towards a potential future where editing interfaces can use the consensus stored in pages like [[:en:WP:RSP]] to offer people feedback about the source they are attempting to cite. ''See more in [[phab:T346849]]''

The designs we are exploring are pictured here.

'''We now need your help...''' 
# ''Which approach do you favor most? 
#'' What about that approach do you appreciate? 
# ''What questions/concerns do these approaches bring to your mind? ''
[[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 15:46, 16 November 2023 (UTC)

:This seems to have issues, see [[phab:T366985|T366985]]. [[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) 06:07, 8 June 2024 (UTC)

== Cite Q ==

Does the reference checking recognise Cite Q ([[:en:Template:Cite Q]] on en.Wikipedia, and equivalent on other projects)? &lt;span class="vcard"&gt;&lt;span class="fn"&gt;[[User:Pigsonthewing|Andy Mabbett]]&lt;/span&gt; (&lt;span class="nickname"&gt;Pigsonthewing&lt;/span&gt;); [[User talk:Pigsonthewing|Talk to Andy]]; [[Special:Contributions/Pigsonthewing|Andy's edits]]&lt;/span&gt; 16:42, 9 March 2024 (UTC)

:Any way of emulating &lt;code&gt;&lt;nowiki&gt;&lt;ref&gt;&lt;/nowiki&gt;&lt;/code&gt; tags (including &lt;code&gt;#tag:ref&lt;/code&gt;) is recognized as a reference call. This being said, newcomers aren't likely to use Cote Q firsthand. :)  [[user:Trizek (WMF)|Trizek'''_'''(WMF)]] ([[user talk:Trizek (WMF)|talk]]) 14:45, 4 April 2024 (UTC)

== [[Talk:Edit check/False positives/Reports]] ==

Hello, as far as I can see, there has only been vandalism in this page [https://www.mediawiki.org/w/index.php?title=Talk:Edit_check/False_positives/Reports&amp;action=history], without any valid report. I concern if this page is useful, or the link of this page is placed in wrong place. Thanks. [[User:SCP-2000|SCP-2000]] ([[User talk:SCP-2000|talk]]) 13:18, 2 May 2024 (UTC)

:Hello @[[User:SCP-2000|SCP-2000]]
:Thank you for your message, and also for patrolling the report page. The link to this page is shown on edits triggering [[Edit check]]. It was a test to see if false positives would be reported by users who don't know team members. I'll discuss the problem with the Editing team. 
:[[user:Trizek (WMF)|Trizek'''_'''(WMF)]] ([[user talk:Trizek (WMF)|talk]]) 14:43, 2 May 2024 (UTC)

== Edit Checks as you are typing ==

[[File:EditCheck_mid_edit_suggestions_idea_sketch_2024-05.webm|thumb|379x379px|&lt;!--T:206--&gt; Technical demo showing what it could be like for Edit Checks to appear within/alongside the editable surface.]]

People like @[[User:Andrew Davidson|Andrew Davidson]], @[[User:Nardog|Nardog]], and @[[User:Suffusion of Yellow|Suffusion of Yellow]] have raised the idea of Edit Check showing people Checks ''while'' they are typing. &lt;sup&gt;[https://www.mediawiki.org/wiki/Talk:Edit_check#c-Andrew_Davidson-20230303224900-Where_will_this_sit_in_the_publish_process? 1], [https://www.mediawiki.org/wiki/Talk:Edit_check#c-Suffusion_of_Yellow-20230718202600-PPelberg_(WMF)-20230717233000 2], [https://www.mediawiki.org/wiki/Talk:Edit_check#c-Nardog-20230824183700-Whatamidoing_(WMF)-20230824175800 3]&lt;/sup&gt;

With this ''initial technical prototype (desktop)'', the Editing Team is exploring what it ''could'' be like for Checks to:
# '''Appear''' within/alongside the editable document, in the moment when people make a change that causes a Check to be activated
# '''Respond''' when people make a change that impacts the Check that they activated

=== We need help === 
What do you think about this idea? What questions/concerns/ideas/etc. does it bring to mind? 

''Please note: [[mw:File:EditCheck_mid_edit_suggestions_idea_sketch_2024-05.webm | what you're seeing]] is very much a sketch. As such, please don't hold back feedback! Being this early in the design and development process means there are still many aspects of the experience that have not yet been defined. '' [[User:PPelberg (WMF)|PPelberg (WMF)]] ([[User talk:PPelberg (WMF)|talk]]) 21:12, 7 June 2024 (UTC)

:The UI design of this is good, but how helpful it is really depends on how smart you can make the suggestions. Since it triggers as you are typing, it has more potential to be noisy. Where is the definition for how the warnings are determined? [[User:Steven Walling|Steven Walling]] ([[User talk:Steven Walling|talk]]) 19:15, 9 June 2024 (UTC)
:I think the most important thing is the ability to opt-out. Different people react in different ways to moving or changing elements. Some people will appreciate this. For others, it might be so distracting that they'll give up editing. There probably ''isn't'' a "sweet spot" where can ensure 100% of people will ''notice'' and 100% won't be aggravated. Our brains just react differently to motion. So give the user control. [[User:Suffusion of Yellow|Suffusion of Yellow]] ([[User talk:Suffusion of Yellow|talk]]) 23:24, 13 June 2024 (UTC)
:I agree with Sj's suggestion. It is also recommended that there is a "dismiss" bottom to ignore the messages. The Edit Check (i.e. Robot) icon is a bit strange and perhaps you could use the checklist icon (e.g. [https://thenounproject.com/search/icons/?q=check+list]) etc? Thanks. [[User:SCP-2000|SCP-2000]] ([[User talk:SCP-2000|talk]]) 14:44, 24 June 2024 (UTC)
::One more thing: There is no separation between the content area and the warning area. Perhaps separate them (like [https://d4.alternativeto.net/Y0ZJnhftko244upqRaDr3uDWwdrNrq1_OKzhXQgwAO0/rs:fit:2400:2400:0/g:ce:0:0/YWJzOi8vZGlzdC9zL2dyYW1tYXJseS1ncmFtbWFyLWNoZWNrZXJfMjA4Mzg3X2Z1bGwucG5n.jpg Grammarly] and [https://support.microsoft.com/en-us/office/check-grammar-spelling-and-more-in-word-0f43bf32-ccde-40c5-b16a-c6a282c0d251 the Microsoft Word Editor Pane])? Thanks. [[User:SCP-2000|SCP-2000]] ([[User talk:SCP-2000|talk]]) 03:35, 9 July 2024 (UTC)

=== Less ⚠️ warning ⚠️, more helpfulness ===
Our internal templates and notifications have become very judgmental and negative -- talk pages are full of warnings and alerts about pending challenges, deletions, and problems; banners at the top of pages are almost uniformly negative content warnings.  That's the opposite of good narrative + game design; let's try to reverse that~

These notices to the side could be shorter, more along the lines of a helpful tutorial step ("use this button to expand references"), and sparing in suggesting optional style guide directives (even I who like much of the style guide wouldn't appreciate an automated "don't use adjectives" popup). 

Text/code completion and writing-checks do a fine job, polished over decades, of showing people things they might want to revisit without it getting in their way while writing.  Maybe we can adopt some of those techniques: subtle underlining (with expandable details that default to collapsed) or faint proposed rewriting/correction. 

And I would prefer to see people encouraged to save early and often. Like a good tutorial, only showing people one core thing at a time helps them save each step and iteratively learn to do more things, in sequence or in the same edit.  Overleaf has a nice way of showing you how many potential errors and alerts you could expand and try to resolve, so that you can revisit your past writing once you have time to focus on that -- that could be a separate sort (or color?) of notice-count. [[User:Sj|Sj]] ([[User talk:Sj|talk]]) 22:09, 12 June 2024 (UTC)

== Link to page of reporting false positive and log for debugging ==
{{tracked|T368438}}
Hello, thanks for your hard work in developing Edit Check and it is a great feature for newcomers and the community! It is recommended that:
# Include a link to the spam-blacklist false positive reporting page (e.g. [[:en:MediaWiki_talk:Spam-blacklist]]) in the warning message when users attempt to link to a blocked domain. If possible, the community can customize the link, and even the entire interface message.
# Add a log entry to record the action of attempting to link to a blocked domain. Currently, if the edit triggers the spam-blacklist, this would be recorded in the log (e.g. [[:en:Special:Log/spamblacklist]]). Edit Check should also have the same feature for debugging.
[[User:SCP-2000|SCP-2000]] ([[User talk:SCP-2000|talk]]) 05:13, 21 June 2024 (UTC)

:Thank you for your appreciation and the suggestions @[[User:SCP-2000|SCP-2000]].
:I documented point 1 as [[phab:T368150|T368150]]
:Regarding the second idea, what if we tag the changes in the log? For instance &lt;code&gt;$date $user caused a spam block list hit on $page by attempting to add $URL #linkcheck&lt;/code&gt;. I need to check on the feasibility.
:[[user:Trizek (WMF)|Trizek'''_'''(WMF)]] ([[user talk:Trizek (WMF)|talk]]) 13:41, 21 June 2024 (UTC)
::@[[User:Trizek (WMF)|Trizek (WMF)]]: Hello, thanks for your response. I think &lt;code&gt;$date $user caused a spam block list hit on $page by attempting to add $URL #linkcheck&lt;/code&gt; is okay for me. The community needs to know what URL the user attempting to add. [[User:SCP-2000|SCP-2000]] ([[User talk:SCP-2000|talk]]) 03:30, 22 June 2024 (UTC)
:::Thanks, I documented it! [[user:Trizek (WMF)|Trizek'''_'''(WMF)]] ([[user talk:Trizek (WMF)|talk]]) 17:34, 25 June 2024 (UTC)</text>
    <sha1>4323a5f898fa84d5c0fc9d3d8b74bef833694717</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Help:Rollback</title>
  <ns>12</ns>
  <id>1992233</id>
  <revision>
    <id>6624069</id>
    <timestamp>2024-07-09T03:50:24Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <comment>Redirected page to [[Help:Reverting#Rollback]]</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="37" xml:space="preserve">#REDIRECT [[Help:Reverting#Rollback]]</text>
    <sha1>4bdd1ce960cb93f34604b8c9e5cfb2d5b9da014e</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Project:MediaWiki documentation on Meta-Wiki/List</title>
  <ns>4</ns>
  <id>1830764</id>
  <revision>
    <id>6624070</id>
    <parentid>6616887</parentid>
    <timestamp>2024-07-09T03:51:23Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <comment>Done</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="3205" xml:space="preserve">== General wiki help that should be moved to MediaWiki (but can't due to licensing) ==
=== No MediaWiki.org equivalent ===
* [[m:Help:CentralNotice]] - migrate normally to [[Help:Extension:CentralNotice]] and review for up-to-date-ness
** [[m:Help:CentralNotice/Banners]] - migrate normally to [[Help:Extension:CentralNotice/Banners]]
** [[m:Help:CentralNotice/Translations]]
* [[m:Help:Displaying a formula]] (and translations) - copy unedited to [[Extension:Math/Syntax]]
* [[m:Help:Edit conflict]] (and translations) - migrate normally
* [[m:Help:Edit summary]] (and translations) - migrate normally
* [[m:Help:Image page]] (and translations) - migrate normally and consider merging to [[Help:Images]]
* [[m:Help:Import]] (and translations) - migrate normally
* [[m:Help:Newlines and spaces]] - migrate normally I guess
** [[m:Help:Newlines and spaces/*demo]]
* [[m:Help:Page name]] (and translations) - migrate normally
** [[m:Help:Page name/1]]
** [[m:Help:Page name/2]]
* [[m:Help:Page existence]] - migrate normally
* [[m:Help:Special Investigate]] (and translations) - migrate normally
* [[m:Help:Special characters]] (and translations) - migrate normally
* [[m:Help:XML-style tags]] - migrate normally
* [[m:Help:Wikitext examples]]

== Obsolete ==
* [[m:Help:Array (older methods)]]
* [[m:Help:Date formatting and linking]]
* [[m:Help:Edit toolbar]] (and translations)
* [[m:Help:Transwiki]] (and translations)
* [[m:Help:Public domain image resources]]
* [[m:Help:MediaWiki namespace/old]]
* [[m:Help:Romanian characters]]
* [[m:Help:Turkish characters]] (and translations)
* [[m:Help:User style/bottom tabs]]
* [[m:Help:User style/floating quickbar]]
* [[m:Help:CentralNotice/Changes following refactoring (2015-09)]]
* [[m:Help:CentralNotice/Mobile]] (is this still relevant?)
== Actually WMF-specific ==
* [[m:Help:CS1 errors]]
* [[m:Help:Captcha]]
* [[m:Help:Cat-a-lot]]
* [[m:Help:CheckUser]] (and translations)
* [[m:Help:Compromised accounts]] (and translations)
* [[m:Help:Project]]
* [[m:Help:How to start a new Wikipedia]]
* [[m:Help:Unified login]] (and translations)
* [[m:Help:Item]] (but why is this on Meta?)
* [[m:Help:Redirect]] (and translations)
* [[m:Help:Researcher]]
** [[m:Help:Researcher/pt]]
* [[m:Help:Two-factor authentication]] (and translations)
* [[m:Help:Legal issues for editors]]

== Meta-pages ==
* [[m:Help:Contents]] (and translations)
* [[m:Help:Editor]] (and translations)
* [[m:Help:Handbook guidelines]] (and translations)
* [[m:Help:Help]] (and translations)
** [[m:Help:Help/styles.css]]
* [[m:Help:Help page footer templates]]
* [[m:Help:MediaWiki help policy]]
* [[m:Help:Reader]] (and translations)
* [[m:Help:Sort keys]] (disambiguation)
== Demo pages and other things that aren't real help pages ==
Everything remaining has been verified to still be referenced by a (real) help page. 
* [[m:Help:Composite images]]
* [[m:Help:Section editing demo]]
* [[m:Help:Self-transclusion demo]]
* [[m:Help:Self-transclusion demo 2]]
* [[m:Help:Self-transclusion demo with redirect]]
* [[m:Help:Interwiki]] (disambiguation)
* [[m:Help:Interlanguage link demo]]
* [[m:Help:Template namespace - demo of alternative for redirect]]
* [[m:Help:Transclusion demo]]</text>
    <sha1>e6ea5d8dfddd5a2c73dae0a47ba3760c0d841cf5</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>User:Renamed user 4bsxf9zkvhbp94spn3ku</title>
  <ns>2</ns>
  <id>987315</id>
  <revision>
    <id>6624071</id>
    <parentid>3406810</parentid>
    <timestamp>2024-07-09T03:54:22Z</timestamp>
    <contributor>
      <username>Avraham</username>
      <id>12455</id>
    </contributor>
    <minor/>
    <comment>Avraham moved page [[User:UnLeashedWolfie]] to [[User:Renamed user 4bsxf9zkvhbp94spn3ku]] without leaving a redirect: Automatically moved page while renaming the user "[[Special:CentralAuth/UnLeashedWolfie|UnLeashedWolfie]]" to "[[Special:CentralAuth/Renamed user 4bsxf9zkvhbp94spn3ku|Renamed user 4bsxf9zkvhbp94spn3ku]]"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="29" xml:space="preserve">UnLeashedWolfie~mediawikiwiki</text>
    <sha1>2f257338b016229326dd4d84d4e94e9de1524e0c</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>MediaWiki:Gadget-site.css</title>
  <ns>8</ns>
  <id>4342</id>
  <revision>
    <id>6624072</id>
    <parentid>5323995</parentid>
    <timestamp>2024-07-09T03:55:00Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <comment>Add color for dark mode</comment>
    <model>css</model>
    <format>text/css</format>
    <text bytes="1478" xml:space="preserve">/*
 * This is the CSS for all skins (for both mobile and desktop) on MediaWiki.org.
 * Styling inside .mw-parser-output should generally use TemplateStyles.
 */

/* Public Domain background in the Help namespace */
.action-view.ns-12 #bodyContent {
	background-image: url(//upload.wikimedia.org/wikipedia/commons/6/67/PD-icon-faded.png);
	background-repeat: no-repeat;
	/* @noflip */
	background-position: right 5em;
}

/*
 * Hide elements on the main page. 
 */
.page-MediaWiki #lastmod,
.page-MediaWiki #siteSub,
.page-MediaWiki #contentSub,
.page-MediaWiki .subtitle,
.page-MediaWiki #jump-to-nav,
/* can be removed when Template:Main_page translations are updated. */ 
.page-MediaWiki #firstHeading,
[lang="en"] .page-MediaWiki .mw-parser-output h2 {
	display: none; 
}

[lang="en"] .page-MediaWiki #firstHeading {
  font-size: 1.5em;
  display: block;
}

/* Give a bit of space to the TOC */
#toc {
	margin: 1em 0;
}

/* Fonts for Persian language for consistency with other Wikimedia wikis */
:lang(fa) {
	font-family: '.Arabic UI Text', Tahoma, 'Iranian Sans', 'Noto Sans Arabic', 'DejaVu Sans', sans-serif;
}

/* Div based "warning" style fmbox messages. */
div.mw-warning-with-logexcerpt,
div.mw-lag-warn-high,
div.mw-cascadeprotectedwarning,
div#mw-protect-cascadeon,
div.titleblacklist-warning {
	clear: both;
	margin: 0.2em 0;
	border: 1px solid #bb7070;
	background-color: #ffdbdb;
	color:#222; /* dark mode fix */
	padding: 0.25em 0.9em;
	box-sizing: border-box;
}</text>
    <sha1>a253f369991fe427b8d24d5d65c4831e2d699d93</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Module:ExtensionJson</title>
  <ns>828</ns>
  <id>781473</id>
  <revision>
    <id>6624074</id>
    <parentid>6623827</parentid>
    <timestamp>2024-07-09T04:10:05Z</timestamp>
    <contributor>
      <username>Bawolff bot</username>
      <id>13724180</id>
    </contributor>
    <comment>Resyncing with extension.json from git</comment>
    <model>Scribunto</model>
    <format>text/plain</format>
    <text bytes="1817007" xml:space="preserve">return {
["3DAlloy"]={
name="3DAlloy",
author="Dolfinus",
url="https://www.mediawiki.org/wiki/Extension:3DAlloy",
description="This extension provides a 3D viewer for JSON/Buff files",
version="1.7",
["license-name"]="MIT",
type="media",
ExtensionMessagesFiles={
ThreeDimentionAlloy="3DAlloy_magic.i18n.php",
},
MediaHandlers={
["application/json"]="ThreeDimentionAlloy",
["application/obj"]="ThreeDimentionAlloy",
["application/stl"]="ThreeDimentionAlloy",
},
Hooks={
ParserMakeImageParams={
"ThreeDimentionAlloy::onParserMakeImageParams",},
ParserFirstCallInit={
"ThreeDimentionAlloy::onParserFirstCallInit",},
ImageBeforeProduceHTML={
"ThreeDimentionAlloy::onImageBeforeProduceHTML",},
ImageOpenShowImageInlineBefore={
"ThreeDimentionAlloy::onImageOpenShowImageInlineBefore",},
BeforePageDisplay={
"ThreeDimentionAlloy::onBeforePageDisplay",},
BeforePageDisplayMobile={
"ThreeDimentionAlloy::onBeforePageDisplay",},
MimeMagicInit={
"ThreeDimentionAlloy::onMimeMagicInit",},
MimeMagicImproveFromExtension="ThreeDimentionAlloy::onMimeMagicImproveFromExtension",
},
repository="https://github.com/dolfinus/3DAlloy.git",
},
["3DAlloyNewTag"]={
name="3DAlloy New Tag",
author="Solène",
version="1.0.0",
url="https://www.mediawiki.org/wiki/Extension:3DAlloyNewTag",
descriptionmsg="Check Page Title",
["license-name"]="GPL-2.0+",
type="parserhook",
ExtensionMessagesFiles={
ThreeDAlloyNewTag="ThreeDAlloyNewTag.i18n.php",
},
Hooks={
ParserFirstCallInit={
"ThreeDAlloyNewTag\\ThreeDAlloyNewTagParser::onParserSetup",},
LinkerMakeMediaLinkFile={
"ThreeDAlloyNewTag\\ThreeDAlloyNewTagParser::onLinkerMakeMediaLinkFile",},
},
repository="https://github.com/Wikifab/3DAlloyNewTag",
},
AWS={
name="AWS",
version="0.12.0",
author={
"Tyler Romeo","Daniel Friesen @ Redwerks","Edward Chernenko","David Haslip",},
url="https://www.mediawiki.org/wiki/Extension:AWS",
descriptionmsg="aws-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.35.0",
},
type="other",
ExtensionFunctions={
"AmazonS3Hooks::setup",},
config={
AWSCredentials={
description="Credentials to connect to AWS. Setting this in LocalSettings.php is NOT NEEDED if your EC2 instance has an IAM instance profile, and its IAM role allows access to Amazon S3 (see README).",
value={
key=false,
secret=false,
token=false,
},
merge_strategy="array_plus",
},
AWSRegion={
description="Region of AWS to connect to.",
value=false,
},
AWSUseHTTPS={
description="Whether to use HTTPS with AWS.",
value=true,
},
AWSBucketName={
description="MUST BE SET in LocalSettings.php. Name of S3 bucket (e.g. \"wonderfulbali\"). Note: it will be seen in the URL of images.",
value=nil,
},
AWSBucketPrefix={
description="[deprecated] Backward-compatibility option to use 4 S3 buckets (public, thumb, deleted, temp) instead of one $wgAWSBucketName. Shouldn't be used in new wikis. If set to \"wonderfulbali\", buckets [wonderfulbali], [wonderfulbali-thumb], [wonderfulbali-deleted] and [wonderfulbali-temp] are used.",
value=nil,
},
AWSBucketDomain={
description="Subdomain of Amazon S3. Can be replaced with the URL of CDN. $1 is replaced with bucket name (see README.md for more customization).",
value="$1.s3.amazonaws.com",
},
AWSRepoHashLevels={
description="Number of prefix subdirectories. Value \"2\" means that S3 objects will be named a/ab/Filename.png (same as when MediaWiki stores files in local directories). Default value: 0 (objects are named Filename.png without any prefix).",
value=0,
},
AWSRepoDeletedHashLevels={
description="Same as $wgAWSRepoHashLevels, but for deleted images. Set to \"3\" for naming a/ab/abc/Filename.png (same as when MediaWiki stores deleted files in local directories). Default value: 0 (objects are named Filename.png without any prefix).",
value=0,
},
AWSBucketTopSubdirectory={
description="Extra path within the S3 bucket (not recommended). E.g. if this is '/something', then images will be in bucketname.s3.amazonaws.com/something/File.png instead of bucketname.s3.amazonaws.com/File.png.",
value="",
},
AWSLocalCacheDirectory={
description="Path to the directory for storing local copies of large images from S3 (when they are copied to webserver to make a thumbnail image, etc.). Don't enable this unless you have REALLY HUGE files (e.g. 100Mb+ PDFs). Default: false (disabled).",
value=false,
},
AWSLocalCacheMinSize={
description="Minimal size of image (in bytes) that should be cached. Default: 100Mb.",
value=104857600,
},
AWSLocalCacheExcludeFileExtensions={
description="File extensions (e.g. 'ogg') of files that shouldn't be stored in the local cache. Recommended values: every non-image (files that are never used to make a thumbnail).",
value={
"ogg",},
},
AWSRepoZones={
description="List of zones that should be added to $wgLocalFileRepo (public, thumb, deleted, etc.). 99,9% of wikis don't need to change the default value.",
value={
public={
container="local-public",
path="",
isPublic=true,
},
thumb={
container="local-thumb",
path="/thumb",
isPublic=true,
},
deleted={
container="local-deleted",
path="/deleted",
},
temp={
container="local-temp",
path="/temp",
},
},
},
},
repository="https://github.com/edwardspec/mediawiki-aws-s3.git",
composer="edwardspec/mediawiki-aws-s3",
},
AccessLogReports={
name="AccessLogReports",
namemsg="accesslogreports-extensionname",
["license-name"]="GPL-3.0+",
version="0.1",
author={
"[//mwstake.org Mark A. Hershberger]",},
requires={
MediaWiki="&gt;=1.26",
},
url="https://www.mediawiki.org/wiki/Extension:AccessLogReports",
descriptionmsg="accesslogreports-desc",
type="specialpage",
SpecialPages={
AccessLogReports="AccessLogReports\\SpecialAccessLogReports",
},
Hooks={
LoadExtensionSchemaUpdates={
"AccessLogReports\\Hook::onLoadExtensionSchemaUpdates",},
},
ExtensionMessagesFiles={
AccessLogReportsAlias="src/i18n/Alias.php",
},
AvailableRights={
"viewaccesslogs",},
GroupPermissions={
sysop={
viewaccesslogs=true,
},
},
config={
},
repository="https://github.com/hexmode/mediawiki-AccessLogReports",
},
AchievementBadges={
name="AchievementBadges",
version="0.3.0",
author={
"[https://femiwiki.com/ Femiwiki Team]",},
url="https://www.mediawiki.org/wiki/Extension:AchievementBadges",
descriptionmsg="achievementbadges-desc",
["license-name"]="AGPL-3.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
BeforeCreateEchoEvent="MediaWiki\\Extension\\AchievementBadges\\HookHandler\\Main::onBeforeCreateEchoEvent",
BeforeEchoEventInsert="MediaWiki\\Extension\\AchievementBadges\\HookHandler\\Main::onBeforeEchoEventInsert",
EchoGetBundleRules="MediaWiki\\Extension\\AchievementBadges\\HookHandler\\Main::onEchoGetBundleRules",
GetBetaFeaturePreferences="MediaWiki\\Extension\\AchievementBadges\\HookHandler\\Main::onGetBetaFeaturePreferences",
ContributionsToolLinks="Main",
MediaWikiServices="MediaWikiServices",
ResourceLoaderGetConfigVars="Main",
APIAfterExecute="AchievementRegister",
BeforeCreateAchievement="AchievementRegister",
LocalUserCreated="AchievementRegister",
PageSaveComplete="AchievementRegister",
SpecialAchievementsBeforeGetEarned="AchievementRegister",
UserSaveSettings="AchievementRegister",
ChangeTagsAfterUpdateTags="AchievementRegister",
},
ExtensionFunctions={
"MediaWiki\\Extension\\AchievementBadges\\HookHandler\\MediaWikiServices::onExtensionFunction",},
HookHandlers={
Main={
class="MediaWiki\\Extension\\AchievementBadges\\HookHandler\\Main",
services={
"MainConfig","AchievementBadgesHookRunner",},
},
MediaWikiServices={
class="MediaWiki\\Extension\\AchievementBadges\\HookHandler\\MediaWikiServices",
},
AchievementRegister={
class="MediaWiki\\Extension\\AchievementBadges\\HookHandler\\AchievementRegister",
services={
"MainConfig","DBLoadBalancer","RevisionStore","UserOptionsLookup",},
},
},
SpecialPages={
Achievements={
class="MediaWiki\\Extension\\AchievementBadges\\Special\\SpecialAchievements",
services={
"AchievementBadgesHookRunner",},
},
ShareAchievement="MediaWiki\\Extension\\AchievementBadges\\Special\\SpecialShareAchievement",
},
LogTypes={
"achievementbadges",},
LogActionsHandlers={
["achievementbadges/*"]="MediaWiki\\Extension\\AchievementBadges\\LogFormatter",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
config={
AchievementBadgesEnableBetaFeature={
value=false,
description="Whether to have AchievementBadges available only as a beta feature and only shown to the users who have enabled the beta feature.",
},
AchievementBadgesReplaceEchoThankYouEdit={
value=false,
description="Whether to suppress edit milestone notifications sent from Echo.",
},
AchievementBadgesReplaceEchoWelcome={
value=false,
description="Whether to suppress the welcome notification sent from Echo.",
},
AchievementBadgesAchievementFallbackIcon={
value="extensions/AchievementBadges/images/achievement-icon-fallback.svg",
description={
"Path to the fallback icon of achievements which is relative to the $wgScriptPath. The icon can be different for ltr and rtl languages. icons for specific languages can also specified using the language code.","Example: \"{$wgScriptPath}/static/image/achievement-fallback-icon.svg\"","Example 2:","[ 'ko' =&gt; \"$wgScriptPath/static/images/achievement-fallback-icon-ko.png\",","'ltr' =&gt; \"$wgScriptPath/static/images/achievement-fallback-icon-ltr.png\",","'rtl' =&gt; \"$wgScriptPath/static/images/achievement-fallback-icon-rtl.png\", ]",},
},
AchievementBadgesAchievementFallbackOpenGraphImage={
value="extensions/AchievementBadges/images/achievement-og-image-fallback.png",
description={
"Path to the fallback imago of achievements which is showed as an Open Graph image. Could be an array value, like $wgAchievementBadgesAchievementFallbackIcon",},
},
AchievementBadgesAchievements={
value={
},
merge_strategy="array_plus_2d",
description="Contains a key-value pair list of achievements. The thresholds should not be changed.",
},
AchievementBadgesDisabledAchievements={
value={
},
description="Keys of achievements should be excluded.",
},
AchievementBadgesFacebookAppId={
value=false,
description="Facebook App id for SNS sharing.",
},
},
ExtensionMessagesFiles={
AchievementBadgesAlias="AchievementBadges.i18n.alias.php",
},
composer="femiwiki/achievement-badges",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AchievementBadges",
},
Acronym={
name="Acronym",
author="Daniel Beard",
url="https://www.halopedia.org/Halopedia:Extensions/Acronym",
namemsg="acronym-extension-name",
descriptionmsg="acronym-extension-desc",
version="0.0.1",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="MediaWiki\\Extension\\Acronym\\Hooks::onParserFirstCallInit",
ParserClearState="MediaWiki\\Extension\\Acronym\\Hooks::onParserClearState",
},
ExtensionMessagesFiles={
AcronymMagic="Acronym.i18n.php",
},
repository="https://github.com/Halopedia/Acronym",
},
AdvancedBacklinks={
name="AdvancedBacklinks",
author="Ostrzyciel",
["license-name"]="GPL-2.0-or-later",
version="2.9.2",
requires={
MediaWiki="&gt;= 1.37.0",
},
namemsg="advancedBacklinks",
descriptionmsg="advancedBacklinks-desc",
url="https://www.mediawiki.org/wiki/Extension:AdvancedBacklinks",
config={
AdvancedBacklinksTrackExtlinks=true,
},
Hooks={
LoadExtensionSchemaUpdates="AdvancedBacklinksHooks::onLoadExtensionSchemaUpdates",
LinksUpdate="AdvancedBacklinksHooks::onLinksUpdate",
SidebarBeforeOutput="AdvancedBacklinksHooks::onSidebarBeforeOutput",
GetDoubleUnderscoreIDs="AdvancedBacklinksHooks::onGetDoubleUnderscoreIDs",
ArticleDeleteComplete="AdvancedBacklinksHooks::onArticleDeleteComplete",
LonelyPagesQuery="AdvancedBacklinksHooks::onLonelyPagesQuery",
wgQueryPages="AdvancedBacklinksHooks::onwgQueryPages",
GetPreferences="AdvancedBacklinksHooks::onGetPreferences",
PPFrameBeforeExpansion="PPFrameHooks::onPPFrameBeforeExpansion",
PPFrameAfterExpansion="PPFrameHooks::onPPFrameAfterExpansion",
ParserClearState="PPFrameHooks::onParserClearState",
InternalParseBeforeLinks="PPFrameHooks::onInternalParseBeforeLinks",
["AbuseFilter-builder"]="AbAfHooks::onAbuseFilterBuilder",
["AbuseFilter-generateTitleVars"]="AbAfHooks::onAbuseFilterGenerateTitleVars",
["AbuseFilter-computeVariable"]="AbAfHooks::onAbuseFilterComputeVariable",
},
SpecialPages={
AdvancedBacklinks="SpecialAdvancedBacklinks",
WikitextWantedPages="SpecialWikitextWantedPages",
WikitextLonelyPages="SpecialWikitextLonelyPages",
WikitextContentLonelyPages="SpecialWikitextContentLonelyPages",
MostWikitextLinked="SpecialMostWikitextLinked",
MostWikitextLinkedFiles="SpecialMostWikitextLinkedFiles",
UndesiredRedlinks="SpecialUndesiredRedlinks",
},
APIPropModules={
ab_linkshere="ApiQueryAdvancedBacklinksProp",
ab_fileusage="ApiQueryAdvancedBacklinksProp",
ab_linkstats="ApiQueryAbLinkStatsProp",
},
DefaultUserOptions={
["ab-change-link-to-whatlinkshere"]=true,
},
ExtensionMessagesFiles={
AdvancedBacklinksAliases="AdvancedBacklinks.alias.php",
AdvancedBacklinksMagic="AdvancedBacklinks.magic.php",
},
type="other",
repository="https://gitlab.com/nonsensopedia/extensions/advancedbacklinks.git/",
},
AdvancedUserStats={
name="AdvancedUserStats",
version="1.1.1",
author="[https://www.wikiskripta.eu/w/User:Josmart Josef Martiňák]",
descriptionmsg="advanceduserstats-desc",
url="https://bitbucket.org/wikiskripta/advanceduserstats",
type="specialpage",
status="stable",
requires={
MediaWiki="&gt;= 1.39.0",
},
["license-name"]="MIT",
SpecialPages={
AdvancedUserStats="AdvancedUserStats",
},
config={
AUSreports={
value={
{
10,50,},{
30,50,},{
0,50,},},
description="First item: number of days (0=complete), second item: number of displayed users.",
},
},
repository="https://bitbucket.org/wikiskripta/advanceduserstats",
},
Ainut={
name="Ainut",
version="1.0.0",
author={
"Niklas Laxström",},
url="https://github.com/Nikerabbit/mediawiki-extensions-Ainut",
description="An application form and review tools for Aineeton kulttuuriperintö",
["license-name"]="GPL-2.0-or-later",
config={
AinutApplicationsOpen=false,
AinutReviewsOpen=false,
AinutResultsOpen=false,
},
ExtensionMessagesFiles={
["Ainut/Alias"]="Alias.php",
},
ServiceWiringFiles={
"src/ServiceWiring.php",},
SpecialPages={
Ainut={
class="Ainut\\SpecialAinut",
services={
"Ainut:ApplicationManager",},
},
AinutAdmin={
class="Ainut\\SpecialAinutAdmin",
services={
"Ainut:ApplicationManager","Ainut:ReviewManager","Ainut:DocumentExporter","LinkRenderer","UserFactory",},
},
AinutReview={
class="Ainut\\SpecialAinutReview",
services={
"Ainut:ApplicationManager","Ainut:ReviewManager","LinkRenderer","UserFactory",},
},
},
HookHandlers={
main={
class="Ainut\\HookHandler",
services={
"MainConfig","SpecialPageFactory",},
},
schema={
class="Ainut\\SchemaHookHandler",
},
},
Hooks={
LoadExtensionSchemaUpdates="schema",
SidebarBeforeOutput="main",
},
AvailableRights={
"ainut-review","ainut-admin",},
composer="mediawiki/ainut",
repository="https://github.com/Nikerabbit/mediawiki-extensions-Ainut",
},
AjaxComments={
name="AjaxComments",
version="3.0.0",
["license-name"]="GPL-2.0-or-later",
author={
"[https://organicdesign.nz/User:Nad Aran Dunkley]","[https://absorto.dev Igor Absorto]","[https://professional.wiki/en/mediawiki-development Professional Wiki]",},
url="https://www.mediawiki.org/wiki/Extension:AjaxComments",
descriptionmsg="ajaxcomments-desc",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
platform={
php="&gt;= 8.0",
},
},
callback="AjaxComments::onRegistration",
config={
AjaxCommentsLikeDislike={
description="Whether or not to add a like/dislike link to each comment",
value=false,
},
AjaxCommentsAvatars={
description="Whether or not to add avatars for users using the Gravatar service",
value=true,
},
AjaxCommentsPollServer={
description="Defines to poll the server to see if any changes to comments have been made and update if so",
value=0,
},
AjaxCommentsEmailNotify={
description="Whether or not to send notifications about replies and activity on watched pages to users by email",
value=false,
},
AjaxCommentsAdmins={
description="Defines the user groups that have admin privileges for comments",
value={
"sysop",},
},
},
Hooks={
ArticleViewHeader="AjaxComments::onArticleViewHeader",
MakeGlobalVariablesScript="AjaxComments::onMakeGlobalVariablesScript",
},
repository="https://github.com/debtcompliance/AjaxComments.git",
},
Auth_phpBB={
name="Auth_phpBB",
version="4.1.0",
author={
"Nicholas Dunnaway","Steve Gilvarry","Jonathan W. Platt","C4K3","Joel Haasnoot","[https://kence.org Casey Peel]",},
url="https://github.com/Digitalroot/MediaWiki_PHPBB_Auth",
description="Authenticate against a phpBB user database.",
type="validextensionclass",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.35.0",
extensions={
PluggableAuth="&gt;= 6.1",
},
},
callback="MediaWiki\\Extension\\Auth_phpBB\\Auth_phpBBHooks::onRegistration",
attributes={
PluggableAuth={
Auth_phpBB={
class="MediaWiki\\Extension\\Auth_phpBB\\Auth_phpBB",
},
},
},
repository="https://github.com/Digitalroot-Technologies/MediaWiki_PHPBB_Auth",
},
AutoSetPageLang={
name="AutoSetPageLang",
version="1.1.1",
author={
"Pierre Boutet",},
url="https://github.com/wikifab/AutoSetPageLang",
descriptionmsg="autosetpagelang-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.28.0",
},
config={
AutoSetPageLangAutoMarkTranslate=true,
AutoSetPageLangAutoMarkNamespaces={
},
AutoSetPageLangAutoUpdateNamespaces={
},
AutoSetPageLangTranslateOnCompleteOnly=true,
AutoSetPageLangAllowedNamespaces={
},
AutoSetPageLangAddNoIncludeTagsNamespaces={
},
},
Hooks={
PageContentInsertComplete={
"AutoSetPageLang\\Hooks::onPageContentInsertComplete",},
["PageForms::WritePageData"]={
"AutoSetPageLang\\Hooks::onPageFormsWritePageData",},
PageContentSave={
"AutoSetPageLang\\Hooks::onPageContentSave",},
PageContentSaveComplete={
"AutoSetPageLang\\Hooks::onPageContentSaveComplete",},
OutputPageBodyAttributes={
"AutoSetPageLang\\Hooks::onOutputPageBodyAttributes",},
BeforePageDisplay={
"AutoSetPageLang\\Hooks::onBeforePageDisplay",},
SkinTemplateTabs={
"AutoSetPageLang\\Hooks::displayTab",},
SkinTemplateNavigation={
"AutoSetPageLang\\Hooks::displayTab2",},
},
JobClasses={
autoMarkTranslate="AutoSetPageLang\\AutoMarkTranslateJob",
},
SpecialPages={
SetPageLang="AutoSetPageLang\\SpecialSetPageLang",
},
composer="wikifab/auto-set-page-lang",
repository="https://github.com/Wikifab/AutoSetPageLang.git",
},
AutoSitemap={
name="AutoSitemap",
author="Dolfinus",
url="https://www.mediawiki.org/wiki/Extension:AutoSitemap",
description="Creates a XML Sitemap file automatically.",
version="1.8.0",
["license-name"]="GPL-3.0+",
type="other",
ExtensionMessagesFiles={
AutoSitemap="AutoSitemap.i18n.php",
},
Hooks={
AfterImportPage={
"AutoSitemap::writeSitemap",},
PageDeleteComplete={
"AutoSitemap::writeSitemap",},
ArticleUndelete={
"AutoSitemap::writeSitemap",},
PageMoveComplete={
"AutoSitemap::writeSitemap",},
ArticleMergeComplete={
"AutoSitemap::writeSitemap",},
UploadComplete={
"AutoSitemap::writeSitemap",},
RevisionUndeleted={
"AutoSitemap::writeSitemap",},
RevisionRecordInserted={
"AutoSitemap::writeSitemap",},
PageSaveComplete={
"AutoSitemap::writeSitemap",},
},
repository="https://github.com/dolfinus/AutoSitemap.git",
},
["Automated Values"]={
name="Automated Values",
type="wikibase",
version="1.0.0",
author={
"[https://www.EntropyWins.wtf/mediawiki Jeroen De Dauw]","[https://professional.wiki/ Professional.Wiki]",},
["license-name"]="GPL-2.0-or-later",
url="https://github.com/ProfessionalWiki/AutomatedValues",
descriptionmsg="automated-values-description",
requires={
MediaWiki="&gt;= 1.35.0",
extensions={
WikibaseRepository="*",
},
},
ExtensionMessagesFiles={
AutomatedValuesAliases="i18n/aliases/Aliases.php",
},
Hooks={
MultiContentSave="ProfessionalWiki\\AutomatedValues\\Hooks::onMultiContentSave",
ContentHandlerDefaultModelFor="ProfessionalWiki\\AutomatedValues\\Hooks::onContentHandlerDefaultModelFor",
EditFilter="ProfessionalWiki\\AutomatedValues\\Hooks::onEditFilter",
AlternateEdit="ProfessionalWiki\\AutomatedValues\\Hooks::onAlternateEdit",
EditFormPreloadText="ProfessionalWiki\\AutomatedValues\\Hooks::onEditFormPreloadText",
},
config={
AutomatedValuesDefaultLanguages={
description="List of languages to create values for via '*' build specifications. If this value is not an empty list, it will override anything set on MediaWiki:AutomatedValues",
value={
},
},
AutomatedValuesRules={
description="List of rules applied to the wiki. In JSON format, following the JSON Schema at schema.json. Gets combined with rules defined on MediaWiki:AutomatedValues",
value="",
},
AutomatedValuesEnableInWikiConfig={
description="If it should be possible to define Rules and configuration via MediaWiki:AutomatedValues",
value=true,
},
},
SpecialPages={
AutomatedValues="ProfessionalWiki\\AutomatedValues\\SpecialAutomatedValues",
},
composer="professional-wiki/wikibase-automated-values",
repository="https://github.com/ProfessionalWiki/AutomatedValues.git",
},
BCmath={
name="BCmath",
version="0.1.0",
author={
"John Erling Blad",},
url="https://www.mediawiki.org/wiki/Extension:BCmath",
descriptionmsg="bcmath-desc",
["license-name"]="GPL-2.0",
type="other",
requires={
MediaWiki="&gt;= 1.33",
extensions={
Scribunto="*",
},
},
config_prefix="wgBCmath",
config={
ExtFiltering={
value=true,
description="Turn on additional sanitizion of numbers",
},
},
callback="BCmath\\Hooks::onExtensionSetup",
Hooks={
ScribuntoExternalLibraries={
"BCmath\\Hooks::onRegisterScribuntoLibraries",},
ScribuntoExternalLibraryPaths={
"BCmath\\Hooks::onRegisterScribuntoExternalLibraryPaths",},
},
repository="https://github.com/jeblad/BCmath",
composer="jeblad/bcmath",
},
BetterComments={
name="BetterComments",
version="0.3",
author="[https://www.wikiskripta.eu/w/User:Josmart Josef Martiňák]",
url="https://bitbucket.org/wikiskripta/bettercomments",
descriptionmsg="bettercomments-desc",
["license-name"]="MIT",
type="editor",
status="stable",
requires={
MediaWiki="&gt;= 1.39.0",
},
config={
extraPagesAllowed={
value={
37,40326,75076,},
description="List of pageId's to fire BetterComments at ('Fórum:Ptáte_se', 'Fórum:Portál', 'Fórum:Redakce').",
},
},
Hooks={
ParserBeforeInternalParse="BetterCommentsHooks::addTags",
BeforePageDisplay="BetterCommentsHooks::addButtons",
},
repository="https://bitbucket.org/wikiskripta/bettercomments.git",
},
BlockASN={
name="BlockASN",
version="1.3.0",
author={
"Ryan Schmidt",},
url="https://mwusers.org",
descriptionmsg="blockasn-desc",
["license-name"]="GPL-3.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
config={
BAApiField={
description="Fields in the geoip response to fetch data from",
value={
asn="traits.autonomous_system_number",
proxy={
"traits.is_anonymous_vpn","traits.is_public_proxy","traits.is_residential_proxy","traits.is_tor_exit_node",},
type="traits.user_type",
},
},
BAMMuser={
description="MaxMind API username",
value="",
public=false,
},
BAMMpass={
description="MaxMind API token",
value="",
public=false,
},
BlockedASNs={
description="List of blocked ASNs",
value={
},
public=false,
},
BlockedUserTypes={
description="List of blocked User Types",
value={
},
public=false,
},
},
Hooks={
GetUserBlock={
"BlockASN::onGetUserBlock",},
},
repository="https://github.com/SkizNet/mediawiki-BlockASN",
},
Bootstrap={
name="Bootstrap",
type="other",
author={
"[https://www.mediawiki.org/wiki/User:F.trott Stephan Gambke]","[https://professional.wiki/ Professional.Wiki]","James Hong Kong",},
version="4.6.2",
url="https://www.mediawiki.org/wiki/Extension:Bootstrap",
descriptionmsg="bootstrap-desc",
["license-name"]="GPL-3.0-or-later",
requires={
MediaWiki="&gt;= 1.29.0",
},
callback="\\Bootstrap\\Bootstrap::init",
repository="https://github.com/cmln/mw-bootstrap",
composer="mediawiki/bootstrap",
},
BootstrapComponents={
name="BootstrapComponents",
version="5.1.2-dev",
author={
"Tobias Oetterer",},
url="https://www.mediawiki.org/wiki/Extension:BootstrapComponents",
descriptionmsg="bootstrap-components-desc",
["license-name"]="GPL-3.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
ConfigRegistry={
BootstrapComponents="GlobalVarConfig::newInstance",
},
["@note"]="the extension's main hooks are registered in BootstrapComponents\\HookRegistry",
HookHandlers={
BootStrapHooks={
class="BootstrapComponents\\Hooks\\DefaultHooksHandler",
},
},
Hooks={
SetupAfterCache={
handler="BootStrapHooks",
},
ParserAfterParse={
handler="BootStrapHooks",
},
ScribuntoExternalLibraries="BootstrapComponents\\Hooks\\DefaultHooksHandler::onScribuntoExternalLibraries",
},
config={
BootstrapComponentsDisableSourceLinkOnImageModal={
value=false,
descriptionmsg="bootstrap-components-config-DisableSourceLinkOnImageModal",
public=true,
},
BootstrapComponentsEnableCarouselGalleryMode={
value=true,
descriptionmsg="bootstrap-components-config-EnableCarouselGalleryMode",
public=true,
},
BootstrapComponentsModalReplaceImageTag={
value=false,
descriptionmsg="bootstrap-components-config-ModalReplaceImageTag",
public=true,
},
BootstrapComponentsWhitelist={
value=true,
descriptionmsg="bootstrap-components-config-Whitelist",
public=true,
},
},
callback="BootstrapComponents\\BootstrapComponents::init",
ExtensionFunctions={
"BootstrapComponents\\BootstrapComponents::onExtensionFunction",},
ExtensionMessagesFiles={
BootstrapComponentsMagic="BootstrapComponents.magic.php",
},
TrackingCategories={
"bootstrap-components-error-tracking-category","bootstrap-components-tracking-category",},
repository="https://github.com/oetterer/BootstrapComponents",
composer="mediawiki/bootstrap-components",
},
Bugzilla={
name="Bugzilla",
version="0.0.1",
author={
"Carl Schwan",},
["license-name"]="GPL-2-or-later",
Hooks={
ParserFirstCallInit="BugzillaHooks::onParserFirstCallInit",
},
ConfigRegistry={
bugzilla="GlobalVarConfig::newInstance",
},
config={
BugzillaRestApiUrl="https://bugs.kde.org/rest",
},
repository="https://invent.kde.org/websites/mediawiki-bugzilla.git/",
},
CaptchaSettings={
name="CaptchaSettings",
version="1.1",
author="[https://www.wikiskripta.eu/w/User:Josmart Josef Martiňák]",
url="https://bitbucket.org/wikiskripta/captchasettings",
descriptionmsg="captchasettings-desc",
["license-name"]="MIT",
type="specialpage",
status="stable",
requires={
MediaWiki="&gt;= 1.29.0",
},
SpecialPages={
CaptchaSettings="CaptchaSettings",
},
repository="https://bitbucket.org/wikiskripta/captchasettings",
},
CategoryHistory={
name="CategoryHistory",
version="2.1",
author={
"[https://www.wikiskripta.eu/w/User:Josmart Josef Martiňák]","[https://www.wikiskripta.eu/w/User:Slepi Petr Kajzar]",},
url="https://bitbucket.org/wikiskripta/categoryhistory",
descriptionmsg="categoryhistory-desc",
["license-name"]="MIT",
type="specialpage",
status="stable",
requires={
MediaWiki="&gt;= 1.39.0",
},
SpecialPages={
CategoryHistory="CategoryHistory",
},
Hooks={
SkinSubPageSubtitle="CategoryHistoryHooks::AddLinkToCategory",
},
config={
cathist_page_limit={
value=500,
description="Number of items in the table",
},
cathist_name_style={
value="REALNAME",
description="Style of the name in the table. Options are: REALNAME (if set), USERNAME, BOTH",
},
},
repository="https://bitbucket.org/wikiskripta/categoryhistory",
},
Character_Escapes={
name="Character Escapes",
version="1.0.0",
author="David M. Sledge",
url="http://www.mediawiki.org/wiki/Extension:Character_Escapes",
descriptionmsg="characterescapes_description",
type="parserhook",
Hooks={
ParserFirstCallInit={
"CharacterEscapesHooks::onParserFirstCallInit",},
},
repository="https://gitlab.com/hydrawiki/extensions/characterescapes.git",
},
Chartie={
name="Chartie",
author="Dolfinus",
url="https://www.mediawiki.org/wiki/Extension:Chartie",
description="This extension provides a simple line chart, based on d3.js",
version="1.0",
["license-name"]="MIT",
type="media",
ExtensionMessagesFiles={
Chartie="Chartie_magic.i18n.php",
},
MediaHandlers={
["text/csv"]="Chartie",
},
Hooks={
ParserMakeImageParams={
"Chartie::onParserMakeImageParams",},
ParserFirstCallInit={
"Chartie::onParserFirstCallInit",},
ImageBeforeProduceHTML={
"Chartie::onImageBeforeProduceHTML",},
ImageOpenShowImageInlineBefore={
"Chartie::onImageOpenShowImageInlineBefore",},
BeforePageDisplay={
"Chartie::onBeforePageDisplay",},
BeforePageDisplayMobile={
"Chartie::onBeforePageDisplay",},
},
repository="https://github.com/dolfinus/Chartie.git",
},
CheckPageTitle={
name="Check Page Title",
author="Solene",
version="1.0.0",
url="https://www.mediawiki.org/wiki/Extension:CheckPageTitle",
descriptionmsg="Check Page Title",
["license-name"]="GPL-2.0+",
type="parserhook",
ExtensionMessagesFiles={
CheckPageTitle="CheckPageTitle.i18n.php",
},
Hooks={
BeforePageDisplay={
"CheckPageTitle::onBeforePageDisplay",},
ResourceLoaderGetConfigVars={
"CheckPageTitle::onResourceLoaderGetConfigVars",},
},
composer="wikifab/check-page-title",
repository="https://github.com/Wikifab/ext-CheckPageTitle",
},
CommentsProperty={
name="Comments Property",
author="Julien",
url="https://www.mediawiki.org/wiki/Extension:CommentsProperty",
descriptionmsg="commentsproperty-desc",
version="1.0",
["license-name"]="GPL-2.0+",
type="other",
callback="CommentsProperty\\CommentsProperty::onExtension",
composer="wikifab/comments-property",
repository="https://github.com/Wikifab/CommentsProperty",
},
Contactus={
name="Contactus",
version="1.1.1",
author="[https://www.wikiskripta.eu/w/User:Josmart Josef Martiňák]",
url="https://bitbucket.org/wikiskripta/contactus",
descriptionmsg="contactus-desc",
["license-name"]="MIT",
type="specialpage",
status="stable",
requires={
MediaWiki="&gt;= 1.36.0",
},
SpecialPages={
Contactus="Contactus",
},
ExtensionMessagesFiles={
ContactusMagic="Contactus.i18n.magic.php",
},
config={
ContactusFieldsSpecial={
value={
"photo","degree","email","workplace","projects","note",},
description="Fields displayed at special page.",
},
ContactusFieldsCard={
value={
"degree","email","workplace","projects","photo",},
description="Fields displayed at visit card.",
},
ContactusFieldsTable={
value={
"degree","email","workplace","projects","photo",},
description="Fields displayed at the table view.",
},
},
Hooks={
LoadExtensionSchemaUpdates="ContactusHooks::ContactusUpdateSchema",
ParserFirstCallInit="ContactusHooks::efContactus_Setup",
},
repository="https://bitbucket.org/wikiskripta/contactus",
},
CreateWiki={
name="CreateWiki",
author={
"Southparkfan","John Lewis","Paladox","Universal Omega",},
url="https://github.com/miraheze/CreateWiki",
descriptionmsg="createwiki-desc",
["license-name"]="GPL-3.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.39.0",
},
AvailableRights={
"createwiki","requestwiki",},
SpecialPages={
CreateWiki={
class="Miraheze\\CreateWiki\\CreateWiki\\SpecialCreateWiki",
services={
"CreateWikiHookRunner",},
},
RequestWiki={
class="Miraheze\\CreateWiki\\RequestWiki\\SpecialRequestWiki",
services={
"CreateWikiHookRunner",},
},
RequestWikiQueue={
class="Miraheze\\CreateWiki\\RequestWiki\\SpecialRequestWikiQueue",
services={
"CreateWikiHookRunner",},
},
},
JobClasses={
CreateWikiJob="Miraheze\\CreateWiki\\CreateWiki\\CreateWikiJob",
RequestWikiAIJob="Miraheze\\CreateWiki\\RequestWiki\\RequestWikiAIJob",
SetContainersAccessJob="Miraheze\\CreateWiki\\SetContainersAccessJob",
},
LogTypes={
"farmer",},
ActionFilteredLogs={
farmer={
createwiki={
"createwiki",},
requestapprove={
"requestapprove",},
requestdecline={
"requestdecline",},
requestwiki={
"requestreopen","requestwiki",},
},
},
LogActionsHandlers={
["farmer/createwiki"]="LogFormatter",
["farmer/requestapprove"]="Miraheze\\CreateWiki\\CreateWiki\\CreateWikiLogFormatter",
["farmer/requestdecline"]="Miraheze\\CreateWiki\\CreateWiki\\CreateWikiLogFormatter",
["farmer/requestonhold"]="Miraheze\\CreateWiki\\CreateWiki\\CreateWikiLogFormatter",
["farmer/requestreopen"]="Miraheze\\CreateWiki\\CreateWiki\\CreateWikiLogFormatter",
["farmer/requestwiki"]="Miraheze\\CreateWiki\\CreateWiki\\CreateWikiLogFormatter",
},
ExtensionMessagesFiles={
CreateWikiAliases="CreateWikiAliases.php",
CreateWikiMagic="CreateWikiMagic.php",
},
Hooks={
BeforeCreateEchoEvent="Miraheze\\CreateWiki\\Hooks::onBeforeCreateEchoEvent",
LoadExtensionSchemaUpdates={
handler="Installer",
},
GetMagicVariableIDs={
handler="default",
},
LoginFormValidErrorMessages={
handler="default",
},
ParserGetVariableValueSwitch={
handler="default",
},
SetupAfterCache={
handler="default",
},
},
HookHandlers={
default={
class="Miraheze\\CreateWiki\\Hooks",
services={
"MainConfig","CreateWikiHookRunner","DBLoadBalancerFactory",},
},
Installer={
class="Miraheze\\CreateWiki\\Hooks\\Handlers\\Installer",
},
},
config={
CreateWikiAIThreshold={
description="Integer. Minimum percentage points for a request to be created when acceptable.",
public=true,
value=false,
},
CreateWikiAutoApprovalFilter={
description="Array. Regexes to never auto approve requests if their descriptions match.",
public=true,
value={
},
},
CreateWikiDisallowedSubdomains={
description="String or array. Regex to match for disallowed subdomains.",
public=true,
value="/ /",
},
CreateWikiCannedResponses={
description="Boolean. Array of default responses to give. If this is enabled, free-text options are removed.",
public=true,
value=false,
},
CreateWikiCategories={
description="Array. An array of categories used for wiki categorisaion.",
public=true,
value={
},
},
CreateWikiCustomDomainPage={
description="String. Page name to link to for more information on custom domains.",
public=true,
value="",
},
CreateWikiDatabase={
description="String. Database name of where cw_wikis is stored.",
public=true,
value="",
},
CreateWikiDatabaseClusters={
description="Array. LBFactory clusters which CreateWiki considers active.",
public=true,
value={
},
},
CreateWikiDatabaseClustersInactive={
description="Array. LBFactory clusters which are not considered active for use of automatic loadbalancing.",
public=true,
value={
},
},
CreateWikiDatabaseSuffix={
description="String. Database suffix.",
public=true,
value="wiki",
},
CreateWikiPersistentModelFile={
description="String. Location to a file that can be overwritten to contain a persistent machine learning model.",
public=true,
value="",
},
CreateWikiStateDays={
description="Array. Integer values in days when a wiki is deemed inactive, closed, removed (hidden) and deleted. Number of days passed since last change - not from initial inactivity.",
public=true,
value={
inactive=45,
closed=15,
removed=120,
deleted=7,
},
},
CreateWikiEnableManageInactiveWikis={
description="Boolean. Should the manageInactiveWikis.php maintenance script be enabled? That script marks wikis as inactive, closed, or deleted per $wgCreateWikiStateDays.",
public=true,
value=false,
},
CreateWikiGlobalWiki={
description="String. Database name of the global wiki. (Where RequestWiki should be enabled and Special:CreateWiki available.)",
public=true,
value="",
},
CreateWikiEmailNotifications={
description="Boolean. Whether to send emails for new wiki creations.",
public=true,
value=false,
},
CreateWikiNotificationEmail={
description="String. Email address to send internally generated notification emails to. Does not depend on $wgCreateWikiEmailNotifications!",
public=true,
value="root@localhost",
},
CreateWikiPurposes={
description="Array. List of identified purposes to show when requesting a wiki.",
public=true,
value={
},
},
CreateWikiSQLfiles={
description="Array. All SQLs to be loaded into every wiki by default.",
public=true,
value={
},
},
CreateWikiShowBiographicalOption={
description="Boolean. Whether to show a biographical person option when requesting a wiki.",
public=true,
value=false,
},
CreateWikiSubdomain={
description="String. The master part of subdomains, e.g. wiki.example.com, example.com is the master part.",
public=true,
value="",
},
CreateWikiUseCategories={
description="Boolean. Whether to use categories to categorise wikis.",
public=true,
value=false,
},
CreateWikiUseClosedWikis={
description="Boolean. Whether to implement front end logic for closing wikis.",
public=true,
value=false,
},
CreateWikiUseCustomDomains={
description="Boolean. Whether to implement front end logic to handle requesting custom domains for wikis in RequestWiki.",
public=true,
value=false,
},
CreateWikiUseEchoNotifications={
description="Boolean. Whether to use Echo notifications (beta feature).",
public=true,
value=false,
},
CreateWikiUseInactiveWikis={
description="Boolean. Whether to implement front end logic for inactive wikis.",
public=true,
value=false,
},
CreateWikiInactiveExemptReasonOptions={
description="Array. Possible options for marking a wiki as exempt from inactivity.",
public=true,
value={
},
},
CreateWikiUseJobQueue={
description="Boolean. Whether to defer intensive tasks to the jobqueue.",
public=true,
value=false,
},
CreateWikiUsePrivateWikis={
description="Boolean. Whether to implement front end logic for marking wikis as private.",
public=true,
value=false,
},
CreateWikiContainers={
description="Array. List of local containers to create. Format: &lt;container&gt;: &lt;public/public-private/private&gt;. public means directory will always be public. public-private is to support public/private and uses isPrivate check. private means directory is private regardless of wiki status. Defaults to MW default containers with most public apart from deleted and temp.",
public=true,
value={
["local-public"]="public-private",
["local-thumb"]="public-private",
["local-transcoded"]="public-private",
["local-temp"]="private",
["local-deleted"]="private",
},
},
CreateWikiCollation={
description="String. Sets the collation to use when creating the wiki database. Example is 'DEFAULT SET utf8mb4 COLLATE utf8mb4_unicode_ci'",
public=true,
value="",
},
CreateWikiCacheDirectory={
description="String. The path to store CreateWiki cache files at.",
public=true,
value="",
},
CreateWikiUseExperimental={
description="Boolean. Whether to implement front end logic for marking wikis as experimental.",
public=true,
value=false,
},
},
ConfigRegistry={
CreateWiki="GlobalVarConfig::newInstance",
},
DefaultUserOptions={
["echo-subscriptions-web-request-comment"]=true,
["echo-subscriptions-email-request-comment"]=false,
["echo-subscriptions-web-request-declined"]=true,
["echo-subscriptions-email-request-declined"]=true,
["echo-subscriptions-web-wiki-creation"]=true,
["echo-subscriptions-email-wiki-creation"]=false,
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
callback="Miraheze\\CreateWiki\\Hooks::onRegistration",
composer="miraheze/create-wiki",
repository="https://github.com/miraheze/CreateWiki.git",
},
["Curse Twitter"]={
name="Curse Twitter",
version="1.4.1",
author={
"Hydra Wiki Platform Team",},
url="https://gitlab.com/HydraWiki/extensions/CurseTwitter",
descriptionmsg="cursetwitter_description",
["license-name"]="GPL-3.0-only",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="CurseTwitterHooks::onParserFirstCallInit",
},
repository="https://gitlab.com/hydrawiki/extensions/CurseTwitter.git",
},
["wikifab/CustomRecentChanges"]={
name="wikifab/CustomRecentChanges",
author="Brendan Poirier",
description="Redesign of the RecentChanges page",
["license-name"]="GPL-2.0+",
type="ext",
SpecialPages={
CustomRecentChanges="CustomRecentChanges\\Specials\\SpecialCustomRecentChanges",
},
ExtensionMessagesFiles={
CustomRecentChangesAlias="i18n/CustomRecentChangesAlias.php",
},
config={
RCNamespacesList={
0,2,6,14,220,},
RCNamespacesListIgnored={
},
},
composer="wikifab/custom-recent-changes",
repository="https://github.com/Wikifab/CustomRecentChanges.git",
},
CustomSubtitle={
name="CustomSubtitle",
author="Antoine Lamielle",
url="https://github.com/lingua-libre/CustomSubtitle",
["license-name"]="GPL-2.0+",
version="0.1.0",
namemsg="customSubtitle",
descriptionmsg="customSubtitle-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.34.0",
},
ExtensionMessagesFiles={
CustomSubtitleMagic="CustomSubtitle.i18n.php",
},
Hooks={
ParserFirstCallInit="CustomSubtitleHooks::onParserFirstCallInit",
},
repository="https://github.com/lingua-libre/CustomSubtitle.git",
},
DataDump={
name="DataDump",
author={
"Paladox","Universal Omega",},
url="https://www.mediawiki.org/wiki/Extension:DataDump",
descriptionmsg="datadump-desc",
["license-name"]="GPL-3.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.36.0",
},
AvailableRights={
"generate-dump","delete-dump","view-dump",},
config={
DataDump={
description="object",
public=true,
value={
},
},
DataDumpInfo={
description="string",
public=true,
value="",
},
DataDumpLimits={
description="object",
public=true,
value={
memory=0,
filesize=0,
time=0,
walltime=0,
},
},
DataDumpDirectory={
description="string",
public=true,
value=false,
},
DataDumpFileBackend={
description="string",
public=true,
value="",
},
DataDumpDownloadUrl={
description="string",
public=true,
value="",
},
DataDumpDisableGenerate={
description="boolean",
public=true,
value=false,
},
},
ExtensionMessagesFiles={
DataDumpAliases="includes/DataDumpAliases.php",
},
APIModules={
deletedumps="ApiDeleteDumps",
generatedumps="ApiGenerateDumps",
viewdumps="ApiViewDumps",
},
SpecialPages={
DataDump="SpecialDataDump",
},
LogActionsHandlers={
["datadump/delete"]="LogFormatter",
["datadump/generate"]="LogFormatter",
},
LogTypes={
"datadump",},
JobClasses={
DataDumpGenerateJob="DataDumpGenerateJob",
},
HookHandlers={
default={
class="DataDumpHooks",
},
},
Hooks={
LoadExtensionSchemaUpdates="default",
SidebarBeforeOutput="default",
},
ConfigRegistry={
datadump="GlobalVarConfig::newInstance",
},
composer="miraheze/data-dump",
repository="https://github.com/miraheze/DataDump",
},
["Interactive Data Maps"]={
name="Interactive Data Maps",
version="0.16.11",
author={
"alex4401",},
url="https://mediawiki.org/wiki/Extension:DataMaps",
descriptionmsg="datamap-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
platform={
php="&gt;= 7.4",
},
},
ExtensionMessagesFiles={
DataMapsMagic="i18n/Magic.php",
},
TrackingCategories={
"datamap-category-pages-including-maps","datamap-category-maps-failing-validation","datamap-category-pages-including-broken-maps",},
namespaces={
{
id=2900,
constant="NS_MAP",
name="Map",
defaultcontentmodel="wikitext",
subpages=true,
conditional=true,
},{
id=2901,
constant="NS_MAP_TALK",
name="Map_talk",
subpages=true,
conditional=true,
},},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
APIModules={
queryDataMap={
class="MediaWiki\\Extension\\DataMaps\\API\\ApiQueryDataMapEndpoint",
services={
"DataMaps.Config","DataMaps.MarkerProcessorFactory",},
},
},
ContentHandlers={
datamap="MediaWiki\\Extension\\DataMaps\\Content\\DataMapContentHandler",
},
callback="MediaWiki\\Extension\\DataMaps\\HookHandler::onRegistration",
Hooks={
ParserFirstCallInit="MainHandler",
ContentHandlerDefaultModelFor="MainHandler",
CanonicalNamespaces="MainHandler",
GetPreferences="MainHandler",
["SkinTemplateNavigation::Universal"]="MainHandler",
ChangeTagsListActive="MainHandler",
ListDefinedTags="MainHandler",
RecentChange_save="MainHandler",
RevisionDataUpdates="MainHandler",
CodeEditorGetPageLanguage="MediaWiki\\Extension\\DataMaps\\HookHandler::onCodeEditorGetPageLanguage",
},
HookHandlers={
MainHandler={
class="MediaWiki\\Extension\\DataMaps\\HookHandler",
services={
"DataMaps.Config",},
},
},
DefaultUserOptions={
["datamaps-enable-visual-editor"]=true,
["datamaps-opt-in-visual-editor-beta"]=false,
},
config_prefix="wgDataMaps",
config={
NamespaceId={
description="Namespace where data maps will be stored. Use 'managed' to use the built-in namespace.",
value="managed",
},
ApiCaching={
value={
type=-1,
ttl=86400,
ttlExtensionThreshold=43200,
ttlExtensionValue=57600,
},
},
DefaultApiMarkerBatch={
value=2500,
},
MaxApiMarkerBatch={
value=5000,
},
MarkerParserExpansionLimit={
description="Controls how big the parser output for a marker's description can get.",
value=800,
},
UseInProcessParserCache={
description="If enabled, uses a simple wikitext parser cache inside the process handling the request.",
value=true,
},
ReportTimingInfo={
description="Attaches data map marker processing time in API requests.",
value=false,
},
FullLinksUpdateBudget={
value=0.5,
},
EnableVisualEditor={
value=true,
},
EnableCreateMap={
value=true,
},
EnableTransclusionAlias={
value=true,
},
EnableFandomPortingTools={
value=false,
},
AllowExperimentalFeatures={
description="Whether to enable experimental features.",
value=false,
},
},
composer="mediawiki/datamaps",
repository="https://github.com/alex4401/mediawiki-extensions-DataMaps.git",
},
Debounce={
name="Debounce",
namemsg="debounce-extensionname",
version="1.2.0",
author={
"Ryan Schmidt",},
url="https://mwusers.org",
descriptionmsg="debounce-desc",
["license-name"]="GPL-3.0-or-later",
type="antispam",
requires={
MediaWiki="&gt;= 1.34.0",
},
config={
DebounceApiKey={
value=nil,
path=false,
description="Debounce API Key, if using the paid email validation API",
descriptionmsg="debounce-config-apikey",
public=false,
},
DebounceFree={
value=true,
path=false,
description="If true, uses the free disposable email API. If false, uses the paid email validation API",
descriptionmsg="debounce-config-free",
public=false,
},
DebouncePrivate={
value=true,
path=false,
description="If true and using the free disposable email API, obscure the user's email and only send the domain",
descriptionmsg="debounce-config-private",
public=false,
},
},
Hooks={
isValidEmailAddr={
"Debounce::isValidEmailAddr",},
},
repository="https://github.com/SkizNet/mediawiki-Debounce",
},
Decorations={
name="Decorations",
version="1.1.1",
author="[https://www.wikiskripta.eu/w/User:Josmart Josef Martiňák]",
url="https://bitbucket.org/wikiskripta/decorations",
descriptionmsg="decorations-desc",
type="specialpage",
["license-name"]="MIT",
status="stable",
requires={
MediaWiki="&gt;= 1.36.0",
},
SpecialPages={
Decorations="Decorations",
},
config={
decorationsHome={
value="WikiSkripta:Vyznamenání",
description="Wiki pagename informing about available wiki decorations",
},
decorationsList={
value={
{
"Wiki4lístek.png","WikiČtyřlístek","Vyznamenání udílené obvykle za zvláštní či dlouhodobý přínos WikiSkriptům.",},{
"WikiSlunicko.png","WikiSluníčko","Spíše než o vyznamenání se jedná o pozdrav a vyjádření podpory v další činnosti. V praxi lze udělit uživateli prostě proto, že jste si na něj vzpoměli, a chcete mu třeba popřát hezký den.",},{
"Kava.png","Řád černé kávy","Jedná se o ocenění noční práce redaktora/uživatele. Prostě, když uvidíte někoho editovat ve 2 hodiny ráno, proč ho neocenit za toto nasazení?",},{
"Řád_bílého_jednorožce2.png","Řád bílého jednorožce","Jedná se o ocenění výjimečného přínosu redaktora/uživatele. Když v úžasu stanete nad prací kolegy/ně, neváhejte jim udělením tohoto ocenění sdělit, že vás to ohromilo.",},},
description="Decorations info (decoration's image placed on wiki, title, description)",
},
},
repository="https://bitbucket.org/wikiskripta/decorations.git",
},
Diagrams={
name="Diagrams",
namemsg="diagrams-extensionname",
type="other",
author={
"[https://samwilson.id.au/ Sam Wilson]",},
version="0.12.3",
url="https://www.mediawiki.org/wiki/Extension:Diagrams",
descriptionmsg="diagrams-desc",
["license-name"]="GPL-3.0-or-later",
requires={
MediaWiki="&gt;= 1.34.0, &lt;= 1.42",
},
config={
DiagramsServiceUrl={
description="URL of the diagram-rendering service. If not provided, graphs will be locally rendered.",
value="",
},
},
Hooks={
ParserFirstCallInit="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Diagrams\\Hooks",
services={
"MainConfig","ShellCommandFactory",},
},
},
repository="https://github.com/samwilson/diagrams-extension",
composer="samwilson/diagrams",
},
Discord={
name="Discord",
author={
"[https://github.com/jayktaylor Jayden Bailey]",},
url="https://github.com/jayktaylor/mw-discord",
version="1.0.13",
descriptionmsg="discord-desc",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.38.0",
},
config={
DiscordWebhookURL={
},
DiscordNoBots=true,
DiscordNoMinor=false,
DiscordNoNull=true,
DiscordSuppressPreviews=true,
DiscordMaxChars=nil,
DiscordMaxCharsUsernames=25,
DiscordDisabledHooks={
},
DiscordDisabledNS={
},
DiscordDisabledUsers={
"Redirect fixer",},
DiscordPrependTimestamp=false,
DiscordUseFileGetContents=false,
DiscordUseEmojis=false,
DiscordEmojis={
PageSaveComplete=":pencil2:",
PageDeleteComplete=":wastebasket:",
ArticleUndelete=":wastebasket:",
ArticleRevisionVisibilitySet=":spy:",
ArticleProtectComplete=":lock:",
PageMoveComplete=":truck:",
LocalUserCreated=":wave:",
BlockIpComplete=":no_entry_sign:",
UnblockUserComplete=":no_entry_sign:",
UserGroupsChanged=":people_holding_hands:",
UploadComplete=":inbox_tray:",
FileDeleteComplete=":wastebasket:",
FileUndeleteComplete=":wastebasket:",
AfterImportPage=":books:",
ArticleMergeComplete=":card_box:",
ApprovedRevsRevisionApproved=":white_check_mark:",
ApprovedRevsRevisionUnapproved=":white_check_mark:",
ApprovedRevsFileRevisionApproved=":white_check_mark:",
ApprovedRevsFileRevisionUnapproved=":white_check_mark:",
RenameUserComplete=":people_holding_hands:",
},
},
Hooks={
PageSaveComplete="DiscordHooks::onPageSaveComplete",
PageDeleteComplete="DiscordHooks::onPageDeleteComplete",
ArticleUndelete="DiscordHooks::onArticleUndelete",
ArticleRevisionVisibilitySet="DiscordHooks::onArticleRevisionVisibilitySet",
ArticleProtectComplete="DiscordHooks::onArticleProtectComplete",
PageMoveComplete="DiscordHooks::onPageMoveComplete",
LocalUserCreated="DiscordHooks::onLocalUserCreated",
BlockIpComplete="DiscordHooks::onBlockIpComplete",
UnblockUserComplete="DiscordHooks::onUnblockUserComplete",
UserGroupsChanged="DiscordHooks::onUserGroupsChanged",
UploadComplete="DiscordHooks::onUploadComplete",
FileDeleteComplete="DiscordHooks::onFileDeleteComplete",
FileUndeleteComplete="DiscordHooks::onFileUndeleteComplete",
AfterImportPage="DiscordHooks::onAfterImportPage",
ArticleMergeComplete="DiscordHooks::onArticleMergeComplete",
ApprovedRevsRevisionApproved="DiscordHooks::onApprovedRevsRevisionApproved",
ApprovedRevsRevisionUnapproved="DiscordHooks::onApprovedRevsRevisionUnapproved",
ApprovedRevsFileRevisionApproved="DiscordHooks::onApprovedRevsFileRevisionApproved",
ApprovedRevsFileRevisionUnapproved="DiscordHooks::onApprovedRevsFileRevisionUnapproved",
RenameUserComplete="DiscordHooks::onRenameUserComplete",
},
repository="https://github.com/jaydenkieran/mw-discord.git",
},
["Discord Notifications"]={
name="Discord Notifications",
version="1.1.4",
author="Aleksi Postari",
url="https://github.com/kulttuuri/discord_mediawiki",
descriptionmsg="discordnotifications-desc",
type="other",
ExtensionFunctions={
"DiscordNotificationsCore::registerExtraHooks",},
Hooks={
ArticleDeleteComplete={
{
"DiscordNotificationsCore::onDiscordArticleDeleted",},},
TitleMoveComplete={
{
"DiscordNotificationsCore::onDiscordArticleMoved",},},
AddNewAccount={
{
"DiscordNotificationsCore::onDiscordNewUserAccount",},},
BlockIpComplete={
{
"DiscordNotificationsCore::onDiscordUserBlocked",},},
UploadComplete={
{
"DiscordNotificationsCore::onDiscordFileUploaded",},},
ArticleProtectComplete={
{
"DiscordNotificationsCore::onDiscordArticleProtected",},},
UserGroupsChanged={
{
"DiscordNotificationsCore::onDiscordUserGroupsChanged",},},
APIFlowAfterExecute={
{
"DiscordNotificationsCore::onDiscordApiFlowAfterExecute",},},
AfterImportPage={
{
"DiscordNotificationsCore::onDiscordAfterImportPage",},},
},
config={
DiscordIncomingWebhookUrl="",
DiscordAdditionalIncomingWebhookUrls={
},
DiscordFromName="",
DiscordSendMethod="curl",
DiscordIncludePageUrls=true,
DiscordIncludeUserUrls=true,
DiscordIgnoreMinorEdits=false,
DiscordExcludeNotificationsFrom={
},
DiscordExcludedPermission="",
DiscordNotificationWikiUrl="",
DiscordNotificationWikiUrlEnding="index.php?title=",
DiscordNotificationWikiUrlEndingUserRights="Special%3AUserRights&amp;user=",
DiscordNotificationWikiUrlEndingBlockList="Special:BlockList",
DiscordNotificationWikiUrlEndingBlockUser="Special:Block/",
DiscordNotificationWikiUrlEndingUserPage="User:",
DiscordNotificationWikiUrlEndingUserTalkPage="User_talk:",
DiscordNotificationWikiUrlEndingUserContributions="Special:Contributions/",
DiscordNotificationWikiUrlEndingEditArticle="action=edit",
DiscordNotificationWikiUrlEndingDeleteArticle="action=delete",
DiscordNotificationWikiUrlEndingHistory="action=history",
DiscordNotificationWikiUrlEndingDiff="diff=prev&amp;oldid=",
DiscordNotificationNewUser=true,
DiscordNotificationBlockedUser=true,
DiscordNotificationAddedArticle=true,
DiscordNotificationRemovedArticle=true,
DiscordNotificationMovedArticle=true,
DiscordNotificationEditedArticle=true,
DiscordNotificationFileUpload=true,
DiscordNotificationProtectedArticle=true,
DiscordNotificationShowSuppressed=true,
DiscordNotificationUserGroupsChanged=true,
DiscordNotificationFlow=true,
DiscordNotificationAfterImportPage=true,
DiscordIncludeDiffSize=true,
DiscordShowNewUserFullName=true,
DiscordAvatarUrl="",
},
repository="https://github.com/kulttuuri/DiscordNotifications.git",
},
DiscordRCFeed={
name="DiscordRCFeed",
version="1.0.3",
author={
"Aleksi Postari","[https://femiwiki.com/ FemiWiki Team]","...",},
url="https://www.mediawiki.org/wiki/Extension:DiscordRCFeed",
descriptionmsg="discordrcfeed-desc",
type="other",
requires={
MediaWiki="&gt;= 1.38.0",
},
Hooks={
MediaWikiServices="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\DiscordRCFeed\\FeedSanitizer",
},
},
composer="femiwiki/discord-notifications",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DiscordRCFeed",
},
["Discourse SSO Consumer"]={
name="Discourse SSO Consumer",
version="4.0.0",
author={
"Matt Marjanovic",},
url="https://github.com/centertap/DiscourseSsoConsumer",
descriptionmsg="discourse-sso-consumer-desc",
type="other",
["license-name"]="GPL-3.0-or-later",
requires={
MediaWiki="&gt;=1.35.0",
extensions={
PluggableAuth="~6.3",
},
platform={
php="&gt;=7.4",
},
},
SpecialPages={
DiscourseSsoConsumerWebhook="MediaWiki\\Extension\\DiscourseSsoConsumer\\SpecialWebhook",
},
Hooks={
BeforeInitialize="MediaWiki\\Extension\\DiscourseSsoConsumer\\AutoRelogin::onBeforeInitialize",
BeforePageDisplay="MediaWiki\\Extension\\DiscourseSsoConsumer\\AuthenticationPlugin::onBeforePageDisplay",
LoadExtensionSchemaUpdates="MediaWiki\\Extension\\DiscourseSsoConsumer\\Schema::onLoadExtensionSchemaUpdates",
PluggableAuthPopulateGroups="MediaWiki\\Extension\\DiscourseSsoConsumer\\AuthenticationPlugin::onPluggableAuthPopulateGroups",
SpecialPageBeforeFormDisplay="MediaWiki\\Extension\\DiscourseSsoConsumer\\AuthenticationPlugin::onSpecialPageBeforeFormDisplay",
},
config={
DiscourseSsoConsumer_Config={
merge_strategy="provide_default",
value={
DiscourseUrl=nil,
Sso={
Enable=false,
ProviderEndpoint="/session/sso_provider",
SharedSecret=nil,
EnableSeamlessLogin=false,
EnableAutoRelogin=false,
},
DiscourseApi={
Username="system",
Key=nil,
EnableLogout=false,
LogoutEndpoint="/admin/users/{id}/log_out.json",
},
User={
LinkExistingBy={
},
ExposeName=false,
ExposeEmail=false,
GroupMaps=nil,
},
Webhook={
Enable=false,
SharedSecret=nil,
AllowedIpList={
},
IgnoredEvents={
"user_created",},
},
Logout={
OfferGlobalOptionToUser=false,
ForwardToDiscourse=false,
HandleEventFromDiscourse=false,
},
},
},
},
attributes={
PluggableAuth={
DiscourseSsoConsumer={
class="MediaWiki\\Extension\\DiscourseSsoConsumer\\AuthenticationPlugin",
services={
},
},
},
},
composer="centertap/discourse-sso-consumer",
repository="https://github.com/centertap/DiscourseSsoConsumer",
},
DynamicPageList3={
name="DynamicPageList3",
version="3.5.2",
author={
"'''Universal Omega'''","Alexia E. Smith","Gero Scholz",},
url="https://www.mediawiki.org/wiki/Extension:DynamicPageList3",
descriptionmsg="dpl-desc",
["license-name"]="GPL-3.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
},
GroupPermissions={
sysop={
dpl_param_update_rules=true,
dpl_param_delete_rules=true,
},
},
AvailableRights={
"dpl_param_update_rules","dpl_param_delete_rules",},
ExtensionMessagesFiles={
DynamicPageList3Magic="DynamicPageList3Magic.php",
},
Hooks={
ParserFirstCallInit={
"MediaWiki\\Extension\\DynamicPageList3\\Hooks::onParserFirstCallInit",},
LoadExtensionSchemaUpdates={
"MediaWiki\\Extension\\DynamicPageList3\\Hooks::onLoadExtensionSchemaUpdates",},
},
config={
DplSettings={
value={
allowedNamespaces=nil,
allowUnlimitedCategories=false,
allowUnlimitedResults=false,
categoryStyleListCutoff=6,
functionalRichness=3,
maxCategoryCount=4,
minCategoryCount=0,
maxResultCount=500,
recursiveTagParse=false,
runFromProtectedPagesOnly=false,
handleSectionTag=false,
alwaysCacheResults=false,
maxQueryTime=10000,
queryCacheTime=0,
},
},
},
TrackingCategories={
"dpl-tag-tracking-category","dpl-intersection-tracking-category","dpl-parserfunc-tracking-category","dplnum-parserfunc-tracking-category","dplvar-parserfunc-tracking-category","dplreplace-parserfunc-tracking-category","dplchapter-parserfunc-tracking-category","dplmatrix-parserfunc-tracking-category",},
composer="universal-omega/dynamic-page-list3",
repository="https://github.com/Universal-Omega/DynamicPageList3.git",
},
EmailPage={
name="EmailPage",
version="3.0.0",
["license-name"]="GPL-2.0-or-later",
author={
"[https://organicdesign.nz/User:Nad Aran Dunkley]","[https://absorto.dev Igor Absorto]","[https://professional.wiki/en/mediawiki-development Professional Wiki]",},
url="https://www.mediawiki.org/wiki/Extension:EmailPage",
descriptionmsg="ea-desc",
requires={
MediaWiki="&gt;= 1.39.0",
platform={
php="&gt;= 8.0",
},
},
type="specialpage",
callback="EmailPage::onRegistration",
config={
EmailPageGroup={
description="Defines the user group allowd to send emails. An empty string means that anyone can send",
value="sysop",
},
EmailPageCss={
description="Whether or not a minimal CSS page should be embedded in the email, e.g., \"monobook/main.css\" without portlets, actions etc.",
value=false,
},
EmailPageAllowRemoteAddr={
description="Defines that anonymous sending from these addresses is done",
value={
"127.0.0.1",},
},
EmailPageAllowAllUsers={
description="Whether or not to allow sending to all users, i.e., the \"user\" group",
value=false,
},
EmailPageToolboxLink={
description="Whether or not a link should be shown in the sidebar toolbox",
value=true,
},
EmailPageActionLink={
description="Whether or not a link should be shown as actions link",
value=true,
},
EmailPageSepPattern={
description="Defines the regular expression for splitting emails",
value="|[\r\n ,;*]+|",
},
EmailPageNoLinks={
description="Whether or not to change links in message to spans if set",
value=false,
},
EmailPageCharSet={
description="Defines the character set of the message. Either \"us-ascii\", \"iso-8859-1\" or \"utf-8\"",
value="utf-8",
},
},
ExtensionMessagesFiles={
EmailPageAlias="EmailPage.alias.php",
},
SpecialPages={
EmailPage="SpecialEmailPage",
},
repository="https://github.com/debtcompliance/EmailPage.git",
},
EmbedScratch={
name="EmbedScratch",
version="4.0.0",
author={
"Apple502j",},
url="https://github.com/InternationalScratchWiki/mw-embedScratch",
descriptionmsg="embedscratch-desc",
["license-name"]="GPLv3",
type="parserhook",
namespaces={
},
Hooks={
ParserFirstCallInit="main",
},
HookHandlers={
main={
class="EmbedScratch",
},
},
requires={
MediaWiki="&gt;= 1.35.0",
},
repository="https://github.com/InternationalScratchWiki/mw-embedScratch.git",
},
EmbedVideo={
name="EmbedVideo",
version="3.4.0",
author={
"[https://www.mediawiki.org/wiki/User:Octfx Octfx]","[https://www.mediawiki.org/wiki/User:Alistair3149 Alistair3149]","Jim R. Wilson","Andrew Whitworth","Alexia E. Smith","Cameron M. Chunn",},
url="https://github.com/StarCitizenWiki/mediawiki-extensions-EmbedVideo",
descriptionmsg="embedvideo-description",
["license-name"]="MIT",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
platform={
php="&gt;=8.0",
["ext-curl"]="*",
},
},
ExtensionMessagesFiles={
EmbedVideoMagic="EmbedVideo.i18n.magic.php",
},
APIModules={
embedvideo="MediaWiki\\Extension\\EmbedVideo\\ApiEmbedVideo",
},
config={
EmbedVideoAddFileExtensions={
description="Adds 'flac', 'mkv', 'mov', 'mp3', 'mp4', 'oga', 'ogg', 'ogv', 'wav', 'webm' to $wgFileExtensions.",
value=true,
},
EmbedVideoEnableVideoHandler={
description="Enables the video handler which displays local videos using the html5 &lt;video&gt; tag.",
value=true,
},
EmbedVideoLazyLoadLocalVideos={
description="Sets 'preload=none' on every &lt;video&gt; tag.",
value=false,
},
EmbedVideoUseEmbedStyleForLocalVideos={
description="Styles local videos like they are embedded",
value=true,
},
EmbedVideoEnableAudioHandler={
description="Enables the audio handler which displays local videos using the html5 &lt;audio&gt; tag.",
value=true,
},
EmbedVideoMinWidth={
description="Minimum width of the embedded iframe.",
value=nil,
},
EmbedVideoMaxWidth={
description="Maximum width of the embedded iframe.",
value=nil,
},
EmbedVideoDefaultWidth={
description="Default fallback width",
value=640,
},
FFProbeLocation={
description="Location to ffprobe",
value="/usr/bin/ffprobe",
},
EmbedVideoEnabledServices={
description="List of services to enable, if empty, enable all",
value={
},
},
EmbedVideoRequireConsent={
description="Explicitly require consent by only loading the iframe after the user clicks play",
value=true,
},
EmbedVideoFetchExternalThumbnails={
description="Fetch video thumbnails by querying the respective external oembed endpoints. This results in a http call.",
value=true,
},
EmbedVideoShowPrivacyNotice={
description="Require the user to acknowledge that the external service may collect user data, after giving consent",
value=true,
},
},
ConfigRegistry={
EmbedVideo="GlobalVarConfig::newInstance",
},
ExtensionFunctions={
"MediaWiki\\Extension\\EmbedVideo\\EmbedVideoHooks::setup",},
HookHandlers={
EmbedVideoHooks={
class="MediaWiki\\Extension\\EmbedVideo\\EmbedVideoHooks",
services={
"ConfigFactory","RepoGroup","MainWANObjectCache",},
},
},
Hooks={
ParserFirstCallInit="EmbedVideoHooks",
BeforePageDisplay="EmbedVideoHooks",
ArticlePurge="EmbedVideoHooks",
},
composer="starcitizenwiki/embedvideo",
repository="https://github.com/StarCitizenWiki/mediawiki-extensions-EmbedVideo.git",
},
Expect={
name="Expect",
version="0.1.0",
author={
"John Erling Blad",},
url="https://www.mediawiki.org/wiki/Extension:Expect",
descriptionmsg="expect-desc",
["license-name"]="GPL-2.0",
type="other",
requires={
MediaWiki="&gt;= 1.33",
extensions={
Scribunto="*",
},
},
config_prefix="wgExpect",
config={
},
callback="Expect\\Hooks::onExtensionSetup",
Hooks={
ScribuntoExternalLibraryPaths={
"Expect\\Hooks::onRegisterScribuntoExternalLibraryPaths",},
},
repository="https://git.wikimedia.org/tree/mediawiki%2Fextensions%2FBootstrap",
composer="jeblad/expect",
},
ExplicitImages={
name="ExplicitImages",
version="1.0",
author="[https://www.wikiskripta.eu/w/User:Josmart Josef Martiňák]",
url="https://bitbucket.org/wikiskripta/explicitimages",
descriptionmsg="explicitimages-desc",
["license-name"]="MIT",
type="other",
status="stable",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
BeforePageDisplay="ExplicitImagesHooks::blurImages",
},
repository="https://bitbucket.org/wikiskripta/explicitimages",
},
["External Content"]={
name="External Content",
version="2.0.1",
["license-name"]="GPL-2.0-or-later",
author={
"[https://www.EntropyWins.wtf/mediawiki Jeroen De Dauw]","[https://professional.wiki/ Professional.Wiki]",},
url="https://github.com/ProfessionalWiki/ExternalContent",
descriptionmsg="external-content-desc",
requires={
MediaWiki="&gt;= 1.35.0",
platform={
php="&gt;= 8.0",
},
},
config={
ExternalContentRenderMarkdownByDefault={
description="Render markdown files rather than showing the markdown in a codeblock, unless the file is explicitly marked as code.",
value=true,
},
ExternalContentDomainWhitelist={
description="List of allowed domains to embed content from. Leave empty to have no restriction.",
value={
},
},
ExternalContentFileExtensionWhitelist={
description="List of allowed file extensions. Empty array for no restriction.",
value={
},
},
ExternalContentEnableEmbedFunction={
description="If the #embed parser function should be enabled.",
value=true,
},
ExternalContentEnableBitbucketFunction={
description="If the #bitbucket parser function should be enabled.",
value=true,
},
ExternalContentBasicAuthCredentials={
description="Per-domain Basic Auth credentials.",
value={
},
},
},
ExtensionMessagesFiles={
NetworkParserFunction="i18n/_MagicWords.php",
},
Hooks={
ParserFirstCallInit="ProfessionalWiki\\ExternalContent\\EntryPoints\\MediaWikiHooks::onParserFirstCallInit",
ParserTestGlobals="ProfessionalWiki\\ExternalContent\\EntryPoints\\MediaWikiHooks::onParserTestGlobals",
SearchDataForIndex="ProfessionalWiki\\ExternalContent\\EntryPoints\\MediaWikiHooks::onSearchDataForIndex",
SearchIndexFields="ProfessionalWiki\\ExternalContent\\EntryPoints\\MediaWikiHooks::onSearchIndexFields",
},
TrackingCategories={
"external-content-tracking-category","external-content-broken-tracking-category",},
composer="professional-wiki/external-content",
repository="https://github.com/ProfessionalWiki/ExternalContent.git",
},
ExtraMagic={
name="ExtraMagic",
version="4.0.0",
["license-name"]="GPL-2.0-or-later",
author={
"[https://organicdesign.nz/User:Nad Aran Dunkley]","[https://absorto.dev Igor Absorto]","[https://professional.wiki/en/mediawiki-development Professional Wiki]",},
url="https://organicdesign.nz/Extension:ExtraMagic",
description="Adds useful variables and parser functions",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
platform={
php="&gt;= 8.0",
},
},
callback="ExtraMagic::onRegistration",
Hooks={
MagicWordwgVariableIDs="ExtraMagic::onMagicWordwgVariableIDs",
ParserGetVariableValueSwitch="ExtraMagic::onParserGetVariableValueSwitch",
},
ExtensionMessagesFiles={
ExtraMagic="ExtraMagic.i18n.magic.php",
},
repository="https://github.com/debtcompliance/ExtraMagic.git",
},
FacetedCategory={
name="FacetedCategory",
version="1.0.0",
author="[https://femiwiki.com/ Femiwiki Team]",
url="https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:FacetedCategory",
descriptionmsg="facetedcategory-desc",
["license-name"]="AGPL-3.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.38.0",
extensions={
CategoryTree="*",
},
},
HookHandlers={
Main={
class="MediaWiki\\Extension\\FacetedCategory\\Hooks\\Main",
services={
},
},
RecursiveCategory={
class="MediaWiki\\Extension\\FacetedCategory\\Hooks\\RecursiveCategory",
services={
"DBLoadBalancer","JobQueueGroup",},
},
},
Hooks={
BeforePageDisplay="Main",
CategoryAfterPageAdded="RecursiveCategory",
ContentAlterParserOutput="RecursiveCategory",
MakeGlobalVariablesScript="RecursiveCategory",
OutputPageParserOutput="RecursiveCategory",
SpecialSearchResultsPrepend="Main",
},
SpecialPages={
FacetedCategories={
class="MediaWiki\\Extension\\FacetedCategory\\Special\\SpecialFacetedCategories",
services={
"LinkBatchFactory","DBLoadBalancerFactory",},
},
CategoryIntersectionSearch="MediaWiki\\Extension\\FacetedCategory\\Special\\SpecialCategoryIntersectionSearch",
},
ExtensionMessagesFiles={
FacetedCategoryAlias="FacetedCategory.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/FacetedCategory",
},
Fagocytoza={
name="Fagocytoza",
author="Ostrzyciel",
["license-name"]="GPL-2.0+",
version="0.1.3",
url="https://gitlab.com/nonsensopedia/extensions/fagocytoza",
namemsg="fagocytoza",
descriptionmsg="fagocytoza-desc",
SpecialPages={
Wolne_strony_Gry="SpecialWolneStronyGry",
},
ExtensionMessagesFiles={
FagocytozaAlias="Fagocytoza.alias.php",
},
Hooks={
GetPreferences="FagocytozaHooks::onGetPreferences",
SidebarBeforeOutput="FagocytozaHooks::onSidebarBeforeOutput",
},
type="other",
repository="https://gitlab.com/nonsensopedia/extensions/fagocytoza.git/",
},
FancyModeration={
name="FancyModeration",
author="Ostrzyciel",
["license-name"]="GPL-2.0+",
version="0.5.2",
namemsg="fancyModeration",
descriptionmsg="fancyModeration-desc",
requires={
MediaWiki="&gt;= 1.37.0",
},
config={
FModPatrolDeletedFiles=true,
},
DefaultUserOptions={
userollbackwithreason=true,
usequickpatrollists=true,
usequickpatrolnewpages=true,
usequickpatroldiffs=true,
usequickpatrolfooter=true,
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
Hooks={
ArticleDeleteComplete="FancyModeration\\Hooks\\Hooks::onArticleDeleteComplete",
EnhancedChangesListModifyBlockLineData="FancyModeration\\Hooks\\EclHooks::onListModifyBlockLineData",
EnhancedChangesListModifyLineData="FancyModeration\\Hooks\\EclHooks::onListModifyLineData",
["EnhancedChangesList::getLogText"]="FancyModeration\\Hooks\\EclHooks::onGetLogText",
DifferenceEngineMarkPatrolledLink="FancyModeration\\Hooks\\PatrolHooks::onDifferenceEngineMarkPatrolledLink",
ArticleViewFooter="FancyModeration\\Hooks\\PatrolHooks::onArticleViewFooter",
NewPagesLineEnding="FancyModeration\\Hooks\\PatrolHooks::onNewPagesLineEnding",
GetPreferences="GetPreferences",
LinkerGenerateRollbackLink="RollbackLink",
},
HookHandlers={
GetPreferences={
class="FancyModeration\\Hooks\\GetPreferences",
},
RollbackLink={
class="FancyModeration\\Hooks\\LinkerGenerateRollbackLink",
services={
"FmodPreferencesService",},
},
},
APIModules={
["fmod-patrol"]={
class="FancyModeration\\Api\\ApiFmodPatrol",
services={
"RevisionStore",},
},
},
type="other",
repository="https://gitlab.com/nonsensopedia/extensions/fancymoderation.git/",
},
FeedbackUs={
name="FeedbackUs",
version="2.1",
author={
"[https://www.wikiskripta.eu/w/User:Josmart Josef Martiňák]","[https://www.wikiskripta.eu/w/User:Slepi Petr Kajzar]",},
url="https://bitbucket.org/wikiskripta/feedbackus",
descriptionmsg="feedbackus-desc",
type="specialpage",
["license-name"]="MIT",
status="stable",
requires={
MediaWiki="&gt;= 1.36.0",
},
SpecialPages={
FeedbackUs="FeedbackUs",
ArticleScores="ArticleScores",
},
Hooks={
LoadExtensionSchemaUpdates="FeedbackUsHooks::FeedbackUsUpdateSchema",
BeforePageDisplay="FeedbackUsHooks::activateFB",
},
config={
namespaces={
value={
0,100,102,},
description="Numbers of namespaces we want to give this kind of feedback, separated by comma.",
},
pageCount={
value=5,
description="Pager. Default 50 comments on page.",
},
otrs={
value=true,
description="If true, comments are sent to email address in otrsAddress. Also info about closing ticket.",
},
otrsAddress={
value="info@wikiskripta.eu",
description="Email address checked by OTRS.",
},
articleScoresDefaultItemsCount={
value=100,
description="Default number of scored articles showed at Special:ArticleScores.",
},
articleScoresDefaultReviewersCountFROM={
value=5,
description="Default number of reviewers - FROM.",
},
articleScoresDefaultReviewersCountTO={
value=0,
description="Default number of reviewers - TO (0=unlimited).",
},
},
repository="https://bitbucket.org/wikiskripta/feedbackus.git",
},
FilterAccess={
name="FilterAccess",
version="1.1",
author="[https://www.wikiskripta.eu/w/User:Josmart Josef Martiňák]",
url="https://bitbucket.org/wikiskripta/filteraccess",
descriptionmsg="filteraccess-desc",
["license-name"]="MIT",
type="other",
status="stable",
requires={
MediaWiki="&gt;= 1.29.0",
},
repository="https://bitbucket.org/wikiskripta/filteraccess",
},
FinnFrameNet={
name="FinnFrameNet",
version="1.2.0",
author={
"Niklas Laxström",},
url="https://github.com/Nikerabbit/mediawiki-extensions-FinnFrameNet",
description="Code to import and display FinnFrameNet and TransFrameNet in a MediaWiki",
["license-name"]="GPL-2.0-or-later",
Hooks={
BeforePageDisplay="FinnFrameNet\\Hooks::onBeforePageDisplay",
ContentAlterParserOutput="FinnFrameNet\\Hooks::onContentAlterParserOutput",
},
composer="mediawiki/finnframenet",
repository="https://github.com/Nikerabbit/mediawiki-extensions-FinnFrameNet.git",
},
FlexForm={
name="FlexForm",
version="2.2.2",
author={
"[https://www.wikibase-solutions.com/author/charlot Sen-Sai]","[https://www.wikibase-solutions.com/author/marijn Marijn]",},
url="https://www.mediawiki.org/wiki/Extension:FlexForm",
descriptionmsg="flexform-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
ExtensionMessagesFiles={
WBFormAlias="FlexForm.i18n.alias.php",
},
APIModules={
flexform="ApiFlexForm",
FlexFormBot="ApiBotFlexForm",
},
Hooks={
LoadExtensionSchemaUpdates="FlexForm\\Core\\Sql::addTables",
ParserFirstCallInit={
"FlexFormHooks::onParserFirstCallInit",},
PageSaveComplete="FlexForm\\Core\\Sql::pageSaved",
AdminLinks={
"FlexFormHooks::addToAdminLinks",},
AfterFinalPageOutput={
"FlexFormHooks::onAfterFinalPageOutput",},
SkinTemplateNavigation={
"FlexForm\\Core\\Rights::hideSource",},
getUserPermissionsErrors={
"FlexForm\\Core\\Rights::disableActions",},
},
ServiceWiringFiles={
"FlexForm.ServiceWiring.php",},
config={
FlexFormConfig={
file_temp_path="",
rc_site_key="",
rc_secret_key="",
sec_key="",
secure=true,
auto_save_interval=30000,
auto_save_after_change=3000,
auto_save_btn_on="Autosave On",
auto_save_btn_off="Autosave Off",
use_smtp=false,
smtp_host="",
smtp_authentication=true,
smtp_username="",
smtp_password="",
smtp_secure="TLS",
smtp_port=587,
debug=false,
FlexFormDefaultTheme="Plain",
can_create_user=false,
["create-seo-titles"]=false,
filter_input_tags=false,
renderonlyapprovedforms=true,
renderi18nErrorInsteadofImageForApprovedForms=true,
userscaneditallpages=false,
allowedGroups={
"sysop",},
hideEdit=true,
["pandoc-install-path"]="",
forceNullEdit=true,
},
},
SpecialPages={
FlexForm="\\FlexForm\\Specials\\SpecialFlexForm",
},
composer="open-csp/flex-form",
repository="https://github.com/Open-CSP/FlexForm.git",
},
FlowCounterTalks={
name="Flow Counter Talks",
author="Solene",
version="1.0.0",
url="https://www.mediawiki.org/wiki/Extension:FlowCounterTalks",
descriptionmsg="Flow Counter Talks",
["license-name"]="GPL-2.0+",
type="parserhook",
callback="FlowCounterTalks\\Hook::onExtension",
Hooks={
BeforePageDisplay={
"FlowCounterTalks\\Hook::onBeforePageDisplay",},
SkinTemplateNavigation={
"FlowCounterTalks\\Hook::onSkinTemplateNavigation",},
APIFlowAfterExecute={
"FlowCounterTalks\\Hook::onAPIFlowAfterExecute",},
},
composer="wikifab/flow-counter-talks",
repository="https://github.com/Wikifab/FlowCounterTalks",
},
FontAwesome={
name="FontAwesome",
version="2.0.0",
type="other",
author={
"[https://www.mediawiki.org/wiki/User:F.trott Stephan Gambke]","[https://professional.wiki/ Professional Wiki]",},
url="https://www.mediawiki.org/wiki/Extension:FontAwesome",
descriptionmsg="fontawesome-desc",
["license-name"]="GPL-3.0-or-later",
requires={
MediaWiki="&gt;=1.35",
},
ExtensionMessagesFiles={
FontAwesomeMagic="src/FontAwesome.magic.php",
},
config={
FaRenderMode={
value="webfonts",
description="How should icons be rendered? (see https://fontawesome.com/how-to-use/on-the-web/other-topics/performance)",
},
},
callback="\\FontAwesome\\FontAwesome::init",
repository="https://github.com/ProfessionalWiki/FontAwesome",
composer="mediawiki/font-awesome",
},
FormCompletions={
name="FormCompletions",
version="1.0.0-alpha",
author={
"[http://hexmode.com/ Mark A. Hershberger]",},
url="https://www.mediawiki.org/wiki/Extension:FormCompletions",
descriptionmsg="formcompletions-desc",
["license-name"]="GPL-3.0+",
type="other",
APIModules={
fcautocomplete="MediaWiki\\Extensions\\FormCompletions\\API",
},
config={
["_prefix"]="FormCompletions",
MapPage="MediaWiki:Completion-map.json",
CacheTime=300,
Debug=false,
AvailableCompletions={
wikipage="MediaWiki\\Extensions\\FormCompletions\\Completer\\WikiPage",
},
},
composer="mediawiki/form-completions",
repository="https://github.com/mwstake/mediawiki-extensions-FormCompletions",
},
GND={
name="GND",
type="wikibase",
version="2021-08-05",
author={
"[https://www.EntropyWins.wtf/mediawiki Jeroen De Dauw]","[https://professional.wiki/ Professional.Wiki]",},
url="https://github.com/ProfessionalWiki/GND",
descriptionmsg="gnd-desc",
requires={
MediaWiki="&gt;= 1.35.0",
extensions={
WikibaseRepository="*",
},
},
ExtensionMessagesFiles={
GndMagic="i18n/magic/MagicWords.php",
},
Hooks={
ParserFirstCallInit="DNB\\GND\\GndDokuFunction::onParserFirstCallInit",
},
RestRoutes={
{
path="/gnd/doku/v1/datafields",
method="GET",
factory="DNB\\GND\\DokuApi::factory",
},},
config={
},
repository="https://github.com/ProfessionalWiki/GND/issues",
composer="dnb/mediawiki-gnd",
},
GTag={
name="GTag",
namemsg="gtag-extensionname",
version="1.3.0",
author={
"Ryan Schmidt",},
url="https://mwusers.org/files/file/4-gtag/",
["license-name"]="MIT",
descriptionmsg="gtag-desc",
type="other",
config={
GTagAnalyticsId={
value="",
description="Google Analytics account ID (UA-xxxxxxxx-x or G-xxxxxxxx)",
decriptionmsg="gtag-config-analyticsid",
},
GTagAnonymizeIP={
value=false,
description="Anonymize IP addresses sent to Google Analytics",
descriptionmsg="gtag-config-anonymizeip",
},
GTagEnableTCF={
value=false,
description="Enable support for the IAB Transparency &amp; Consent Framework",
descriptionmsg="gtag-config-enabletcf",
},
GTagHonorDNT={
value=true,
description="Honor the DNT header indicating a user does not wish to be tracked",
decriptionmsg="gtag-config-honordnt",
},
GTagTrackSensitivePages={
value=true,
description="Include tracking code on potentially sensitive pages such as UserLogin and Preferences",
decriptionmsg="gtag-config-tracksensitivepages",
},
},
Hooks={
BeforePageDisplay="GTagHooks::onBeforePageDisplay",
},
AvailableRights={
"gtag-exempt",},
requires={
MediaWiki="&gt;= 1.35.0",
},
repository="https://github.com/skizzerz/mediawiki-GTag",
},
GlobalStats={
name="GlobalStats",
version="1.2.1",
author={
"[https://www.wikiskripta.eu/w/User:Josmart Josef Martiňák]","[https://www.wikiskripta.eu/w/User:Slepi Petr Kajzar]",},
url="https://bitbucket.org/wikiskripta/globalstats",
description="Global statistics of this Wiki.",
descriptionmsg="globalstats-desc",
type="specialpage",
["license-name"]="MIT",
status="stable",
requires={
MediaWiki="&gt;= 1.36.0",
},
SpecialPages={
GlobalStats="GlobalStats",
},
repository="https://bitbucket.org/wikiskripta/globalstats.git",
},
Google_Tag_Manager={
name="GoogleTagManager",
version="1.0",
author={
"Felix Kaiser","Tom Hutchison",},
["license-name"]="BSD-2-Clause",
url="https://www.mediawiki.org/wiki/Extension:Google_Tag_Manager",
descriptionmsg="googletagmanager-desc",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
SkinAfterBottomScripts="TagManager::onSkinAfterBottomScripts",
},
AvailableRights={
"noanalytics",},
GroupPermissions={
sysop={
noanalytics=true,
},
bot={
noanalytics=true,
},
},
repository="https://github.com/Hutchy68/GoogleTagManager",
},
HeaderFooter={
name="HeaderFooter",
version="4.0.0",
author="Jean-Lou Dupont, James Montalvo, Douglas Mason",
url="https://www.mediawiki.org/wiki/Extension:HeaderFooter",
descriptionmsg="headerfooter-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
APIModules={
getheaderfooter="ApiGetHeaderFooter",
},
Hooks={
OutputPageParserOutput="HeaderFooter::hOutputPageParserOutput",
ResourceLoaderGetConfigVars="HeaderFooter::onResourceLoaderGetConfigVars",
GetDoubleUnderscoreIDs="HeaderFooter::onGetDoubleUnderscoreIDs",
},
ExtensionMessagesFiles={
HeaderFooterMagic="languages/HeaderFooter.i18n.magic.php",
},
config_prefix="egHeaderFooter",
config={
EnableAsyncHeader={
value=false,
},
EnableAsyncFooter={
value=false,
},
},
composer="mediawiki/header-footer",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/HeaderFooter",
},
IdGenerator={
name="IdGenerator",
version="1.0.0",
author={
"[https://professional.wiki/ Professional.Wiki]","[https://www.entropywins.wtf/mediawiki Jeroen De Dauw]",},
url="https://github.com/ProfessionalWiki/IdGenerator#id-generator",
namemsg="id-generator-name",
descriptionmsg="id-generator-desc",
["license-name"]="BSD-3-Clause",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
config={
},
ExtensionMessagesFiles={
IdGeneratorMagic="i18n/magic/MagicWords.php",
},
ExtensionFunctions={
"IdGenerator\\IdGeneratorSetup::onExtensionFunction",},
repository="https://github.com/ProfessionalWiki/IdGenerator",
composer="professional-wiki/id-generator",
},
IFrameTag={
name="IFrameTag",
version="1.0.4",
author={
"[//hexmode.com Mark A. Hershberger]",},
descriptionmsg="iframe-desc",
requires={
MediaWiki="&gt;= 1.34.0",
platform={
php="&gt;= 7.3",
},
},
type="parserhook",
["license-name"]="GPL-3.0+",
Hooks={
ParserFirstCallInit="MediaWiki\\Extension\\IFrameTag\\Handler::register",
},
config_prefix="iFrame",
config={
Domains={
value={
},
descriptionmsg="iframe-config-hosts",
path=false,
public=true,
},
OnWikiConfig={
value=true,
descriptionmsg="iframe-config-onwikiconfig",
path=false,
public=true,
},
},
composer="mediawiki/iframe-tag",
repository="https://github.com/hexmode/mediawiki-iframe.git",
},
ImageAnnotator={
name="ImageAnnotator",
version="1.1.0",
author={
"Pierre Boutet",},
url="https://github.com/wikifab/ImageAnnotator",
descriptionmsg="imageAnnotator-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.28.0",
extensions={
["Page Forms"]="*",
},
},
callback="ImageAnnotator\\Hooks::onRegistration",
ExtensionFunctions={
"ImageAnnotator\\Hooks::initialize",},
config={
["ImageAnnotator-areaClasses"]="imageAnnotator",
ImageAnnotatorRemoveExif=false,
ImageAnnotatorOldWgServers={
},
},
ExtensionMessagesFiles={
ImageAnnotatorMagic="ImageAnnotator.i18n.php",
},
APIModules={
iaThumbs="ImageAnnotator\\ApiImageAnnotatorThumb",
},
SpecialPages={
AnnotatedImageMaintenance="ImageAnnotator\\SpecialAnnotatedImageMaintenance",
},
Hooks={
BeforePageDisplay={
"ImageAnnotator\\Hooks::onBeforePageDisplay",},
ParserFirstCallInit={
"ImageAnnotator\\Hooks::onParserFirstCallInit",},
["FormEdit::showEditForm:initial"]={
"ImageAnnotator\\Hooks::start",},
SemanticJsonExportBeforeSerializePage={
"ImageAnnotator\\Hooks::onSemanticJsonExportBeforeSerializePage",},
LoadExtensionSchemaUpdates="ImageAnnotator\\Hooks::onLoadExtensionSchemaUpdates",
},
composer="wikifab/image-annotator",
repository="https://github.com/Wikifab/mediawiki-extension-ImageAnnotator",
},
ImageSizeInfoFunctions={
name="ImageSizeInfoFunctions",
version="1.1.1",
author={
"Dario de Judicibus",},
url="http://www.mediawiki.org/wiki/Extension:ImageSizeInfoFunctions",
descriptionmsg="imagesizeinfofunctions_description",
type="other",
ExtensionMessagesFiles={
ImageSizeInfoFunctions="ImageSizeInfoFunctions.i18n.php",
ImageSizeInfoFunctionsMagic="ImageSizeInfoFunctions.i18n.magic.php",
},
Hooks={
ParserFirstCallInit={
"ImageSizeInfoFunctionsHooks::onParserFirstCallInit",},
ParserClearState={
"ImageSizeInfoFunctionsHooks::onParserClearState",},
},
config={
MessagesDir={
ImageSizeInfoFunctions="i18n",
},
},
repository="https://github.com/HydraWiki/ImageSizeInfoFunctions",
},
IncidentReporting={
name="IncidentReporting",
author={
"John Lewis","Universal Omega",},
url="https://github.com/miraheze/IncidentReporting",
version="1.1.9",
descriptionmsg="incidentreporting-desc",
["license-name"]="GPL-3.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.38.0",
},
AvailableRights={
"viewincidents","editincidents",},
SpecialPages={
IncidentReports="SpecialIncidentReports",
},
LogActionsHandlers={
["incidentreporting/modify"]="LogFormatter",
},
LogTypes={
"incidentreporting",},
ExtensionMessagesFiles={
IncidentReportingAliases="includes/IncidentReportingAliases.php",
},
config={
IncidentReportingDatabase={
description="Database name where all data is stored.",
public=true,
value=false,
},
IncidentReportingServices={
description="Human readable list of service components with page URLs. Set to false for no link. Format: 'name' =&gt; 'url'.",
public=true,
value=false,
},
IncidentReportingTaskUrl={
description="Full url of task tracking software minus the task ID. e.g. https://phabricator.miraheze.org/",
public=true,
value=false,
},
},
Hooks={
LoadExtensionSchemaUpdates={
"IncidentReportingHooks::onLoadExtensionSchemaUpdates",},
},
ConfigRegistry={
incidentreporting="GlobalVarConfig::newInstance",
},
composer="miraheze/incident-reporting",
repository="https://github.com/miraheze/IncidentReporting",
},
KDELogin={
name="KDELogin",
version="0.0.1",
author={
"Ingo Malchow",},
url="",
descriptionmsg="kdelogin-desc",
["license-name"]="MIT",
type="specialpage",
ExtensionMessagesFiles={
KDELoginAlias="KDELogin.alias.php",
},
Hooks={
PersonalUrls={
"KDELoginHooks::onPersonalUrls",},
UserLogout={
"KDELoginHooks::onUserLogout",},
LoadExtensionSchemaUpdates={
"KDELoginHooks::onLoadExtensionSchemaUpdates",},
},
SpecialPages={
KDELogin="SpecialKDELogin",
},
composer="mediawiki/phabricatorlogin",
repository="https://invent.kde.org/websites/mykde-mediawiki.git/",
},
["Kotus data set tools"]={
name="Kotus data set tools",
version="1.0.0",
author={
"Niklas Laxström",},
url="https://github.com/Nikerabbit/mediawiki-extensions-Kotus",
description="Kotus data set tools",
["license-name"]="GPL-2.0-or-later",
composer="mediawiki/kotus",
repository="https://github.com/Nikerabbit/mediawiki-extensions-Kotus.git",
},
["Language Namespaces"]={
name="Language Namespaces",
version="1.0.0",
author={
"Niklas Laxström",},
url="https://github.com/Nikerabbit/mediawiki-extensions-LanguageNamespaces",
description="Language-dependent namespace names",
["license-name"]="GPL-2.0-or-later",
Hooks={
MediaWikiServices="LanguageNamespaces::onMediaWikiServices",
LocalisationCacheRecache="LanguageNamespaces::onLocalisationCacheRecache",
},
config={
wgLanguageNamespaces={
},
},
composer="mediawiki/language-namespaces",
repository="https://github.com/Nikerabbit/mediawiki-extensions-LanguageNamespaces.git",
},
["Latest Discussions"]={
name="Latest Discussions",
author="Julien Leperlier",
descriptionmsg="latestdiscussions-desc",
version="1.0",
["license-name"]="GPL-2.0+",
type="other",
SpecialPages={
},
ExtensionMessagesFiles={
LatestDiscussionsMagic="LatestDiscussions.i18n.php",
},
Hooks={
ParserFirstCallInit={
"LatestDiscussions::onParserSetup",},
},
composer="wikifab/latest-discussions",
repository="https://github.com/Wikifab/LatestDiscussions.git",
},
ListDuplicateUsers={
name="ListDuplicateUsers",
version="1.0.0",
author={
"David Wong","...",},
url="https://www.mediawiki.org/wiki/Extension:ListDuplicateUsers",
descriptionmsg="listduplicateusers-description",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.25.0",
},
AvailableRights={
"listduplicateusers",},
SpecialPages={
ListDuplicateUsers="SpecialListDuplicateUsers",
},
repository="https://github.com/PowerpediaInterns/mediawiki-extensions-ListDuplicateUsers",
},
ListTransclusions={
name="ListTransclusions",
author="Patrick Westerhoff",
version="2.1",
url="http://mediawiki.org/wiki/Extension:ListTransclusions",
["license-name"]="MPL-2.0",
description="Lists all transcluded templates and used images of a given page",
descriptionmsg="listtransclusions-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.25.0",
},
ExtensionMessagesFiles={
ListTransclusionsAlias="ListTransclusions.alias.php",
},
Hooks={
SidebarBeforeOutput="ListTransclusionsHooks::onSidebarBeforeOutput",
},
SpecialPages={
ListTransclusions="SpecialListTransclusions",
},
repository="https://github.com/poke/mediawiki-ListTransclusions.git",
},
LuaCache={
name="LuaCache",
version="1.0.0",
author={
"Robert Nix",},
url="https://gitlab.com/HydraWiki/extensions/LuaCache",
descriptionmsg="luacache-desc",
["license-name"]="MIT",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ScribuntoExternalLibraries={
"LuaCache\\Hooks::onScribuntoExternalLibraries",},
},
repository="https://gitlab.com/hydrawiki/extensions/LuaCache.git",
},
["Lüüdi"]={
name="Lüüdi",
version="2020-07-04",
author={
"Niklas Laxström",},
url="https://sanat.csc.fi/wiki/L%C3%BC%C3%BCdi",
descriptionmsg="sanat-lud-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
Hooks={
BeforePageDisplay="MediaWiki\\Extensions\\Lud\\Hooks::onBeforePageDisplay",
ParserFirstCallInit="MediaWiki\\Extensions\\Lud\\Hooks::onParserFirstCallInit",
},
ExtensionMessagesFiles={
["Lud-Magic"]="MagicWords.i18n.php",
},
repository="https://github.com/Nikerabbit/mediawiki-extensions-Lud.git",
},
MABS={
name="MABS",
version="0.1.0",
author={
"Mark A. Hershberger",},
url="https://github.com/hexmode/mabs",
descriptionmsg="mabs-desc",
["license-name"]="GPL v2",
type="specialpage",
ExtensionMessagesFiles={
MABSAlias="src/i18n/Alias.php",
},
GrantPermissions={
mabs={
import=true,
},
},
GrantPermissionGroups={
sysop="mabs",
},
Hooks={
},
requires={
MediaWiki="&gt;= 1.31.0",
},
SpecialPages={
MABS="MediaWiki\\Extension\\MABS\\Special\\MABS",
},
ConfigRegistry={
MABS="MediaWiki\\Extension\\MABS\\Config::newInstance",
},
config_prefix="MABS",
config={
Repo={
descriptionmsg="mabs-repo-depo",
path=true,
value="repo",
},
},
composer="mediawiki/mabs",
repository="https://github.com/hexmode/MABS.git",
},
ManageWiki={
name="ManageWiki",
author={
"Southparkfan","John Lewis","MacFan4000","Reception123","Universal Omega",},
url="https://github.com/miraheze/ManageWiki",
descriptionmsg="managewiki-desc",
["license-name"]="GPL-3.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
CreateWiki="*",
},
},
APIListModules={
wikiconfig="Miraheze\\ManageWiki\\Api\\QueryWikiConfig",
},
APIModules={
modifyserver="Miraheze\\ManageWiki\\Api\\ApiModifyServer",
},
AvailableRights={
"managewiki","managewiki-editdefault","managewiki-restricted",},
DefaultUserOptions={
managewikisidebar=0,
},
SpecialPages={
DeletedWikis="Miraheze\\ManageWiki\\Specials\\SpecialDeletedWikis",
ManageWiki="Miraheze\\ManageWiki\\Specials\\SpecialManageWiki",
ManageWikiDefaultPermissions="Miraheze\\ManageWiki\\Specials\\SpecialManageWikiDefaultPermissions",
},
JobClasses={
MWScriptJob="Miraheze\\ManageWiki\\Jobs\\MWScriptJob",
NamespaceMigrationJob="Miraheze\\ManageWiki\\Jobs\\NamespaceMigrationJob",
},
LogActionsHandlers={
["managewiki/delete"]="LogFormatter",
["managewiki/delete-group"]="LogFormatter",
["managewiki/lock"]="LogFormatter",
["managewiki/namespaces"]="LogFormatter",
["managewiki/namespaces-delete"]="LogFormatter",
["managewiki/rename"]="LogFormatter",
["managewiki/rights"]="LogFormatter",
["managewiki/rights-reset"]="LogFormatter",
["managewiki/settings"]="LogFormatter",
["managewiki/undelete"]="LogFormatter",
["managewiki/unlock"]="LogFormatter",
},
LogTypes={
"managewiki",},
ActionFilteredLogs={
managewiki={
managewikilock={
"lock",},
managewikiunlock={
"unlock",},
namespaces={
"namespaces","namespaces-delete",},
permissions={
"rename","rights","rights-reset","delete-group",},
settings={
"settings",},
wikidelete={
"delete",},
wikiundelete={
"undelete",},
},
},
ExtensionMessagesFiles={
ManageWikiAliases="ManageWikiAliases.php",
},
Hooks={
ContentHandlerForModelID={
"Miraheze\\ManageWiki\\Hooks::onContentHandlerForModelID",},
CreateWikiCreation={
"Miraheze\\ManageWiki\\Hooks::onCreateWikiCreation",},
CreateWikiJsonBuilder={
"Miraheze\\ManageWiki\\Hooks::onCreateWikiJsonBuilder",},
CreateWikiStatePrivate={
"Miraheze\\ManageWiki\\Hooks::onCreateWikiStatePrivate",},
CreateWikiStatePublic={
"Miraheze\\ManageWiki\\Hooks::onCreateWikiStatePublic",},
CreateWikiTables={
"Miraheze\\ManageWiki\\Hooks::onCreateWikiTables",},
GetPreferences={
"Miraheze\\ManageWiki\\Hooks::onGetPreferences",},
LoadExtensionSchemaUpdates={
"Miraheze\\ManageWiki\\Hooks::fnManageWikiSchemaUpdates",},
SidebarBeforeOutput={
"Miraheze\\ManageWiki\\Hooks::fnNewSidebarItem",},
},
config={
ManageWiki={
description="Array of Booleans. Which modules of ManageWiki should be enabled on the wiki.",
public=true,
value={
core=false,
extensions=false,
namespaces=false,
permissions=false,
settings=false,
},
},
ManageWikiExtensions={
description="Array. An array of extensions enabled within the wiki farm.",
public=true,
value={
},
},
ManageWikiExtensionsDefault={
description="Array. An array of default extensions.",
public=true,
value={
},
},
ManageWikiNamespacesAdditional={
description="Array. Additional settings available for namespaces.",
public=true,
value={
},
},
ManageWikiNamespacesDisallowedNames={
description="Array. Namespaces that can not be used.",
public=true,
value={
"special","media",},
},
ManageWikiSettings={
description="Array. An array of settings that can be managed through Special:ManageWiki",
public=true,
value={
},
},
ManageWikiPermissionsAdditionalAddGroups={
description="Array. ManageWiki's version of $wgAddGroups.",
public=true,
value={
},
},
ManageWikiPermissionsAdditionalAddGroupsSelf={
description="Array. ManageWiki's version of $wgGroupsAddToSelf.",
public=true,
value={
},
},
ManageWikiPermissionsAdditionalRemoveGroups={
description="Array. ManageWiki's version of $wgRemoveGroups.",
public=true,
value={
},
},
ManageWikiPermissionsAdditionalRemoveGroupsSelf={
description="Array. ManageWiki's version of $wgGroupsRemoveFromSelf",
public=true,
value={
},
},
ManageWikiPermissionsAdditionalRights={
description="Array. ManageWiki's version of $wgGroupPermissions.",
public=true,
value={
},
},
ManageWikiPermissionsDisallowedGroups={
description="Array. An array of usergroups which ManageWiki can't manage. Will prevent users creating same named groups as well.",
public=true,
value={
},
},
ManageWikiPermissionsDisallowedRights={
description="Array. An array of user rights that ManageWiki can not manage and assign on wiki.",
public=true,
value={
"managewiki-restricted",},
},
ManageWikiPermissionsDefaultPrivateGroup={
description="String. Name of a group to add to private wikis. False disables this function.",
public=true,
value="",
},
ManageWikiPermissionsPermanentGroups={
description="Array. List of user groups that should always exist on the permissions selector.",
public=true,
value={
"*","user","sysop","bureaucrat",},
},
ManageWikiHelpUrl={
description="String. URL of a help page for ManageWiki on the local wiki farm.",
public=true,
value="",
},
ManageWikiForceSidebarLinks={
description="Boolean. Whether to show the ManageWiki links in the side bar to all users. Will show a different message to unprivileged users.",
public=true,
value=false,
},
},
ConfigRegistry={
managewiki="GlobalVarConfig::newInstance",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
callback="Miraheze\\ManageWiki\\Hooks::onRegistration",
composer="miraheze/manage-wiki",
repository="https://github.com/miraheze/ManageWiki.git",
},
Maps={
name="Maps",
version="10.1.1",
author={
"[https://EntropyWins.wtf/mediawiki Jeroen De Dauw]","[https://professional.wiki/ Professional.Wiki]",},
url="https://maps.extension.wiki",
descriptionmsg="maps-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
platform={
php="&gt;= 7.4",
},
},
ExtensionMessagesFiles={
MapsAlias="i18n/aliases/Aliases.php",
MapsMagic="i18n/magic/MagicWords.php",
},
callback="Maps\\MapsRegistration::onRegistration",
ContentHandlers={
GeoJSON="Maps\\GeoJsonPages\\GeoJsonContentHandler",
GeoJson="Maps\\GeoJsonPages\\GeoJsonContentHandler",
},
namespaces={
{
id=420,
constant="NS_GEO_JSON",
name="GeoJson",
subpages=false,
content=false,
defaultcontentmodel="GeoJSON",
},{
id=421,
constant="NS_GEO_JSON_TALK",
name="GeoJson_talk",
subpages=true,
content=false,
defaultcontentmodel="wikitext",
},},
QUnitTestModule={
localBasePath="tests/js/",
remoteExtPath="Maps/tests/js/",
scripts={
"leaflet/GeoJsonTest.js",},
dependencies={
"ext.maps.leaflet.geojson",},
},
repository="https://github.com/ProfessionalWiki/Maps",
composer="mediawiki/maps",
},
MarkImages={
name="MarkImages",
author="Ostrzyciel",
url="https://www.mediawiki.org/wiki/Extension:MarkImages",
["license-name"]="MIT",
version="1.1.2",
namemsg="markImages",
descriptionmsg="markImages-desc",
config={
MarkImagesCategories={
recursive={
},
nonrecursive={
},
},
},
Hooks={
LinksUpdateComplete="MarkImagesHooks::onLinksUpdateComplete",
InfoAction="MarkImagesHooks::onInfoAction",
BeforePageDisplay="MarkImagesHooks::onBeforePageDisplay",
},
type="other",
repository="https://gitlab.com/nonsensopedia/extensions/markimages.git/",
},
Matomo={
name="Matomo",
version="5.0.0",
author={
"Isb1009","[http://www.daschmedia.de DaSch]","[https://www.mediawiki.org/wiki/User:Seb35 Seb35]","[https://github.com/YOUR1 Youri van den Bogert]",},
url="https://www.mediawiki.org/wiki/Extension:Matomo",
description="Adding Matomo Tracking Code",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
config={
MatomoIDSite="",
MatomoURL="",
MatomoIgnoreEditors=false,
MatomoIgnoreSysops=true,
MatomoIgnoreBots=true,
MatomoCustomJS="",
MatomoUsePageTitle=false,
MatomoActionName="",
MatomoDisableCookies=false,
MatomoProtocol="auto",
MatomoUsernameCustomVariable={
},
MatomoTrackUsernames=false,
MatomoJSFileURL=nil,
},
Hooks={
SkinAfterBottomScripts={
"MediaWiki\\Extension\\Matomo\\Hooks::MatomoSetup",},
SpecialSearchResults={
"MediaWiki\\Extension\\Matomo\\Hooks::onSpecialSearchResults",},
SpecialSearchSetupEngine={
"MediaWiki\\Extension\\Matomo\\Hooks::onSpecialSearchSetupEngine",},
},
repository="https://github.com/DaSchTour/piwik-mediawiki-extension",
composer="mediawiki/matomo",
},
MatomoAnalytics={
name="MatomoAnalytics",
author={
"John Lewis","Southparkfan","Universal Omega",},
url="https://github.com/miraheze/MatomoAnalytics",
version="1.1.2",
descriptionmsg="matomoanalytics-desc",
["license-name"]="GPL-3.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.39.0",
},
AvailableRights={
"noanalytics",},
ExtensionMessagesFiles={
MatomoAnalyticsAliases="includes/MatomoAnalyticsAliases.php",
},
SpecialPages={
Analytics="SpecialAnalytics",
},
Hooks={
CreateWikiCreation={
"MatomoAnalyticsHooks::wikiCreation",},
CreateWikiDeletion={
"MatomoAnalyticsHooks::wikiDeletion",},
CreateWikiRename={
"MatomoAnalyticsHooks::wikiRename",},
LoadExtensionSchemaUpdates={
"MatomoAnalyticsHooks::matomoAnalyticsSchemaUpdates",},
SkinAfterBottomScripts={
"MatomoAnalyticsHooks::matomoScript",},
},
config={
MatomoAnalyticsDatabase={
description="String. Database that the 'matomo' table is in.",
public=true,
value=false,
},
MatomoAnalyticsServerURL={
description="String. URL of the server to use for API queries.",
public=true,
value=false,
},
MatomoAnalyticsSiteID={
description="Integer. If not using database, the site number to add all monitoring to.",
public=true,
value=1,
},
MatomoAnalyticsGlobalID={
description="Integer. If tracking more than one site, this is an ID to attach to all wikis for central aggregate statistics.",
public=true,
value=false,
},
MatomoAnalyticsTokenAuth={
description="String. The API Token for authentication when making requests for data.",
public=false,
value=false,
},
MatomoAnalyticsUseDB={
description="Boolean. Whether or not to use the database for tracking site IDs.",
public=true,
value=false,
},
MatomoAnalyticsDisableJS={
description="Boolean. Whether or not to add Javascript tracking code to pages.",
public=true,
value=false,
},
MatomoAnalyticsDisableCookie={
description="Boolean. Whether or not to disable cookies being set by Matomo.",
public=true,
value=false,
},
MatomoAnalyticsForceGetRequest={
description="Boolean. Whether or not you want to foce GET requests which also disables beacon. Reverts back to matomo 3 behaviour of tracking.",
public=true,
value=false,
},
},
ConfigRegistry={
matomoanalytics="GlobalVarConfig::newInstance",
},
composer="miraheze/matomo-analytics",
repository="https://github.com/miraheze/MatomoAnalytics",
},
MediaWikiAuth={
name="MediaWikiAuth",
namemsg="mwa-extensionname",
version="1.5.0",
author={
"Laurence Parry","Jack Phoenix","Kim Schoonover","Ryan Schmidt",},
url="https://www.mediawiki.org/wiki/Extension:MediaWikiAuth",
descriptionmsg="mwa-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
config={
MediaWikiAuthAllowPasswordChange={
value=true,
description="If true, prompts the user to optionally change their password after import.",
descriptionmsg="mwa-config-allowpasswordchange",
public=true,
},
MediaWikiAuthApiUrl={
value="",
description="Remote API endpoint to auth against.",
descriptionmsg="mwa-config-apiurl",
public=false,
},
MediaWikiAuthImportGroups={
value=true,
description="If a boolean, controls whether or not we copy group membership from remote wiki. If an array of strings, we only import the listed groups.",
descriptionmsg="mwa-config-importgroups",
public=true,
},
MediaWikiAuthDisableAccountCreation={
value=false,
description="If true, assume all relevant users already exist locally but with invalid password hashes. When operating in this mode, watchlist, group imports, and edit reattribution do not happen.",
descriptionmsg="mwa-config-disableaccountcreation",
public=true,
},
MediaWikiAuthImportWatchlist={
value=true,
description="Import watchlists via job queue",
descriptionmsg="mwa-config-importwatchlist",
public=true,
},
MediaWikiAuthReattributeEdits={
value=true,
description="Reattribute existing edits by unknown actors via job queue",
descriptionmsg="mwa-config-reattributeedits",
public=true,
},
MediaWikiAuthImportOptions={
value={
"*",},
description="User preferences to import from the remote wiki; use * for all",
descriptionmsg="mwa-config-importoptions",
merge_strategy="provide_default",
public=true,
},
MediaWikiAuthSkipOptions={
value={
},
description="User preferences that should not be imported from the remote wiki",
descriptionmsg="mwa-config-skipoptions",
merge_strategy="provide_default",
public=true,
},
},
AvailableRights={
"mwa-createlocalaccount",},
JobClasses={
populateImportedWatchlist="MediaWikiAuth\\PopulateImportedWatchlistJob",
reattributeImportedEdits="MediaWikiAuth\\ReattributeImportedEditsJob",
},
AuthManagerAutoConfig={
primaryauth={
ExternalWikiPrimaryAuthenticationProvider={
class="MediaWikiAuth\\ExternalWikiPrimaryAuthenticationProvider",
args={
{
authoritative=false,
},},
sort=50,
services={
"DBLoadBalancer","HttpRequestFactory","SkinFactory","TalkPageNotificationManager","UserGroupManager","UserOptionsManager",},
optional_services={
"JobQueueGroupFactory",},
},
},
},
callback="MediaWikiAuth\\Setup::callback",
repository="https://github.com/SkizNet/mediawiki-MediaWikiAuth",
},
MedicalMediaPlayer={
name="MedicalMediaPlayer",
version="1.1",
author="[https://www.wikiskripta.eu/w/User:Josmart Josef Martiňák]",
url="https://bitbucket.org/wikiskripta/medicalmediaplayer",
description="Plays movies from www.medicalmedia.eu",
descriptionmsg="medicalmediaplayer-desc",
type="parserhook",
["license-name"]="MIT",
status="stable",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="MedicalMediaPlayerHooks::registerPlayMMtag",
},
repository="https://bitbucket.org/wikiskripta/medicalmediaplayer",
},
Memcached={
name="Memcached",
version="2.0.0",
author="UA2004",
url="https://www.mediawiki.org/wiki/Extension:Memcached",
descriptionmsg="memcached-desc",
["license-name"]="GPL-3.0+",
type="specialpage",
requires={
MediaWiki="&gt;= 1.31.0",
},
AvailableRights={
"memcached",},
GroupPermissions={
["*"]={
memcached=false,
},
bureaucrat={
memcached=true,
},
},
SpecialPages={
Memcached="MediaWiki\\Extension\\Memcached\\Special",
},
repository="https://gitlab.com/hexmode1/Memcached",
composer="mediawiki/memcached",
},
Mermaid={
name="Mermaid",
version="3.1.1-beta",
author={
"James Hong Kong","Tyler Gibson",},
url="https://github.com/SemanticMediaWiki/Mermaid/",
descriptionmsg="mermaid-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.33",
},
ExtensionMessagesFiles={
MermaidMagic="i18n/extra/Mermaid.magic.php",
},
ServiceWiringFiles={
"src/ServiceWiring.php",},
Hooks={
ParserFirstCallInit="Mermaid\\Hooks::onParserFirstCallInit",
OutputPageParserOutput="Mermaid\\Hooks::onOutputPageParserOutput",
},
config={
DefaultTheme={
value="forest",
},
},
config_prefix="mermaidg",
composer="mediawiki/mermaid",
repository="https://github.com/SemanticMediaWiki/Mermaid",
},
MetaDescriptionTag={
name="MetaDescriptionTag",
version="0.4.0",
author={
"Joshua C. Lerner - joshua&amp;lt;_at_&amp;gt;busytonight.com","Dror S. [FFS] ([http://www.kolzchut.org.il Kol-Zchut])",},
url="http://www.mediawiki.org/wiki/Extension:MetaDescriptionTag",
descriptionmsg="metadescriptiontag-desc",
type="parserhook",
["license-name"]="MIT",
Hooks={
ParserFirstCallInit="MetaDescriptionTagHooks::onParserFirstCallInit",
OutputPageParserOutput="MetaDescriptionTagHooks::onOutputPageParserOutput",
},
repository="https://github.com/kolzchut/mediawiki-extensions-MetaDescriptionTag.git",
},
MetaTags={
name="MetaTags",
version="1.0",
author={
"[https://www.wikiskripta.eu/w/User:Josmart Josef Martiňák]","Luis Diaz",},
url="https://bitbucket.org/wikiskripta/metatags",
description="Add custom meta tags to wiki pages",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
status="stable",
Hooks={
BeforePageDisplay="MetaTagsHooks::addMetaTags",
},
repository="https://bitbucket.org/wikiskripta/metatags",
},
MigrateMyLinks={
name="MigrateMyLinks",
version="1.0.0",
author={
"Jesús Martínez (Ciencia Al Poder)",},
url="https://github.com/ciencia/mediawiki-extensions-MigrateMyLinks",
descriptionmsg="migratemylinks-desc",
["license-name"]="MIT",
type="parserhook",
config={
MigrateMyLinksMaxRevisionId=-1,
MigrateMyLinksDomain="",
},
Hooks={
InternalParseBeforeLinks={
"MigrateMyLinks::onInternalParseBeforeLinks",},
ParserAfterParse={
"MigrateMyLinks::onParserAfterParse",},
LinkerMakeExternalLink={
"MigrateMyLinks::onLinkerMakeExternalLink",},
},
repository="https://github.com/ciencia/mediawiki-extensions-MigrateMyLinks.git",
},
MirahezeMagic={
name="MirahezeMagic",
author={
"Agent Isai","John Lewis","Labster","MacFan4000","Reception123","Revi","Paladox","Southparkfan","Universal Omega",},
url="//github.com/Miraheze/MirahezeMagic",
descriptionmsg="mirahezemagic-description",
["license-name"]="GPL-3.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
config={
MirahezeReportsBlockAlertKeywords={
description="Array. Words in block reasons which trigger a report being sent to TSPortal.",
value={
},
},
MirahezeReportsWriteKey={
description="String. TSPortal write key to be used when connecting to it.",
value="",
},
MirahezeStaffAccessIds={
description="Array. Usernames of users authorised to access staffwiki.",
value={
},
},
MirahezeSurveyEnabled={
description="Boolean. Enable Miraheze Annual Survey?",
value=true,
},
},
ConfigRegistry={
mirahezemagic="GlobalVarConfig::newInstance",
},
ExtensionMessagesFiles={
MirahezeMagicAliases="includes/MirahezeMagicAliases.php",
},
LogActionsHandlers={
["vanishuser/*"]="LogFormatter",
},
LogHeaders={
vanishuser="vanishuser-log-header",
},
LogNames={
vanishuser="vanishuser-log-name",
},
LogTypes={
"vanishuser",},
Hooks={
AbuseFilterShouldFilterAction={
"MirahezeMagicHooks::onAbuseFilterShouldFilterAction",},
BlockIpComplete={
"MirahezeMagicHooks::onBlockIpComplete",},
CreateWikiDeletion={
"MirahezeMagicHooks::onCreateWikiDeletion",},
CreateWikiRename={
"MirahezeMagicHooks::onCreateWikiRename",},
CreateWikiStatePrivate={
"MirahezeMagicHooks::onCreateWikiStatePrivate",},
CreateWikiTables={
"MirahezeMagicHooks::onCreateWikiTables",},
CreateWikiReadPersistentModel={
"MirahezeMagicHooks::onCreateWikiReadPersistentModel",},
CreateWikiWritePersistentModel={
"MirahezeMagicHooks::onCreateWikiWritePersistentModel",},
["MessageCache::get"]={
"MirahezeMagicHooks::onMessageCacheGet",},
MessageCacheFetchOverrides={
"MirahezeMagicHooks::onMessageCacheFetchOverrides",},
TitleReadWhitelist={
"MirahezeMagicHooks::onTitleReadWhitelist",},
HtmlPageLinkRendererEnd={
"MirahezeMagicHooks::onHtmlPageLinkRendererEnd",},
InitializeArticleMaybeRedirect={
"MirahezeMagicHooks::onInitializeArticleMaybeRedirect",},
GlobalUserPageWikis={
"MirahezeMagicHooks::onGlobalUserPageWikis",},
MimeMagicInit={
"MirahezeMagicHooks::onMimeMagicInit",},
SiteNoticeAfter={
"MirahezeMagicHooks::onSiteNoticeAfter",},
SkinAddFooterLinks={
"MirahezeMagicHooks::onSkinAddFooterLinks",},
UserGetRightsRemove={
"MirahezeMagicHooks::onUserGetRightsRemove",},
RecentChange_save={
"MirahezeMagicHooks::onRecentChange_save",},
GetPreferences={
"MirahezeMagicHooks::onGetPreferences",},
BeforeInitialize={
"MirahezeMagicHooks::onBeforeInitialize",},
ContributionsToolLinks={
"MirahezeMagicHooks::onContributionsToolLinks",},
},
SpecialPages={
MirahezeSurvey={
class="SpecialMirahezeSurvey",
services={
"ConfigFactory",},
},
VanishUser={
class="SpecialVanishUser",
services={
"JobQueueGroupFactory","UserFactory",},
},
},
composer="miraheze/mirahezemagic",
repository="https://github.com/miraheze/MirahezeMagic.git",
},
Moderation={
name="Moderation",
version="1.7.7",
author="Edward Chernenko",
url="https://www.mediawiki.org/wiki/Extension:Moderation",
descriptionmsg="moderation-desc",
["license-name"]="GPL-3.0+",
type="antispam",
requires={
MediaWiki="&gt;= 1.35.0",
},
GroupPermissions={
automoderated={
["skip-moderation"]=true,
["skip-move-moderation"]=true,
},
moderator={
moderation=true,
},
checkuser={
["moderation-checkuser"]=true,
},
bot={
["skip-moderation"]=true,
["skip-move-moderation"]=true,
},
sysop={
["skip-moderation"]=true,
["skip-move-moderation"]=true,
moderation=true,
},
},
AddGroups={
sysop={
"automoderated",},
},
RemoveGroups={
sysop={
"automoderated",},
},
GrantPermissions={
basic={
["skip-moderation"]=true,
},
},
AvailableRights={
"moderation","skip-moderation","skip-move-moderation",},
SpecialPages={
Moderation={
class="SpecialModeration",
services={
"Moderation.ActionFactory","Moderation.EntryFactory","Moderation.NotifyModerator","LinkBatchFactory",},
},
},
ActionFilteredLogs={
moderation={
approve={
"approve","approveall","approve-move",},
reject={
"reject","rejectall",},
block={
"block","unblock",},
merge={
"merge",},
},
},
APIModules={
moderation={
class="ApiModeration",
services={
"Moderation.ActionFactory",},
},
},
APIPropModules={
moderationpreload={
class="ApiQueryModerationPreload",
services={
"Moderation.Preload",},
},
},
LogTypes={
"moderation",},
LogRestrictions={
moderation="moderation",
},
LogActionsHandlers={
["moderation/*"]="ModerationLogFormatter",
},
ExtensionMessagesFiles={
ModerationAlias="Moderation.alias.php",
},
HookHandlers={
api={
class="ModerationApiHooks",
services={
"Moderation.CanSkip","Moderation.Preload",},
},
approveHook={
factory="ModerationApproveHook::hookHandlerFactory",
},
edit={
class="ModerationEditHooks",
services={
"Moderation.ConsequenceManager","Moderation.CanSkip","Moderation.EditFormOptions","Moderation.HookRunner",},
},
editFormOptions={
factory="MediaWiki\\Moderation\\EditFormOptions::hookHandlerFactory",
},
move={
class="ModerationMoveHooks",
services={
"Moderation.ConsequenceManager","Moderation.CanSkip","Moderation.EditFormOptions",},
},
notifyModerator={
factory="ModerationNotifyModerator::hookHandlerFactory",
},
pageForms={
class="ModerationPageForms",
services={
"Moderation.Preload",},
},
preload={
factory="ModerationPreload::hookHandlerFactory",
},
updater={
class="ModerationUpdater",
},
upload={
class="ModerationUploadHooks",
services={
"Moderation.ConsequenceManager","Moderation.CanSkip","Moderation.EditFormOptions",},
},
},
Hooks={
AlternateEdit="preload",
ApiBeforeMain="api",
ApiCheckCanExecute="api",
BeforePageDisplay="edit",
ChangeTagsAllowedAdd="edit",
CheckUserInsertForRecentChange="approveHook",
EchoCanAbortNewMessagesAlert="notifyModerator",
EditFilter="editFormOptions",
EditFormInitialText="preload",
EditFormPreloadText="preload",
["EditPage::showEditForm:fields"]="edit",
FileUpload="approveHook",
GetNewMessagesAlert="notifyModerator",
getUserPermissionsErrors="upload",
LoadExtensionSchemaUpdates="updater",
ListDefinedTags="edit",
LocalUserCreated="preload",
ModerationContinueEditingLink="pageForms",
MultiContentSave="edit",
PageSaveComplete={
"approveHook","edit",},
["PageForms::EditFormInitialText"]="pageForms",
["PageForms::EditFormPreloadText"]="pageForms",
PageMoveCompleting="approveHook",
RecentChange_save="approveHook",
RevisionFromEditComplete="approveHook",
SpecialPageBeforeExecute="editFormOptions",
TitleMove="move",
UploadVerifyUpload="upload",
wgQueryPages="api",
},
config={
ModerationEnable={
value=true,
description="If false, new edits are applied as usual (not sent to moderation).",
},
ModerationTimeToOverrideRejection={
value=1209600,
description="Time (in seconds) after which rejected edit could no longer be approved.",
},
ModerationPreviewLink={
value=false,
description="If true, Preview link is shown for pending edits. Normally you shouldn't enable this (when following Best Practices, approval/rejection depends on content, not formatting).",
},
ModerationNotificationEnable={
value=false,
description="If true, administrator is notified of new changes that await moderation.",
},
ModerationNotificationNewOnly={
value=false,
description="If true, only notify about new pages, not all edits.",
},
ModerationEmail={
value="",
description="Email address to send notifications to.",
},
ModerationUseAjax={
value=false,
description="Experimental: if true, enable Ajax handling of links on Special:Moderation.",
},
ModerationOnlyInNamespaces={
value={
},
description="If set to an array of namespace numbers (e.g. NS_MAIN, NS_FILE), moderation is only enabled in these namespaces (edits in other namespaces will bypass moderation). Default (empty array): moderation is enabled everywhere.",
},
ModerationIgnoredInNamespaces={
value={
},
description="If set to an array of namespace numbers (e.g. NS_MAIN, NS_FILE), non-automoderated users can bypass moderation in these namespaces. Default (empty array): moderation can't be bypassed anywhere.",
},
ModerationEnableEditChange={
value=false,
description="If true, moderators are allowed to edit pending changes before approving. DANGEROUS: moderator can accidentally delete the text of pending change. Enable this only when you use Moderation for pre-publish review.",
},
},
ServiceWiringFiles={
"hooks/ServiceWiring.php",},
repository="https://github.com/edwardspec/mediawiki-moderation.git",
},
ModernTimeline={
name="ModernTimeline",
version="1.2.2",
author={
"[https://professional.wiki/ Professional.Wiki]","[https://www.entropywins.wtf/mediawiki Jeroen De Dauw]",},
url="https://github.com/ProfessionalWiki/ModernTimeline#modern-timeline",
namemsg="modern-timeline-name",
descriptionmsg="modern-timeline-desc",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.31.0",
extensions={
SemanticMediaWiki="&gt;= 3.0.0",
},
},
config={
ModernTimelineWidth={
value="100%",
},
ModernTimelineHeight={
value="400px",
},
ModernTimelineBookmark={
value=false,
},
ModernTimelineBackground={
value="white",
},
ModernTimelineScaleFactor={
value=2,
},
ModernTimelinePosition={
value="bottom",
},
ModernTimelineTickWidth={
value=100,
},
ModernTimelineStartSlide={
value=1,
},
ModernTimelineStartAtEnd={
value=false,
},
ModernTimelineTransitionDuration={
value=1000,
},
ModernTimelineNavHeight={
value="200px",
},
ModernTimelineTemplate={
value="",
},
ModernTimelineImageProperty={
value="",
},
},
ExtensionFunctions={
"ModernTimeline\\ModernTimelineSetup::onExtensionFunction",},
repository="https://github.com/ProfessionalWiki/ModernTimeline",
composer="professional-wiki/modern-timeline",
},
MultiPurge={
name="MultiPurge",
version="1.2.1",
author={
"[https://www.mediawiki.org/wiki/User:Octfx Octfx]",},
url="https://www.mediawiki.org/wiki/Extension:MultiPurge",
descriptionmsg="multipurge-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
platform={
php="&gt;=8.0",
},
},
config={
MultiPurgeCloudFlareZoneId={
description="The zone ID",
value=nil,
},
MultiPurgeCloudFlareApiToken={
description="",
value=nil,
},
MultiPurgeVarnishServers={
description="",
value=nil,
},
MultiPurgeEnabledServices={
description="List of enabled services, e.g. [Varnish, Cloudflare]",
value=nil,
},
MultiPurgeServiceOrder={
description="Order of purge requests, e.g. [Varnish, Cloudflare]",
value=nil,
},
MultiPurgeStaticPurges={
description="Array of urls that can be purged using the special page. Key is displayed as the selection label.",
value={
["Site Styles"]="load.php?lang=de&amp;modules=site.styles&amp;only=styles&amp;skin=citizen",
},
["_merge_strategy"]="array_plus",
},
MultiPurgeRunInQueue={
description="Push purge jobs to the job queue instead of running it in sync.",
value=false,
},
},
ConfigRegistry={
MultiPurge="GlobalVarConfig::newInstance",
},
ExtensionMessagesFiles={
MultiPurgeAlias="MultiPurge.alias.php",
},
Hooks={
LocalFilePurgeThumbnails="purge",
ArticlePurge="purge",
["EditPage::attemptSave:after"]="purge",
},
HookHandlers={
purge={
class="MediaWiki\\Extension\\MultiPurge\\Hooks\\PurgeHooks",
services={
"MainConfig","HtmlCacheUpdater","JobQueueGroup","ResourceLoader","UrlUtils",},
},
},
ExtensionFunctions={
"MediaWiki\\Extension\\MultiPurge\\Hooks\\MainHooks::setup",},
SpecialPages={
PurgeResources="MediaWiki\\Extension\\MultiPurge\\Specials\\SpecialPurgeResources",
},
JobClasses={
MultiPurgePages="MediaWiki\\Extension\\MultiPurge\\MultiPurgeJob",
},
composer="octfx/multipurge",
repository="https://github.com/octfx/mediawiki-extensions-MultiPurge.git",
},
MyTwitter={
name="MyTwitter",
version="1.0",
author={
"[http://www.axllent.org/code/mytwit/ Ralph Slooten]","페네트-",},
url="https://github.com/wiki-chan/MyTwitter",
description="Show twitter widget in mediawiki, using Ralph's MyTwit class.",
["license-name"]="MIT",
type="parserhook",
ExtensionFunctions={
"MyTwitWrapper::registerTwitterTag",},
Hooks={
OutputPageParserOutput={
"MyTwitWrapper::OutputPageParser",},
},
config={
TwitterUser="",
TwitterConsumerKey="",
TwitterConsumerSecret="",
TwitterOAUTHAccessToken="",
TwitterOAUTHAccessTokenSecret="",
TwitterCacheExpire=600,
TwitterPostLimit=5,
TwitterExcludeReplies=true,
TwitterOpenLinksInBlank=true,
},
repository="https://github.com/wiki-chan/MyTwitter",
},
NamespaceManager={
name="NamespaceManager",
namemsg="nsmgr-extensionname",
version="0.2",
author={
"[//hexmode.com Mark A. Hershberger]",},
url="https://mediawiki.org/wiki/Extension:NamespaceManager",
descriptionmsg="nsmgr-desc",
["license-name"]="GPL-3.0+",
config={
["_prefix"]="NamespaceManager",
MapFile="ns.json",
},
requires={
MediaWiki="&gt;= 1.27.0",
},
type="special",
Hooks={
LoadExtensionSchemaUpdates={
"MediaWiki\\Extension\\NamespaceManager\\Hooks::onLoadExtensionSchemaUpdates",},
NamespaceIsMovable={
"MediaWiki\\Extension\\NamespaceManager\\Hooks::onNamespaceIsMovable",},
SearchableNamespaces={
"MediaWiki\\Extension\\NamespaceManager\\Hooks::onSearchableNamespaces",},
EditPageTosSummary={
"MediaWiki\\Extension\\NamespaceManager\\Hooks::onEditPageTosSummary",},
EditPageCopyrightWarning={
"MediaWiki\\Extension\\NamespaceManager\\Hooks::onEditPageCopyrightWarning",},
ChangesListSpecialPageQuery={
"MediaWiki\\Extension\\NamespaceManager\\Hooks::onChangesListSpecialPageQuery",},
},
ConfigRegistry={
namespacemanager="MediaWiki\\Extension\\NamespaceManager\\Config::newInstance",
},
callback="MediaWiki\\Extension\\NamespaceManager\\Hooks::init",
composer="mediawiki/namespace-manager",
repository="https://github.com/hexmode/mediawiki-NamespaceManager",
},
NamespacePreload={
name="NamespacePreload",
author="Ostrzyciel",
["license-name"]="GPL-2.0-or-later",
version="1.2.0",
namemsg="namespacePreload",
descriptionmsg="namespacePreload-desc",
url="https://www.mediawiki.org/wiki/Extension:NamespacePreload",
Hooks={
EditFormPreloadText="NamespacePreloadHooks::onEditFormPreloadText",
},
config={
NamespacePreloadDoPreSaveTransform=false,
NamespacePreloadDoExpansion=true,
},
type="other",
repository="https://gitlab.com/nonsensopedia/extensions/namespacepreload.git/",
},
Network={
name="Network",
version="2.0.1",
author={
"[https://www.entropywins.wtf/mediawiki Jeroen De Dauw]","[https://professional.wiki/ Professional.Wiki]",},
url="https://github.com/ProfessionalWiki/Network#network-extension",
descriptionmsg="network-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
config={
PageNetworkOptions={
value={
layout={
randomSeed=42,
},
physics={
barnesHut={
gravitationalConstant=-5000,
damping=0.242,
},
},
nodes={
color={
background="white",
highlight={
background="white",
},
},
borderWidth=0,
shape="image",
size=10,
shapeProperties={
useBorderWithImage=true,
},
},
groups={
bluelink={
image="resources/lib/ooui/themes/wikimediaui/images/icons/article-rtl-progressive.svg",
},
redlink={
image="resources/lib/ooui/themes/wikimediaui/images/icons/articleNotFound-ltr.svg",
color={
border="#ba0000",
highlight={
border="#ba0000",
},
},
font={
color="#ba0000",
},
},
externallink={
image="resources/lib/ooui/themes/wikimediaui/images/icons/linkExternal-ltr-progressive.svg",
color={
border="grey",
highlight={
border="grey",
},
},
font={
color="grey",
},
},
},
},
merge_strategy="array_replace_recursive",
},
PageNetworkExcludeTalkPages={
value=true,
},
PageNetworkExcludedNamespaces={
value={
2,4,8,12,},
},
PageNetworkEnableDisplayTitle={
value=true,
},
PageNetworkLabelMaxLength={
value=20,
},
},
ExtensionMessagesFiles={
NetworkParserFunction="i18n/_MagicWords.php",
NetworkAlias="i18n/Network.i18n.alias.php",
},
callback="MediaWiki\\Extension\\Network\\Extension::addMediaWiki131compat",
Hooks={
ParserFirstCallInit="MediaWiki\\Extension\\Network\\EntryPoints\\NetworkFunction::onParserFirstCallInit",
},
SpecialPages={
Network="MediaWiki\\Extension\\Network\\EntryPoints\\SpecialNetwork",
},
QUnitTestModule={
localBasePath="tests/js",
remoteExtPath="Network/tests/js",
scripts={
"stub/index.js","stub/Cats.js","stub/MultiPage.js","MultiPageConnectionsTest.js","PageBlacklistTest.js","SinglePageConnectionsTest.js",},
dependencies={
"ext.network",},
},
repository="https://github.com/ProfessionalWiki/Network/issues",
composer="professional-wiki/network",
},
NewDuplicateUserMessage={
name="NewDuplicateUserMessage",
version="3.6.0, 2016-10-31",
author={
"[https://www.organicdesign.co.nz/User:Nad Aran Dunkley]","Siebrand Mazeland","David Wong",},
url="https://www.mediawiki.org/wiki/Extension:NewDuplicateUserMessage",
descriptionmsg="newduplicateusermessage-description",
["license-name"]="GPL-2.0-or-later",
type="other",
JobClasses={
newDuplicateUserMessageJob="NewDuplicateUserMessageJob",
},
Hooks={
LocalUserCreated={
"NewDuplicateUserMessage::onLocalUserCreated",},
UserGetReservedNames={
"NewDuplicateUserMessage::onUserGetReservedNames",},
},
config={
NewDuplicateUserSuppressRC=false,
NewDuplicateUserMinorEdit=true,
NewDuplicateUserMessageOnAutoCreate=false,
},
repository="https://github.com/PowerpediaInterns/mediawiki-extensions-NewDuplicateUserMessage",
},
Nimiarkisto={
name="Nimiarkisto",
version="2.0.0",
author={
"Niklas Laxström",},
url="https://github.com/Nikerabbit/mediawiki-extensions-Nimiarkisto",
description="Code to import and display Nimiarkisto in a MediaWiki",
["license-name"]="GPL-2.0-or-later",
config={
NimiarkistoMapProxy={
value={
key="",
url="https://avoin-karttakuva.maanmittauslaitos.fi/avoin/wmts/1.0.0/{layer}/default/ETRS-TM35FIN/{z}/{y}/{x}.png",
},
},
},
ExtensionMessagesFiles={
NimiarkistoMagic="Nimiarkisto.magic.php",
},
Hooks={
ParserFirstCallInit="MediaWiki\\Extensions\\Nimiarkisto\\Hooks::onParserFirstCallInit",
BeforePageDisplay="MediaWiki\\Extensions\\Nimiarkisto\\Hooks::onBeforePageDisplay",
["MessageCache::get"]="MediaWiki\\Extensions\\Nimiarkisto\\Hooks::onMessageCacheGet",
},
SpecialPages={
MapProxy="MediaWiki\\Extensions\\Nimiarkisto\\MapProxySpecialPage",
},
APIModules={
nimiarkistolookup="MediaWiki\\Extensions\\Nimiarkisto\\NimiarkistoLookupActionApi",
},
repository="https://github.com/Nikerabbit/mediawiki-extensions-Nimiarkisto.git",
},
NonsaCodeJanitor={
name="NonsaCodeJanitor",
author="Ostrzyciel",
url="https://gitlab.com/nonsensopedia/extensions/nonsacodejanitor",
["license-name"]="GPL-2.0+",
version="0.2.0",
namemsg="nonsaCodeJanitor",
descriptionmsg="nonsaCodeJanitor-desc",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
ParserPreSaveTransformComplete="NonsaCodeJanitor\\Hooks::onParserPreSaveTransformComplete",
},
type="other",
repository="https://gitlab.com/nonsensopedia/extensions/nonsacodejanitor.git/",
},
NonsaLinks={
name="NonsaLinks",
author="Ostrzyciel",
["license-name"]="GPL-2.0+",
version="0.3.0",
namemsg="nonsaLinks",
descriptionmsg="nonsaLinks-desc",
url="https://gitlab.com/nonsensopedia/extensions/nonsalinks",
type="semantic",
requires={
MediaWiki="&gt;= 1.37.0",
extensions={
SemanticMediaWiki="&gt;= 3.1.0",
},
platform={
php="&gt;= 7.4",
},
},
config={
NLSeeAlsoAliases={
"Zobacz też",},
NLSeeAlsoNamespaces={
0,},
},
ExtensionMessagesFiles={
NonsaLinksMagic="NonsaLinks.magic.php",
},
Hooks={
["SMW::Store::BeforeDataUpdateComplete"]="NonsaLinks\\Hooks\\BeforeDataUpdateComplete::run",
["SMW::Property::initProperties"]="NonsaLinks\\Hooks\\InitProperties::run",
GetDoubleUnderscoreIDs="NonsaLinks\\Hooks\\GetDoubleUnderscoreIDs::run",
},
repository="https://gitlab.com/nonsensopedia/extensions/nonsalinks.git/",
},
OSBlocks={
name="OSBlocks",
author={
"Nick A. (Naleksuh)","Jacob G. (jvvg)",},
Hooks={
getUserPermissionsErrors="OSBlocks::onGetUserPermissionsErrors",
},
repository="https://github.com/InternationalScratchWiki/OSBlocks.git",
},
PDFEmbed={
name="PDFEmbed",
version="3.0.1",
author={
"[https://www.mediawiki.org/wiki/User:Alexia_E._Smith Alexia E. Smith]","[http://www.bitplan.com/index.php/Wolfgang_Fahl Wolfgang Fahl/ProfiWiki]","[http://hexmode.com Mark A. Hershberger]","[https://clkoerner.com Chris Koerner]","[https://github.com/metalevel-tech Spas Z. Spasov]",},
url="https://www.mediawiki.org/wiki/Extension:PDFEmbed",
descriptionmsg="pdfembed_description",
["license-name"]="LGPL-3.0-only",
requires={
MediaWiki="&gt;= 1.40.0",
},
type="parserhook",
AvailableRights={
"embed_pdf",},
GroupPermissions={
sysop={
embed_pdf=true,
},
},
Hooks={
ParserFirstCallInit="PDFEmbed::onParserFirstCallInit",
},
FileExtensions={
"pdf",},
config={
PdfEmbed={
width=800,
height=1090,
iframe=true,
},
},
TrackingCategories={
"pdfembed-permission-problem-category",},
composer="mwstake/mediawiki-pdfembed",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PDFEmbed",
},
PHPEditor={
name="PHPEditor",
version="0.01",
author={
"[http://mwstake.org Mark A. Hershberger]",},
url="http://git-media.wiki",
descriptionmsg="phpeditor-desc",
["license-name"]="GPL-3.0-or-later",
type="other",
callback="PHPEditor\\Hooks::onRegistration",
Hooks={
CodeEditorGetPageLanguage="PHPEditor\\Hooks::onCodeEditorGetPageLanguage",
ContentHandlerForModelID="PHPPEditor\\Hooks::onContentHandlerForModelID",
},
ContentHandlers={
php="PHPEditor\\ContentHandler",
},
SyntaxHighlightModels={
php="php",
},
repository="https://github.com/mwstake/mediawiki-extensions-PHPEditor",
},
PageAuthors={
name="PageAuthors",
version="1.4",
url="https://www.mediawiki.org/wiki/Extension:PageAuthors",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",
descriptionmsg="pageauthors-desc",
["license-name"]="GPL-3.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
PageAuthorsMagic="PageAuthors.i18n.magic.php",
},
Hooks={
GetMagicVariableIDs="PageAuthors::onGetMagicVariableIDs",
ParserGetVariableValueSwitch="PageAuthors::onParserGetVariableValueSwitch",
ParserFirstCallInit="PageAuthors::onParserFirstCallInit",
},
config={
PageAuthorsMinBytesPerAuthor={
value=100,
},
PageAuthorsMinBytesPerEdit={
value=10,
},
PageAuthorsIgnoreSummaryPatterns={
value={
"/Undo.*/","/Revert.*/",},
},
PageAuthorsIgnoreMinorEdits={
value=true,
},
PageAuthorsIgnoreSystemUsers={
value=true,
},
PageAuthorsIgnoreBots={
value=true,
},
PageAuthorsIgnoreAnons={
value=true,
},
PageAuthorsIgnoreUsers={
value={
},
},
PageAuthorsIgnoreGroups={
value={
},
},
PageAuthorsIgnoreBlocked={
value=true,
},
PageAuthorsUseRealNames={
value=false,
},
PageAuthorsLinkUserPages={
value=false,
},
PageAuthorsDelimiter={
value=", ",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageAuthors",
},
PageLoadingSpinner={
name="PageLoadingSpinner",
version="1.0.0",
author={
"Pierre Boutet",},
url="https://github.com/Wikifab/PageLoadingSpinner",
descriptionmsg="pageloadingspinner-desc",
["license-name"]="MIT",
type="other",
Hooks={
["EditPage::showEditForm:initial"]={
"PageLoadingSpinner\\Hooks::start",},
["FormEdit::showEditForm:initial"]={
"PageLoadingSpinner\\Hooks::start",},
BeforePageDisplay={
"PageLoadingSpinner\\Hooks::onBeforePageDisplay",},
},
composer="wikifab/page-loading-spinner",
repository="https://github.com/Wikifab/PageLoadingSpinner",
},
PageMediaGallery={
name="PageMediaGallery",
version="0.0.0",
author={
"Pierre Boutet","Julien",},
url="https://github.com/Wikifab/PageMediaGallery",
descriptionmsg="imagesGallery-desc",
["license-name"]="MIT",
type="other",
config={
PageMediaGalleryFoo=true,
pmgEnabledForms=false,
PageMediaGallerySearchLimit=10,
},
APIModules={
pagemediagallery_browse="PageMediaGallery\\ApiBrowse",
},
callback="PageMediaGallery\\Hooks::onExtensionLoad",
Hooks={
["EditPage::showEditForm:initial"]={
"PageMediaGallery\\Hooks::start",},
["FormEdit::showEditForm:initial"]={
"PageMediaGallery\\Hooks::start",},
sfRenderingEnd={
"PageMediaGallery\\Hooks::addToForm",},
UploadComplete={
"PageMediaGallery\\Hooks::onUploadComplete",},
PageContentInsertComplete={
"PageMediaGallery\\Hooks::onPageContentInsertComplete",},
},
composer="wikifab/page-media-gallery",
repository="https://github.com/Wikifab/PageMediaGallery",
},
PageProtect={
name="PageProtect",
version="0.1.0",
["license-name"]="GPL-3.0+",
author={
"[http://mwstake.org Mark A. Hershberger]",},
requires={
MediaWiki="1.26",
},
url="https://www.mediawiki.org/wiki/Extension:PageProtect",
descriptionmsg="pageprotect-desc",
type="specialpage",
callback="PageProtect\\Hook::initExtension",
ConfigRegistry={
PageProtect="PageProtect\\Hook::makeConfig",
},
Hooks={
ArticleProtect="PageProtect\\Hook::onArticleProtect",
ArticleProtectComplete="PageProtect\\Hook::onArticleProtectComplete",
getUserPermissionsErrors="PageProtect\\Hook::onGetUserPermissionsErrors",
ImgAuthBeforeStream="PageProtect\\Hook::onImgAuthBeforeStream",
LoadExtensionSchemaUpdates="PageProtect\\Hook::onLoadExtensionSchemaUpdates",
["ProtectionForm::buildForm"]="PageProtect\\Hook::onProtectionFormBuildForm",
["ProtectionForm::save"]="PageProtect\\Hook::onProtectionFormSave",
["ProtectionForm::showLogExtract"]="PageProtect\\Hook::onProtectionFormShowLog",
TitleGetRestrictionTypes="PageProtect\\Hook::onTitleGetRestrictionTypes",
},
config={
["_prefix"]="PageProtect",
},
AvailableRights={
"pageprotect-by-group",},
GroupPermissions={
sysop={
["pageprotect-by-group"]=true,
},
},
repository="https://github.com/hexmode/mediawiki-PageProtect",
},
PageSync={
name="PageSync",
version="2.6.4",
author={
"Sen-Sai",},
url="https://www.mediawiki.org/wiki/Extension:PageSync",
descriptionmsg="wsps-desc",
["license-name"]="GPL v2",
type="other",
requires={
MediaWiki="&gt;= 1.35.1",
platform={
php="&gt;= 7.1",
["ext-zip"]="*",
},
},
ExtensionMessagesFiles={
WSpsAlias="WSps.i18n.alias.php",
WSpsMagic="WSps.i18n.magic.php",
},
APIModules={
wsps="PageSync\\API\\ApiWSps",
},
Hooks={
BeforePageDisplay="PageSync\\HookHandler::onBeforePageDisplay",
ParserFirstCallInit="PageSync\\HookHandler::onParserFirstCallInit",
AdminLinks="PageSync\\HookHandler::addToAdminLinks",
PageSaveComplete="PageSync\\Core\\PSCore::pageSaved",
ArticleDelete="PageSync\\HookHandler::onArticleDelete",
["SkinTemplateNavigation::Universal"]="PageSync\\HookHandler::nav",
},
SpecialPages={
WSps="PageSync\\Special\\WSpsSpecial",
},
config={
PageSync={
value={
allowedGroups={
},
filePath="",
tempFilePath="",
fileNameSpaces={
6,},
contentSlotsToBeSynced="all",
maintenance={
doNotRestoreThesePages={
},
restoreFrom="",
},
},
},
},
composer="open-csp/page-sync",
repository="https://github.com/Open-CSP/PageSync.git",
},
GoogleAnalyticsPageViewsPropertyAnnotator={
name="Page Views Property",
author="Julien",
url="https://www.mediawiki.org/wiki/Extension:GoogleAnalyticsPageViewsPropertyAnnotator",
descriptionmsg="pageviewsproperty-desc",
version="1.0",
["license-name"]="GPL-2.0+",
type="other",
JobClasses={
PageViewsPropertyUpdate="PageViewsProperty\\PageViewsPropertyUpdateJob",
},
callback="PageViewsProperty\\Hooks::onExtension",
Hooks={
BeforePageDisplay={
"PageViewsProperty\\Hooks::onBeforePageDisplay",},
},
config={
PageViewsPropertyRefreshDelayInterval=false,
},
composer="wikifab/page-views-property",
repository="https://github.com/Wikifab/PageViewsProperty.git",
},
PandocUltimateConverter={
name="PandocUltimateConverter",
version="0.1.1",
author={
"Nikolai Kochkin",},
description="Pandoc extension which imports not only text, but also images",
["license-name"]="MIT",
type="other",
SpecialPages={
PandocUltimateConverter="MediaWiki\\Extension\\PandocUltimateConverter\\SpecialPandocUltimateConverter",
},
repository="https://github.com/Griboedow/PandocUltimateConverter/",
},
PassEdit={
name="PassEdit",
author={
"apple502j",},
url="https://github.com/InternationalScratchWiki/PassEdit",
descriptionmsg="passedit-desc",
["license-name"]="GPL-3.0-or-later",
AvailableRights={
"editpassword",},
GroupPermissions={
["*"]={
editpassword=false,
},
bureaucrat={
editpassword=true,
},
},
SpecialPages={
EditPassword="PassEdit",
},
repository="https://github.com/InternationalScratchWiki/PassEdit.git",
},
PdfBook={
name="PdfBook",
version="3.0.0",
["license-name"]="GPL-2.0-or-later",
author={
"[https://organicdesign.nz/User:Nad Aran Dunkley]","[https://absorto.dev Igor Absorto]","[https://professional.wiki/en/mediawiki-development Professional Wiki]",},
url="https://www.mediawiki.org/wiki/Extension:PdfBook",
descriptionmsg="pdfbook-desc",
requires={
MediaWiki="&gt;= 1.39.0",
},
type="parserhook",
callback="PdfBookHooks::onRegistration",
config={
PdfBookTab={
description="Whether or not an action tab should be shown for printing to PDF",
value=false,
},
PdfBookDownload={
description="Whether or not the files should be downloaded or viewed in-browser",
value=true,
},
},
Hooks={
["SkinTemplateNavigation::Universal"]="PdfBookHooks::onSkinTemplateNavigationUniversal",
},
repository="https://github.com/debtcompliance/PdfBook.git",
},
PerconaDB={
name="PerconaDB",
author={
"[http://hexmode.com/ Mark A. Hershberger]",},
url="https://www.mediawiki.org/wiki/Extension:PerconaDB",
descriptionmsg="perconadb-desc",
["license-name"]="GPL-3.0-or-later",
type="database",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
["SMW::SQLStore::Installer::BeforeCreateTablesComplete"]="MediaWiki\\Extension\\PerconaDB\\Hook::onSMWBeforeCreateTablesComplete",
LoadExtensionSchemaUpdates="MediaWiki\\Extension\\PerconaDB\\Hook::onLoadExtensionSchemaUpdates",
},
Providers={
Databases={
percona={
Installer="MediaWiki\\Extension\\PerconaDB\\Installer",
Driver="MediaWiki\\Extension\\PerconaDB\\Database",
Updater="MysqlUpdater",
},
},
},
repository="https://github.com/MWStake/PerconaDB",
composer="mediawiki/percona-db",
},
PeriodicRelatedChanges={
name="PeriodicRelatedChanges",
version="0.1.0",
["license-name"]="GPL-3.0+",
author={
"[http://mwstake.org Mark A. Hershberger]",},
requires={
MediaWiki="1.26",
Echo="*",
},
url="https://www.mediawiki.org/wiki/Extension:PeriodicRelatedChanges",
descriptionmsg="periodic-related-changes-desc",
type="specialpage",
SpecialPages={
PeriodicRelatedChanges="MediaWiki\\Extensions\\PeriodicRelatedChanges\\SpecialPeriodicRelatedChanges",
},
GroupPermissions={
sysop={
["periodic-related-changes-any-user"]=true,
},
user={
["periodic-related-changes"]=true,
},
},
AvailableRights={
"periodic-related-changes-any-user","periodic-related-changes",},
ConfigRegistry={
PeriodicRelatedChanges="MediaWiki\\Extensions\\PeriodicRelatedChanges\\Hook::makeConfig",
},
Hooks={
LoadExtensionSchemaUpdates={
"MediaWiki\\Extensions\\PeriodicRelatedChanges\\Hook::onLoadExtensionSchemaUpdates",},
BeforeCreateEchoEvent={
"MediaWiki\\Extensions\\PeriodicRelatedChanges\\Hook::onBeforeCreateEchoEvent",},
EchoGetBundleRules={
"MediaWiki\\Extensions\\PeriodicRelatedChanges\\Hook::onEchoGetBundleRules",},
CategoryAfterPageAdded={
"MediaWiki\\Extensions\\PeriodicRelatedChanges\\Hook::onCategoryAfterPageAdded",},
CategoryAfterPageRemoved={
"MediaWiki\\Extensions\\PeriodicRelatedChanges\\Hook::onCategoryAfterPageRemoved",},
PageContentSaveComplete={
"MediaWiki\\Extensions\\PeriodicRelatedChanges\\Hook::onPageContentSaveComplete",},
},
config={
["_prefix"]="PeriodicRelatedChanges",
},
composer="mwstake/periodic-related-changes",
repository="https://github.com/hexmode/mediawiki-PeriodicRelatedChanges",
},
Pickle={
name="Pickle",
version="0.1.0",
author={
"John Erling Blad",},
url="https://www.mediawiki.org/wiki/Extension:Pickle",
descriptionmsg="pickle-desc",
["license-name"]="GPL-2.0",
type="other",
requires={
MediaWiki="&gt;= 1.33",
extensions={
Scribunto="*",
},
},
config_prefix="wgPickle",
config={
Setup={
description={
"How to construct the tests, that is whether description does setup.","* implicit – setup as part of describe","* explicit – setup as part of module require",},
value="implicit",
},
ObserverID={
description="The user ID used by the logger.",
value=3,
},
TranslationFollows={
description={
"Which ones of the entries from TranslationPath should be used","* content – follow content language","* user – follow user language (caching must be turned off)",},
value="content",
},
TranslationPath={
description={
"Alternate formats for how to build the translation path","* content – format to use while following content language","* user – format to use while following user language (caching must be turned off)",},
value={
content="Module:%s/i18n",
user="Module:%s/%s",
},
},
DefaultNamespace={
description="Which namespace to use for tests",
value=828,
},
RenderPath={
description="Formats to use while requiring renders.",
value="picklelib/render/Render%s%s",
},
RenderStyles={
description={
"The style part of name","* compact – the name for the minimal plain text report","* full – the name for the full plain text report","* vivid – the name for the full html report",},
value={
compact="Compact",
full="Full",
vivid="Vivid",
},
},
RenderTypes={
description={
"The type part of the name","* report-adapt – the name for the renders handling adapt reports","* report-case – the name for the renders handling case reports",},
value={
["report-adapt"]="Adapt",
["report-case"]="Case",
},
},
ExtractorPath={
description="Formats to use while requiring extractors.",
value="picklelib/Extractor%s",
},
Extractor={
description="Key-value pairs for extractors, used by require during setup of Lua-modules.",
value={
},
},
NeglectSubpages={
description="List of patterns mathing subpage titles that should not be processed.",
value={
"/^(?:.*?\\.)?doc$/","/^(?:.*?\\.)?conf$/","/^(?:.*?\\.)?data$/","/^(?:.*?\\.)?i18n$/","/^(?:.*?\\.)?l10n$/",},
},
Indicator={
description={
"Configuration of Indicator instances","* class – PHP class for this instance","* name – what to name the instance","* icon – visual representation of this instance",},
value={
{
class="Pickle\\IndicatorCommon",
name="fail",
icon="red-fail",
},{
class="Pickle\\IndicatorCommon",
name="todo-fail",
icon="yellow-fail",
},{
class="Pickle\\IndicatorCommon",
name="todo-good",
icon="yellow-good",
},{
class="Pickle\\IndicatorCommon",
name="skip-fail",
icon="yellow-fail",
},{
class="Pickle\\IndicatorCommon",
name="skip-good",
icon="yellow-good",
},{
class="Pickle\\IndicatorCommon",
name="pending",
icon="yellow-unknown",
},{
class="Pickle\\IndicatorCommon",
name="good",
icon="green-good",
},{
class="Pickle\\IndicatorCommon",
name="missing",
icon="yellow-unknown",
},{
class="Pickle\\IndicatorDefault",
icon="yellow-unknown",
},},
},
Category={
description={
"Configuration of Category instances","* class – PHP class for this instance","* name – what to name the instance","* key – part of a message key to describe the instance",},
value={
{
class="Pickle\\CategoryCommon",
name="fail",
key="fail",
},{
class="Pickle\\CategoryCommon",
name="pending",
key="pending",
},{
class="Pickle\\CategoryCommon",
name="good",
key="good",
},{
class="Pickle\\CategoryCommon",
name="todo-fail",
key="todo",
},{
class="Pickle\\CategoryCommon",
name="todo-good",
key="todo",
},{
class="Pickle\\CategoryCommon",
name="skip-fail",
key="skip",
},{
class="Pickle\\CategoryCommon",
name="skip-good",
key="skip",
},{
class="Pickle\\CategoryCommon",
name="missing",
key="missing",
},{
class="Pickle\\CategoryDefault",
key="unknown",
},},
},
LogEntry={
description={
"Configuration of LogEntry instances","* class – PHP class for this instance","* name – what to name the instance",},
value={
{
class="Pickle\\LogEntryCommon",
name="skip-fail",
},{
class="Pickle\\LogEntryCommon",
name="skip-good",
},{
class="Pickle\\LogEntryCommon",
name="todo-fail",
},{
class="Pickle\\LogEntryCommon",
name="todo-good",
},{
class="Pickle\\LogEntryCommon",
name="fail",
},{
class="Pickle\\LogEntryCommon",
name="good",
},{
class="Pickle\\LogEntryCommon",
name="exists",
},{
class="Pickle\\LogEntryCommon",
name="missing",
},{
class="Pickle\\LogEntryDefault",
},},
},
InvokeSubpage={
description={
"Configuration of InvokeSubpage instances","* class – PHP class for this instance","* type – system to invoke","* name – what to name the instance",},
value={
{
class="Pickle\\InvokeSubpageByContentType",
type="Scribunto",
name="testspec",
},{
class="Pickle\\InvokeSubpageByContentType",
type="Scribunto",
name="testcase",
},{
class="Pickle\\InvokeSubpageDefault",
},},
},
TAP={
description={
"Configuration of TAP instances","* class – PHP class for this instance",},
value={
{
class="Pickle\\TAP13Parser",
},{
class="Pickle\\TAPCommonParser",
},},
},
ExtractStatus={
description={
"Configuration of ExtractStatus instances","* class – PHP class for this instance","* pattern – how to recognize the status","* name – what to name the instance",},
value={
{
class="Pickle\\ExtractStatusByPattern",
name="fail",
pattern="/^(fail(ing|ed|)|bad|not\\s+ok|bail(ing|ed|)\\s+out!)$/i",
},{
class="Pickle\\ExtractStatusByPattern",
name="todo-fail",
pattern="/^(todo)[-_\\s](fail(ing|ed|)|bad|not\\s+ok)$/i",
},{
class="Pickle\\ExtractStatusByPattern",
name="todo-good",
pattern="/^(todo)[-_\\s](good|ok)$/i",
},{
class="Pickle\\ExtractStatusByPattern",
name="skip-fail",
pattern="/^(skipp?(ing|ed|))[-_\\s](fail(ing|ed|)|bad|not\\s+ok)$/i",
},{
class="Pickle\\ExtractStatusByPattern",
name="skip-good",
pattern="/^(skipp?(ing|ed|))[-_\\s](good|ok)$/i",
},{
class="Pickle\\ExtractStatusByPattern",
name="pending",
pattern="/^(pending)$/i",
},{
class="Pickle\\ExtractStatusByPattern",
name="good",
pattern="/^(good|ok)$/i",
},{
class="Pickle\\ExtractStatusDefault",
},},
},
},
callback="Pickle\\Hooks::onExtensionSetup",
ExtensionMessagesFiles={
RelatedArticlesMagic="Pickle.i18n.magic.php",
},
Hooks={
SpecTesterGadgets={
"Pickle\\IndicatorFactory::addIndicator",},
SpecTesteeGadgets={
"Pickle\\IndicatorFactory::addIndicator","Pickle\\CategoryFactory::addCategorization","Pickle\\LogEntryFactory::addLogEntry",},
ParserFirstCallInit={
"Pickle\\Hooks::onParserSetup",},
ContentAlterParserOutput={
"Pickle\\Hooks::onContentAlterParserOutput",},
OutputPageParserOutput={
"Pickle\\SubLinksView::onOutputPageParserOutput",},
["EditPage::showStandardInputs:options"]={
"Pickle\\ConsoleView::onShowStandardInputsOptions",},
["EditPage::showReadOnlyForm:initial"]={
"Pickle\\ConsoleView::onShowReadOnlyFormInitial",},
ScribuntoExternalLibraries={
"Pickle\\Hooks::onRegisterScribuntoLibraries",},
ScribuntoExternalLibraryPaths={
"Pickle\\Hooks::onRegisterScribuntoExternalLibraryPaths",},
},
TrackingCategories={
"pickle-tracking-category-good","pickle-tracking-category-pending","pickle-tracking-category-todo","pickle-tracking-category-skip","pickle-tracking-category-fail","pickle-tracking-category-missing","pickle-tracking-category-unknown",},
SpecialPages={
},
LogTypes={
"track",},
LogNames={
track="pickle-track-log-name",
},
LogHeaders={
track="pickle-track-log-header",
},
LogActions={
["track/good"]="pickle-track-log-entry-good",
["track/fail"]="pickle-track-log-entry-fail",
["track/skip-good"]="pickle-track-log-entry-skip-good",
["track/skip-fail"]="pickle-track-log-entry-skip-fail",
["track/todo-good"]="pickle-track-log-entry-todo-good",
["track/todo-fail"]="pickle-track-log-entry-todo-fail",
["track/missing"]="pickle-track-log-entry-missing",
["track/unknown"]="pickle-track-log-entry-unknown",
},
repository="https://git.wikimedia.org/tree/mediawiki%2Fextensions%2FBootstrap",
composer="jeblad/pickle",
},
Plausible={
name="Plausible",
version="1.4.0",
author={
"[https://www.mediawiki.org/wiki/User:Octfx Octfx]",},
url="https://www.mediawiki.org/wiki/Extension:Plausible",
descriptionmsg="ext-plausible-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
platform={
php="&gt;=8.0",
},
},
config={
PlausibleDomain={
description="Plausible Domain",
value=nil,
},
PlausibleDomainKey={
description="Domain Name",
value=nil,
},
PlausibleHonorDNT={
description="Honor the Do Not Track header and disable tracking",
value=true,
},
PlausibleTrackOutboundLinks={
description="Enable Tracking of outbound link clicks",
value=false,
},
PlausibleTrackFileDownloads={
description="Enable Tracking of link clicks that lead to files. This needs a custom event goal called 'File Download'.",
value=false,
},
PlausibleTrackFileDownloadExtensions={
description="List of file extensions to additionally track, e.g. 'js'",
value={
},
},
PlausibleTrackLoggedIn={
description="Enable Tracking for logged in users",
value=false,
},
PlausibleEnableTaggedEvents={
description="Enable tracking clicks to tagged elements via css classes",
value=false,
},
PlausibleIgnoredTitles={
description="List of page titles that should not be tracked",
value={
},
},
PlausibleTrackSearchInput={
description="Send search form inputs to plausible",
value=false,
},
PlausibleTrackEditButtonClicks={
description="Track clicks to the edit button",
value=false,
},
PlausibleTrack404={
description="Tracks 404 pages. Does not actually check 404 responses, instead 404 = page is unknown.",
value=false,
},
PlausibleTrackNavplateClicks={
description="Tracks clicks to links inside .navplate elements",
value=false,
},
PlausibleTrackInfoboxClicks={
description="Tracks clicks to links inside .mw-capiunto-infobox and .infobox elements",
value=false,
},
PlausibleTrackCitizenSearchLinks={
description="Track search link clicks. Only works with skin citizen.",
value=false,
},
PlausibleTrackCitizenMenuLinks={
description="Track menu link clicks. Only works with skin citizen.",
value=false,
},
PlausibleEnableOptOutTag={
description="Enables the &lt;plausible-opt-out /&gt; tag",
value=true,
},
PlausibleApiKey={
description="API Key used for querying statistics when Extension:PageViewInfo is active",
value="",
},
PlausibleServerSideTracking={
description="Server side events that get sent as custom events to plausible",
value={
pageview=false,
page404=false,
pageedit=true,
pagedelete=true,
pageundelete=true,
pagemove=true,
userregister=false,
userlogin=false,
userlogout=false,
fileupload=true,
filedelete=true,
fileundelete=true,
searchnotfound=true,
searchfound=true,
},
merge_strategy="array_plus",
},
},
ConfigRegistry={
Plausible="GlobalVarConfig::newInstance",
},
HookHandlers={
PageHooks={
class="MediaWiki\\Extension\\Plausible\\Hooks\\PageHooks",
services={
"MainConfig","JobQueueGroup",},
},
UserHooks={
class="MediaWiki\\Extension\\Plausible\\Hooks\\UserHooks",
services={
"MainConfig","JobQueueGroup",},
},
FileHooks={
class="MediaWiki\\Extension\\Plausible\\Hooks\\FileHooks",
services={
"MainConfig","JobQueueGroup",},
},
SearchHooks={
class="MediaWiki\\Extension\\Plausible\\Hooks\\SearchHooks",
services={
"MainConfig","JobQueueGroup",},
},
ParserHooks={
class="MediaWiki\\Extension\\Plausible\\Hooks\\ParserHooks",
},
MediaWikiServices={
class="MediaWiki\\Extension\\Plausible\\Hooks\\MediaWikiServices",
},
},
Hooks={
BeforePageDisplay="PageHooks",
PageSaveComplete="PageHooks",
ArticleDeleteAfterSuccess="PageHooks",
ParserFirstCallInit="ParserHooks",
MediaWikiServices="MediaWikiServices",
LocalUserCreated="UserHooks",
UserLogoutComplete="UserHooks",
UserLoginComplete="UserHooks",
UploadComplete="FileHooks",
FileDeleteComplete="FileHooks",
SpecialSearchNogomatch="SearchHooks",
SpecialSearchGoResult="SearchHooks",
ScribuntoExternalLibraries="MediaWiki\\Extension\\Plausible\\Hooks\\ScribuntoHooks::onScribuntoExternalLibraries",
},
JobClasses={
PlausibleEvent="MediaWiki\\Extension\\Plausible\\PlausibleEventJob",
},
composer="octfx/plausible",
repository="https://github.com/octfx/mediawiki-extension-Plausible.git",
},
Purge={
name="Purge",
version="2.0.0",
author={
"[https://www.mediawiki.org/wiki/User:Ævar_Arnfjörð_Bjarmason Ævar Arnfjörð Bjarmason]","[https://www.mediawiki.org/wiki/User:Hutchy68 Tom Hutchison]","[https://www.mediawiki.org/wiki/User:Samwilson Sam Wilson]",},
url="https://www.mediawiki.org/wiki/Extension:Purge",
descriptionmsg="purge-descriptionmsg",
["license-name"]="GPL-2.0+",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
SkinTemplateNavigation="MediaWiki\\Extension\\Purge\\Hooks::onSkinTemplateNavigation",
},
repository="https://github.com/AlPha5130/mediawiki-extensions-Purge",
},
PurgePage={
name="PurgePage",
version="1.0.1-alpha",
author={
"[https://www.mediawiki.org/wiki/User:F.trott Stephan Gambke]",},
url="https://www.mediawiki.org/wiki/Extension:PurgePage",
description="Provides the #purge parser function",
["license-name"]="GPL-2.0+",
type="parserhook",
requires={
MediaWiki="~1.26",
},
Hooks={
ParserFirstCallInit={
"PurgePage\\PurgePage::registerParserFunction",},
},
callback="PurgePage\\PurgePage::init",
repository="https://github.com/s7eph4n/PurgePage",
composer="mediawiki/purge-page",
},
QRLite={
name="QRLite",
version="1.0.0-alpha4",
author={
"Simon Heimler (gesinn.it GmbH &amp; Co. KG)","Alexander Gesinn (gesinn.it GmbH &amp; Co. KG)",},
url="https://github.com/gesinn-it/QRLite",
descriptionmsg="qrlite-desc",
["license-name"]="GPL-3.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.35",
},
ExtensionMessagesFiles={
QRLiteMagic="QRLite.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="QRLite",
},
HookHandlers={
QRLite={
class="MediaWiki\\Extension\\QRLite\\QRLiteHooks",
},
},
composer="gesinn-it/qrlite",
repository="https://github.com/gesinn-it/QRLite.git",
},
QueryViz={
name="QueryViz",
version="0.1.0",
author={
"Antoine Lamielle",},
url="https://www.mediawiki.org/wiki/Extension:QueryViz",
namemsg="queryviz",
descriptionmsg="queryviz-desc",
["license-name"]="GPL-2.0+",
type="other",
config={
wgQueryVizEndpoint="",
},
Hooks={
ParserFirstCallInit={
"QueryViz\\Hooks::onParserFirstCallInit",},
},
repository="https://github.com/lingua-libre/QueryViz.git",
},
Radyjonka={
name="Radyjonka",
author="Petr Kajzar",
url="https://www.mediawiki.org/wiki/Extension:Radyjonka",
["license-name"]="CC0-1.0",
version="0.4.0",
descriptionmsg="radyjonka-desc",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
OutputPageBeforeHTML="RadyjonkaHooks::onOutputPageBeforeHTML",
},
config={
RadyjonkaLinkedData={
value=false,
description="Linked data in an associative array.",
},
RadyjonkaPWA={
value=false,
description="Use manifest.json and sw.js to create an PWA?",
},
},
type="other",
repository="https://bitbucket.org/wikiskripta/radyjonka.git",
},
RatePage={
name="RatePage",
author={
"Ostrzyciel","Polskacafe",},
["license-name"]="GPL-2.0-or-later",
version="2.14.0",
requires={
MediaWiki="&gt;= 1.36.0",
},
namemsg="ratePage",
descriptionmsg="ratePage-desc",
url="https://www.mediawiki.org/wiki/Extension:RatePage",
config={
RPFooterRatingStars=true,
RPRatingAllowedNamespaces=nil,
RPRatingPageBlacklist={
},
RPSidebarPosition=2,
RPRatingMin=1,
RPRatingMax=5,
RPFrontendEnabled=true,
RPAddSidebarSection=true,
RPUseMMVModule=true,
RPEnableSMWRatings=true,
RPEnableSMWContests=true,
RPShowResultsBeforeVoting=false,
RPImmediateSMWUpdate=false,
},
GroupPermissions={
["*"]={
["ratepage-vote"]=true,
["ratepage-contests-view-list"]=true,
},
sysop={
["ratepage-contests-view-details"]=true,
["ratepage-contests-edit"]=true,
},
bureaucrat={
["ratepage-contests-clear"]=true,
},
},
ExtensionMessagesFiles={
RatePageMagic="RatePage.magic.php",
RatePageAlias="RatePage.alias.php",
},
Hooks={
BeforePageDisplay="RatePage\\Hooks::onBeforePageDisplay",
LoadExtensionSchemaUpdates="RatePage\\Hooks::onLoadExtensionSchemaUpdates",
SidebarBeforeOutput="RatePage\\Hooks::onSidebarBeforeOutput",
ParserFirstCallInit="RatePage\\Hooks::onParserFirstCallInit",
["SMW::Property::initProperties"]="RatePage\\SMW\\Hooks::onInitProperties",
["SMW::Store::BeforeDataUpdateComplete"]="RatePage\\SMW\\Hooks::onBeforeDataUpdateComplete",
},
SpecialPages={
RatePageContests="RatePage\\Special\\RatePageContests",
},
APIModules={
ratepage="RatePage\\Api\\RatePage",
},
APIPropModules={
pagerating="RatePage\\Api\\QueryPageRatingProp",
},
LogTypes={
"ratepage-contest",},
LogNames={
["ratepage-contest"]="ratePage-contest-log",
},
LogHeaders={
["ratepage-contest"]="ratePage-contest-log-header",
},
LogActionsHandlers={
["ratepage-contest/*"]="RatePage\\ContestLogFormatter",
},
type="other",
callback="RatePage\\Hooks::onRegistration",
repository="https://gitlab.com/nonsensopedia/extensions/ratepage.git/",
},
RealTimeUsers={
name="RealTimeUsers",
version="1.0",
author="[https://www.wikiskripta.eu/w/User:Josmart Josef Martiňák]",
url="https://bitbucket.org/wikiskripta/realtimeusers",
descriptionmsg="realtimeusers-desc",
["license-name"]="MIT",
type="parserhook",
status="stable",
requires={
MediaWiki="&gt;= 1.29.0",
},
SpecialPages={
RealTimeUsers="RealTimeUsers",
},
Hooks={
ParserFirstCallInit="RealTimeUsersHooks::registerParserHook",
BeforePageDisplay="RealTimeUsersHooks::showChart",
},
config={
refreshInterval={
value=10,
description="Refreshing interval in seconds of RT users number displayed on a webpage.",
},
},
repository="https://bitbucket.org/wikiskripta/realtimeusers.git",
},
RecentChangesLogFilter={
name="RecentChangesLogFilter",
author="Patrick Westerhoff",
version="1.3",
url="http://mediawiki.org/wiki/Extension:RecentChangesLogFilter",
["license-name"]="MPL-2.0",
description="Filters log entries from Special:RecentChanges",
descriptionmsg="recentchangeslogfilter-desc",
type="other",
requires={
MediaWiki="&gt;= 1.25.0",
},
Hooks={
ChangesListSpecialPageFilters="RecentChangesLogFilterHooks::onChangesListSpecialPageFilters",
ChangesListSpecialPageQuery="RecentChangesLogFilterHooks::onChangesListSpecialPageQuery",
GetPreferences="RecentChangesLogFilterHooks::onGetPreferences",
},
DefaultUserOptions={
rchidelogs=1,
},
config={
RecentChangesLogFilterTypes={
"newusers",},
},
repository="https://github.com/poke/mediawiki-RecentChangesLogFilter.git",
},
RecorderWizard={
name="RecordWizard",
version="0.1.0",
author={
"Antoine Lamielle",},
url="https://www.mediawiki.org/wiki/Extension:RecorderWizard",
namemsg="recordWizard",
descriptionmsg="recordWizard-desc",
["license-name"]="GPL-2.0+",
type="other",
config={
wgRecordWizardConfig={
properties={
langCode="",
iso3="",
gender="",
spokenLanguages="",
instanceOf="",
linkedUser="",
subclassOf="",
audioRecord="",
speaker="",
date="",
transcription="",
wikidataId="",
mediaType="",
languageLevel="",
residencePlace="",
learningPlace="",
},
items={
genderMale="",
genderFemale="",
genderOther="",
language="",
speaker="",
record="",
word="",
langLevelNative="",
langLevelGood="",
langLevelAverage="",
langLevelBeginner="",
mediaTypeAudio="",
mediaTypeVideo="",
},
listNamespace=0,
},
},
DefaultUserOptions={
["recwiz-lang"]="",
},
APIListModules={
rwrecords="RecordWizard\\ApiQueryRwRecords",
},
SpecialPages={
RecordWizard="SpecialRecordWizard",
},
ExtensionMessagesFiles={
RecordWizardAlias="RecordWizard.alias.php",
},
Hooks={
ResourceLoaderTestModules={
"RecordWizardHooks::onResourceLoaderTestModules",},
GetPreferences={
"RecordWizardHooks::onGetPreferences",},
UploadStashFile={
"RecordWizardHooks::onUploadStashFile",},
},
repository="https://github.com/lingua-libre/RecordWizard.git",
},
ResourceLoaderArticles={
name="ResourceLoaderArticles",
version="2.2.1",
author={
"[https://fo-nttax.de Alex Winkler]",},
url="https://github.com/Liquipedia/ResourceLoaderArticles",
descriptionmsg="resourceloaderarticles-desc",
["license-name"]="GPL-2.0+",
type="other",
requires={
MediaWiki="&gt;= 1.39.3",
},
ExtensionMessagesFiles={
ResourceLoaderArticlesAlias="i18n/ResourceLoaderArticlesAlias.php",
},
SpecialPages={
ResourceLoaderArticles="\\Liquipedia\\Extension\\ResourceLoaderArticles\\SpecialPage\\SpecialResourceLoaderArticles",
},
HookHandlers={
Main={
class="\\Liquipedia\\Extension\\ResourceLoaderArticles\\Hooks\\MainHookHandler",
},
Schema={
class="\\Liquipedia\\Extension\\ResourceLoaderArticles\\Hooks\\SchemaHookHandler",
},
},
Hooks={
BeforePageDisplay="Main",
LoadExtensionSchemaUpdates="Schema",
MakeGlobalVariablesScript="Main",
ResourceLoaderRegisterModules="Main",
},
AvailableRights={
"adminresourceloaderarticles",},
GroupPermissions={
sysop={
adminresourceloaderarticles=true,
},
},
config={
ResourceLoaderArticlesWiki={
value="/commons/load.php",
path=false,
description="load.php of central wiki",
public=true,
},
},
repository="https://github.com/Liquipedia/ResourceLoaderArticles.git",
},
ResponsiveFrontend={
name="ResponsiveFrontend",
author={
"Polskacafe","Ostrzyciel",},
namemsg="responsiveFrontend",
descriptionmsg="responsiveFrontend-desc",
["license-name"]="GPL-3.0-or-later",
version="0.2.4",
type="other",
requires={
MediaWiki="&gt;= 1.37.0",
},
Hooks={
ArticleContentOnDiff="DiffHooks",
GetSlotDiffRenderer="DiffHooks",
["EditPage::showEditForm:initial"]="DiffHooks",
GetPreferences="DiffHooks",
},
HookHandlers={
DiffHooks={
class="MediaWiki\\Extension\\ResponsiveFrontend\\Hooks",
services={
"UserOptionsLookup",},
},
},
DefaultUserOptions={
["responsive-use-flex-diffs"]=true,
},
repository="https://gitlab.com/nonsensopedia/extensions/responsivefrontend.git/",
},
RottenLinks={
name="RottenLinks",
version="1.0.20",
author={
"John Lewis","Universal Omega",},
descriptionmsg="rottenlinks-desc",
["license-name"]="GPL-3.0-or-later",
url="https://github.com/miraheze/RottenLinks",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.3",
},
SpecialPages={
RottenLinks="SpecialRottenLinks",
},
ExtensionMessagesFiles={
RottenLinksAliases="includes/RottenLinksAliases.php",
},
Hooks={
LoadExtensionSchemaUpdates={
"RottenLinksHooks::fnRottenLinksSchemaUpdates",},
},
config={
RottenLinksBadCodes={
description="Holds a list of HTTP codes that are considered bad. (array)",
public=true,
value={
"0","400","401","403","404","405","502","503","504",},
},
RottenLinksCurlTimeout={
description="Sets the timeout for cURL in seconds. (integer)",
public=true,
value=30,
},
RottenLinksHTTPProxy={
description="Sets a proxy to use for requests. (string)",
public=true,
value="",
},
RottenLinksExcludeProtocols={
description="Holds a list of protocols that should not be checked for validity. (array)",
public=true,
value={
"tel","mailto",},
},
RottenLinksExcludeWebsites={
description="List of websites to exclude checking of response codes for. (array)",
public=true,
value=false,
},
RottenLinksExternalLinkTarget={
description="Sets the external link target (_self for the current tab or _blank for a new tab). (string)",
public=true,
value="_self",
},
RottenLinksUserAgent={
description="Overrides the user-agent to use for requests. Defaults to 'RottenLinks, MediaWiki extension (https://github.com/miraheze/RottenLinks), running on &lt;Wiki base URL&gt;'. (string)",
public=true,
value="",
},
},
ConfigRegistry={
rottenlinks="GlobalVarConfig::newInstance",
},
composer="miraheze/rotten-links",
repository="https://github.com/miraheze/RottenLinks",
},
SLight={
name="SLight",
version="1.0",
author="[https://www.wikiskripta.eu/w/User:Josmart Josef Martiňák]",
url="https://bitbucket.org/wikiskripta/slight",
description="Extension allows inserting Silverlight content",
type="parserhook",
["license-name"]="MIT",
status="stable",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="SLightHooks::registerParserHook",
},
repository="https://bitbucket.org/wikiskripta/slight",
},
Sanat={
name="Sanat",
version="2.0.0+20231110",
author={
"Niklas Laxström",},
url="https://github.com/Nikerabbit/mediawiki-extensions-Sanat",
description="Supporting code for sanat.csc.fi",
["license-name"]="GPL-2.0-or-later",
repository="https://github.com/Nikerabbit/mediawiki-extensions-Sanat.git",
},
Sanctions={
name="Sanctions",
version="1.2.3",
author="[https://femiwiki.com/ Femiwiki Team]",
url="https://www.mediawiki.org/wiki/Extension:Sanctions",
descriptionmsg="sanctions-desc",
["license-name"]="AGPL-3.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.0",
extensions={
Echo="*",
Flow="*",
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
Hooks={
BeforeCreateEchoEvent="MediaWiki\\Extension\\Sanctions\\Hooks\\Notification::onBeforeCreateEchoEvent",
ContributionsToolLinks="ToolLinks",
DiffTools="ToolLinks",
EmailConfirmed="Notification",
GetUserBlock="Block",
FlowAddModules="main",
HistoryTools="ToolLinks",
LoadExtensionSchemaUpdates="SchemaChanges",
RecentChange_save="main",
ResourceLoaderGetConfigVars="main",
SidebarBeforeOutput="ToolLinks",
UserToolLinksEdit="ToolLinks",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Sanctions\\Hooks\\Main",
services={
"SanctionStore","VoteStore","UserFactory",},
},
SchemaChanges={
class="MediaWiki\\Extension\\Sanctions\\Hooks\\SchemaChanges",
},
Block={
class="MediaWiki\\Extension\\Sanctions\\Hooks\\Block",
services={
"SanctionStore","MainWANObjectCache",},
},
Notification={
class="MediaWiki\\Extension\\Sanctions\\Hooks\\Notification",
},
ToolLinks={
class="MediaWiki\\Extension\\Sanctions\\Hooks\\ToolLinks",
services={
"UserFactory","LinkRenderer",},
},
},
SpecialPages={
Sanctions={
class="MediaWiki\\Extension\\Sanctions\\SpacialSanctions",
services={
"SanctionStore","UserFactory","RevisionLookup","LinkRenderer",},
},
},
DefaultUserOptions={
["echo-subscriptions-web-sanctions-against-me"]=true,
["echo-subscriptions-email-sanctions-against-me"]=true,
},
ExtensionMessagesFiles={
SanctionsAlias="Sanctions.alias.php",
},
composer="femiwiki/sanctions",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Sanctions",
},
SaneCase={
name="SaneCase",
version="2.0",
author={
"Martin Tournoij",},
description="Automatically redirect case mistakes",
url="https://www.mediawiki.org/wiki/Extension:SaneCase",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
BeforeDisplayNoArticleText={
"SaneCase::onBeforeDisplayNoArticleText",},
},
repository="https://github.com/ciencia/mediawiki-extensions-SaneCase.git",
},
ScratchBlocks4={
name="ScratchBlocks4",
author={
"ErnieParke","blob8108","apple502j","kenny2github",},
url="https://github.com/InternationalScratchWiki/mw-ScratchBlocks4",
descriptionmsg="sb3-desc",
["license-name"]="MIT",
type="parserhook",
Hooks={
ParserFirstCallInit="main",
ResourceLoaderGetConfigVars="main",
},
HookHandlers={
main={
class="Scratchblock4Hook",
},
},
config={
ScratchBlocks4Langs={
value={
},
},
ScratchBlocks4BlockVersion={
value="3.0",
},
},
requires={
MediaWiki="&gt;= 1.35.0",
},
repository="https://github.com/InternationalScratchWiki/mw-ScratchBlocks4.git",
},
["Scratch Account Request System"]={
name="Scratch Account Request System",
descriptionmsg="scratch-confirmaccount-desc",
author={
"Jacob G. (jvvg)","Naleksuh","apple502j","Kenny2scratch","ahmetlii",},
url="https://github.com/InternationalScratchWiki/scratch-confirmaccount-v3",
version="0.1",
["license-name"]="GPL-2.0-or-later",
ExtensionMessagesFiles={
ScratchConfirmAccount="src/ScratchConfirmAccount.i18n.alias.php",
},
SpecialPages={
RequestAccount={
class="SpecialRequestAccount",
services={
"PasswordFactory","HookContainer","JobQueueGroup",},
},
ConfirmAccounts={
class="SpecialConfirmAccounts",
services={
"JobQueueGroup",},
},
},
JobClasses={
accountRequestCleanup="AccountRequestCleanupJob",
expiredBlockCleanup="ExpiredBlockCleanupJob",
},
HookHandlers={
main={
class="ScratchConfirmAccountHooks",
},
},
Hooks={
LoadExtensionSchemaUpdates="main",
BeforePageDisplay="main",
GetPreferences="main",
["SkinTemplateNavigation::Universal"]="main",
AuthChangeFormFields="main",
},
config={
ScratchVerificationProjectID={
value="10135908",
},
ScratchVerificationProjectAuthor={
value="ModShare",
},
ScratchAccountRequestRejectCooldownDays={
value=7,
},
ScratchAccountCheckDisallowNewScratcher={
value=false,
},
ScratchAccountJoinedRequirement={
value=0,
},
ScratchAccountAutoRejectStaleAwaitingUserRequestDays={
value=30,
},
AutoWelcomeNewUsers={
value=true,
},
},
DefaultUserOptions={
["scratch-confirmaccount-open-scratch"]=true,
},
AuthManagerAutoConfig={
preauth={
ScratchConfirmAccountPreAuthenticationProvider={
class="ScratchConfirmAccountPreAuthenticationProvider",
sort=10,
services={
"PasswordFactory",},
},
},
},
requires={
MediaWiki="&gt;= 1.35.0",
},
repository="https://github.com/InternationalScratchWiki/scratch-confirmaccount-v3",
},
["Scratch Login"]={
name="Scratch Login",
author={
"Jacob G. (jvvg)","Kenny2scratch",},
url="https://github.com/jacob-g/mediawiki-scratch-login",
descriptionmsg="scratchlogin-desc",
version="2.0",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
SpecialPages={
ScratchLogin={
class="SpecialScratchLogin",
services={
"UserFactory",},
},
ScratchPasswordReset={
class="SpecialScratchPasswordReset",
services={
"UserFactory","AuthManager",},
},
},
Hooks={
BeforePageDisplay="main",
},
HookHandlers={
main={
class="ScratchLoginHooks",
},
},
config={
ScratchLoginAuthenticator={
value={
value="project",
},
},
},
requires={
MediaWiki="&gt;= 1.35.0",
},
repository="https://github.com/InternationalScratchWiki/mediawiki-scratch-login.git",
},
ScratchSig3={
name="ScratchSig3",
author={
"Naleksuh","Jacob G. (jvvg)",},
url="https://github.com/InternationalScratchWiki/mw-scratchsig3",
Hooks={
ParserFirstCallInit="main",
},
HookHandlers={
main={
class="ScratchSig",
},
},
requires={
MediaWiki="&gt;= 1.35.0",
},
repository="https://github.com/InternationalScratchWiki/mw-scratchsig3.git",
},
["Search Logger"]={
name="Search Logger",
version="2.1.0",
author={
"Alexia E. Smith","Hydra Wiki Platform Team",},
url="https://gitlab.com/HydraWiki/extensions/SearchLogger",
descriptionmsg="searchlogger_description",
["license-name"]="GPL-3.0-only",
type="specialpage",
requires={
MediaWiki="&gt;= 1.29.0",
extensions={
HydraCore="&gt;= 3.0.0",
},
},
AvailableRights={
"search_log",},
GroupPermissions={
sysop={
search_log=true,
},
},
SpecialPages={
SearchLog="SpecialSearchLog",
},
ExtensionMessagesFiles={
SearchLoggerAliases="SearchLogger.alias.php",
},
Hooks={
LoadExtensionSchemaUpdates="SearchLoggerHooks::onLoadExtensionSchemaUpdates",
SpecialSearchResultsPrepend="SearchLoggerHooks::onSpecialSearchResultsPrepend",
},
repository="https://gitlab.com/hydrawiki/extensions/SearchLogger.git",
},
SemanticApprovedRevs={
name="SemanticApprovedRevs",
version="0.9.2",
author={
"James Hong Kong","...",},
url="https://github.com/SemanticMediaWiki/SemanticApprovedRevs/",
descriptionmsg="semantic-approvedrevs-desc",
namemsg="semantic-approvedrevs-name",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.31",
},
callback="SMW\\ApprovedRevs\\Hooks::initExtension",
ExtensionFunctions={
"SMW\\ApprovedRevs\\Hooks::onExtensionFunction",},
repository="https://github.com/SemanticMediaWiki/SemanticApprovedRevs",
composer="mediawiki/semantic-approved-revs",
},
SemanticBreadcrumbLinks={
name="SemanticBreadcrumbLinks",
version="2.1.0-alpha",
author={
"James Hong Kong","...",},
url="https://github.com/SemanticMediaWiki/SemanticBreadcrumbLinks/",
descriptionmsg="sbl-desc",
namemsg="sbl-name",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.27",
},
callback="SemanticBreadcrumbLinks::initExtension",
ExtensionFunctions={
"SemanticBreadcrumbLinks::onExtensionFunction",},
repository="https://github.com/SemanticMediaWiki/SemanticBreadcrumbLinks",
composer="mediawiki/semantic-breadcrumb-links",
},
SemanticCite={
name="SemanticCite",
version="3.0.0",
author={
"James Hong Kong",},
url="https://github.com/SemanticMediaWiki/SemanticCite/",
descriptionmsg="sci-desc",
namemsg="sci-name",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.35",
extensions={
SemanticMediaWiki="&gt;= 3.0",
},
},
callback="SemanticCite::initExtension",
ExtensionFunctions={
"SemanticCite::onExtensionFunction",},
repository="https://github.com/SemanticMediaWiki/SemanticCite",
composer="mediawiki/semantic-cite",
},
SemanticCommonsClient={
name="SemanticCommonsClient",
author="Ostrzyciel",
url="https://gitlab.com/nonsensopedia/extensions/semanticcommonsclient",
["license-name"]="GPL-3.0-or-later",
version="0.4.1",
namemsg="semanticCommonsClient",
descriptionmsg="semanticCommonsClient-desc",
requires={
MediaWiki="&gt;= 1.35.0",
extensions={
Scribunto="*",
},
},
ServiceWiringFiles={
"includes/Services/ServiceWiring.php",},
config={
SccCommonsApiUrl="https://commons.wikimedia.org/w/api.php",
SccWikidataQueryServiceUrl="https://query.wikidata.org/bigdata/namespace/wdq/sparql",
},
Hooks={
ScribuntoExternalLibraries="SemanticCommonsClient\\Scribunto\\Hooks::onScribuntoExternalLibraries",
},
APIModules={
purgecommonsmetadata={
class="SemanticCommonsClient\\Api\\PurgeMetadataModule",
services={
"MainObjectStash","PermissionManager",},
},
},
AvailableRights={
"purge-commons-metadata",},
GroupPermissions={
rollback={
["purge-commons-metadata"]=true,
},
["content-moderator"]={
["purge-commons-metadata"]=true,
},
sysop={
["purge-commons-metadata"]=true,
},
},
type="other",
repository="https://gitlab.com/nonsensopedia/extensions/semanticcommonsclient.git/",
},
SemanticCompoundQueries={
name="SemanticCompoundQueries",
version="2.2.0",
author={
"James Hong Kong","Yaron Koren","...",},
url="https://www.semantic-mediawiki.org/wiki/Extension:Semantic_Compound_Queries",
descriptionmsg="semanticcompoundqueries-desc",
namemsg="semanticcompoundqueries-name",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.31",
extensions={
SemanticMediaWiki="&gt;= 3.0",
},
},
callback="SemanticCompoundQueries::initExtension",
ExtensionFunctions={
"SemanticCompoundQueries::onExtensionFunction",},
repository="https://github.com/SemanticCompoundQueries/SemanticCompoundQueries",
composer="mediawiki/semantic-compound-queries",
},
Semantic_Drilldown={
name="SemanticDrilldown",
version="4.0.0-beta3",
author={
"Yaron Koren","gesinn.it team","...",},
url="https://www.mediawiki.org/wiki/Extension:Semantic_Drilldown",
descriptionmsg="semanticdrilldown-desc",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.35",
platform={
php="&gt;= 7.4",
},
},
SpecialPages={
BrowseData="SD\\Services::getSpecialBrowseData",
},
ExtensionMessagesFiles={
SemanticDrilldownMagic="languages/SemanticDrilldown.i18n.magic.php",
SemanticDrilldownAlias="languages/SD_Aliases.php",
},
Hooks={
AdminLinks="SD\\Utils::addToAdminLinks",
MagicWordwgVariableIDs="SD\\Utils::addMagicWordVariableIDs",
MakeGlobalVariablesScript="SD\\Utils::setGlobalJSVariables",
ParserAfterTidy="SD\\Utils::handleShowAndHide",
PageSchemasRegisterHandlers="SD\\PageSchemas::registerClass",
ParserFirstCallInit="SD\\Services::onParserFirstCallInit",
UnitTestsList="SD\\Utils::onUnitTestsList",
},
config={
HideCategoriesByDefault=false,
NumResultsPerPage=250,
FiltersSmallestFontSize=-1,
FiltersLargestFontSize=-1,
ShowCategoriesAsTabs=false,
MinValuesForComboBox=40,
NumRangesForNumberFilters=6,
HideFiltersWithoutValues=false,
DisableFilterCollapsible=false,
ResultFormatTypes={
broadtable="paged",
category="paged",
count="unsupported",
csv="unsupported",
debug="unsupported",
dsv="unsupported",
embedded="paged",
feed="unsupported",
gantt="unsupported",
icalendar="unsupported",
jqplotchart="unsupported",
jqplotseries="paged",
json="unsupported",
list="paged",
map="unpaged",
ol="paged",
plainlist="paged",
rdf="unsupported",
spreadsheet="unsupported",
table="paged",
template="paged",
templatefile="unsupported",
ul="paged",
},
["_prefix"]="sdg",
},
composer="mediawiki/semantic-drilldown",
repository="https://github.com/SemanticMediaWiki/SemanticDrilldown.git",
},
SemanticExternalQueryLookup={
name="SemanticExternalQueryLookup",
version="1.0.0-alpha",
author={
"James Hong Kong",},
url="https://www.mediawiki.org/wiki/Extension:SemanticExternalQueryLookup",
descriptionmsg="seql-desc",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.28",
extensions={
SemanticMediaWiki="&gt;= 3.0",
},
},
callback="SemanticExternalQueryLookup::onExtensionFunction",
config_prefix="seqlg",
config={
HttpResponseCacheLifetime={
value=300,
description="Specifies how long a response is cached before a new request is routed to the endpoint. This avoids that repeated requests with the same signature are made to an endpoint.",
},
HttpResponseCacheType={
value=-1,
description="Type of the cache to be used, using CACHE_NONE will disable the caching and reroutes every request to the endpoint.",
},
ExternalRepositoryEndpoints={
value={
},
description="An array that identifies valid endpoints with a key expecting yo corresponds to an interwiki prefix. Details of that prefix can be either inserted directly into MediaWiki's interwiki table or through this setting.",
},
ExternalRepositoryCredentials={
value={
},
description="An array that defines credentials to access remote wikis in case they're read-protected. Array keys should be named after interwiki prefixes from 'seqlgExternalRepositoryEndpoints' and contain an array with 'username' and 'password' keys",
},
ExternalQueryEnabledNamespaces={
value={
},
description="An array defines list of namespaces allowed to execute queries against remote sources. Keep empty to allow every namespace.",
},
},
repository="https://github.com/SemanticMediaWiki/SemanticExternalQueryLookup",
composer="mediawiki/semantic-external-query-lookup",
},
SemanticExtraSpecialProperties={
name="SemanticExtraSpecialProperties",
version="3.0.4",
author={
"Leo Wallentin","James Hong Kong","[https://professional.wiki/ Professional Wiki]","[https://github.com/SemanticMediaWiki/SemanticExtraSpecialProperties/graphs/contributors ...]",},
url="https://github.com/SemanticMediaWiki/SemanticExtraSpecialProperties/",
descriptionmsg="sesp-desc",
namemsg="sesp-name",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.35",
extensions={
SemanticMediaWiki="*",
},
},
callback="SESP\\Hook::callback",
ConfigRegistry={
sespg="SESP\\Config::newInstance",
},
config_prefix="sespg",
config={
UseFixedTables={
value=false,
path=false,
description="To setup properties as fixed properties in order to improve data access",
descriptionmsg="sesp-config-uses-fixed-tables",
},
DefinitionsFile={
value="data/definitions.json",
path=true,
description="Location of the property definitions",
descriptionmsg="sesp-config-definitions-file",
},
LocalDefinitions={
value={
},
path=false,
description="Specifies local definitions",
descriptionmsg="sesp-config-local-definitions",
},
EnabledPropertyList={
value={
},
path=false,
description="Specifies the enabled properties",
descriptionmsg="sesp-config-enabled-property-list",
},
LabelCacheVersion={
value="2018.03",
path=false,
description="Specifies an internal cache modifier",
descriptionmsg="sesp-config-label-cache-version",
},
ExcludeBotEdits={
value=false,
path=false,
description="Should edits via user accounts in usergroup \"bot\" be ignored when storing data for the special properties?",
descriptionmsg="sesp-config-exclude-bot-edits",
},
},
Hooks={
SetupAfterCache="SESP\\Hook::onSetupAfterCache",
},
repository="https://github.com/SemanticMediaWiki/SemanticExtraSpecialProperties",
composer="mediawiki/semantic-extra-special-properties",
},
SemanticFormsSelect={
name="Semantic Forms Select",
version="4.0.0-beta",
author={
"Jason Zhang","James Hong Kong","Toni Hermoso Pulido","Thomas Mulhall","Alexander Gesinn","[https://github.com/SemanticMediaWiki/SemanticFormsSelect/graphs/contributors ...]",},
url="https://www.mediawiki.org/wiki/Extension:SemanticFormsSelect",
descriptionmsg="sfs-desc",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.35",
},
config={
ScriptSelectCount=0,
SF_Select_debug=false,
},
callback="SFS\\Hooks::onRegistration",
Hooks={
ParserFirstCallInit={
"SFS\\Hooks::onSemanticFormsSelectSetup",},
ResourceLoaderTestModules={
"SFS\\Hooks::onResourceLoaderTestModules",},
},
composer="mediawiki/semantic-forms-select",
repository="https://github.com/SemanticMediaWiki/SemanticFormsSelect.git",
},
Semantic_Glossary={
name="Semantic Glossary",
version="4.0.0",
author={
"[https://www.mediawiki.org/wiki/User:F.trott Stephan Gambke]","[https://www.semantic-mediawiki.org/wiki/User:MWJames James Hong Kong]","...",},
url="https://www.mediawiki.org/wiki/Extension:Semantic_Glossary",
descriptionmsg="semanticglossary-desc",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="~1.31",
extensions={
Lingo="*",
},
},
callback="SemanticGlossary::initExtension",
repository="https://github.com/SemanticMediaWiki/SemanticGlossary.git",
composer="mediawiki/semantic-glossary",
},
SemanticInterlanguageLinks={
name="SemanticInterlanguageLinks",
version="2.2.0-alpha",
author={
"James Hong Kong","...",},
url="https://github.com/SemanticMediaWiki/SemanticInterlanguageLinks/",
descriptionmsg="sil-desc",
namemsg="sil-name",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.35",
},
callback="SemanticInterlanguageLinks::initExtension",
ExtensionFunctions={
"SemanticInterlanguageLinks::onExtensionFunction",},
repository="https://github.com/SemanticMediaWiki/SemanticInterlanguageLinks",
composer="mediawiki/semantic-interlanguage-links",
},
SemanticJsonExport={
name="SemanticJsonExport",
version="1.0.0",
author={
"Pierre Boutet",},
url="https://github.com/Wikifab/ext-SemanticJsonExport",
descriptionmsg="semanticjsonexport-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.28.0",
},
DefaultUserOptions={
["semanticjsonexport-enable"]=1,
},
SpecialPages={
ExportSemanticJson="Semanticjsonexport\\SpecialExport",
},
composer="wikifab/semantic-json-export",
repository="https://github.com/Wikifab/ext-SemanticJsonExport",
},
SemanticMediaWiki={
name="SemanticMediaWiki",
version="4.1.2",
author={
"[https://korrekt.org Markus Krötzsch]","[https://EntropyWins.wtf/mediawiki Jeroen De Dauw]","James Hong Kong","[https://professional.wiki/ Professional Wiki]","[https://www.semantic-mediawiki.org/wiki/Contributors ...]",},
url="https://www.semantic-mediawiki.org",
descriptionmsg="smw-desc",
namemsg="smw-title",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.35",
},
Hooks={
CanonicalNamespaces="SMW\\MediaWiki\\Hooks::onCanonicalNamespaces",
["ApiMain::moduleManager"]="SMW\\MediaWiki\\Hooks::onApiModuleManager",
},
callback="SemanticMediaWiki::initExtension",
ExtensionFunctions={
"SemanticMediaWiki::onExtensionFunction",},
ExtensionMessagesFiles={
SemanticMediaWikiAlias="i18n/extra/SemanticMediaWiki.alias.php",
SemanticMediaWikiMagic="i18n/extra/SemanticMediaWiki.magic.php",
},
ContentHandlers={
["smw/schema"]="SMW\\MediaWiki\\Content\\SchemaContentHandler",
},
QUnitTestModule={
["ext.smw.tests"]={
scripts={
"tests/qunit/smw/ext.smw.test.js","tests/qunit/smw/util/ext.smw.util.tooltip.test.js","tests/qunit/smw/data/ext.smw.dataItem.wikiPage.test.js","tests/qunit/smw/data/ext.smw.dataItem.uri.test.js","tests/qunit/smw/data/ext.smw.dataItem.time.test.js","tests/qunit/smw/data/ext.smw.dataItem.property.test.js","tests/qunit/smw/data/ext.smw.dataItem.unknown.test.js","tests/qunit/smw/data/ext.smw.dataItem.number.test.js","tests/qunit/smw/data/ext.smw.dataItem.text.test.js","tests/qunit/smw/data/ext.smw.dataValue.quantity.test.js","tests/qunit/smw/data/ext.smw.data.test.js","tests/qunit/smw/api/ext.smw.api.test.js","tests/qunit/smw/query/ext.smw.query.test.js",},
dependencies={
"ext.smw","ext.smw.tooltip","ext.smw.query","ext.smw.data","ext.smw.api",},
position="top",
localBasePath="",
remoteExtPath="SemanticMediaWiki",
},
},
SpecialPages={
ExportRDF="SMWSpecialOWLExport",
SMWAdmin="SMW\\MediaWiki\\Specials\\SpecialAdmin",
PendingTaskList="SMW\\MediaWiki\\Specials\\SpecialPendingTaskList",
Ask="SMW\\MediaWiki\\Specials\\SpecialAsk",
Browse="SMW\\MediaWiki\\Specials\\SpecialBrowse",
Concepts="SMW\\SpecialConcepts",
PageProperty="SMW\\MediaWiki\\Specials\\SpecialPageProperty",
SearchByProperty="SMW\\MediaWiki\\Specials\\SpecialSearchByProperty",
PropertyLabelSimilarity="SMW\\MediaWiki\\Specials\\SpecialPropertyLabelSimilarity",
ProcessingErrorList="SMW\\MediaWiki\\Specials\\SpecialProcessingErrorList",
MissingRedirectAnnotations="SMW\\MediaWiki\\Specials\\SpecialMissingRedirectAnnotations",
ConstraintErrorList="SMW\\MediaWiki\\Specials\\SpecialConstraintErrorList",
Types="SMWSpecialTypes",
URIResolver="SMW\\MediaWiki\\Specials\\SpecialURIResolver",
Properties="SMW\\SpecialProperties",
UnusedProperties="SMW\\SpecialUnusedProperties",
WantedProperties="SMW\\SpecialWantedProperties",
},
JobClasses={
["smw.update"]="SMW\\MediaWiki\\Jobs\\UpdateJob",
["smw.refresh"]="SMW\\MediaWiki\\Jobs\\RefreshJob",
["smw.updateDispatcher"]="SMW\\MediaWiki\\Jobs\\UpdateDispatcherJob",
["smw.fulltextSearchTableUpdate"]="SMW\\MediaWiki\\Jobs\\FulltextSearchTableUpdateJob",
["smw.entityIdDisposer"]="SMW\\MediaWiki\\Jobs\\EntityIdDisposerJob",
["smw.propertyStatisticsRebuild"]="SMW\\MediaWiki\\Jobs\\PropertyStatisticsRebuildJob",
["smw.fulltextSearchTableRebuild"]="SMW\\MediaWiki\\Jobs\\FulltextSearchTableRebuildJob",
["smw.changePropagationDispatch"]="SMW\\MediaWiki\\Jobs\\ChangePropagationDispatchJob",
["smw.changePropagationUpdate"]="SMW\\MediaWiki\\Jobs\\ChangePropagationUpdateJob",
["smw.changePropagationClassUpdate"]="SMW\\MediaWiki\\Jobs\\ChangePropagationClassUpdateJob",
["smw.deferredConstraintCheckUpdateJob"]="SMW\\MediaWiki\\Jobs\\DeferredConstraintCheckUpdateJob",
["smw.elasticIndexerRecovery"]="SMW\\Elastic\\Jobs\\IndexerRecoveryJob",
["smw.elasticFileIngest"]="SMW\\Elastic\\Jobs\\FileIngestJob",
["smw.parserCachePurgeJob"]="SMW\\MediaWiki\\Jobs\\ParserCachePurgeJob",
["SMW\\UpdateJob"]="SMW\\MediaWiki\\Jobs\\UpdateJob",
["SMW\\RefreshJob"]="SMW\\MediaWiki\\Jobs\\RefreshJob",
["SMW\\UpdateDispatcherJob"]="SMW\\MediaWiki\\Jobs\\UpdateDispatcherJob",
["SMW\\FulltextSearchTableUpdateJob"]="SMW\\MediaWiki\\Jobs\\FulltextSearchTableUpdateJob",
["SMW\\EntityIdDisposerJob"]="SMW\\MediaWiki\\Jobs\\EntityIdDisposerJob",
["SMW\\PropertyStatisticsRebuildJob"]="SMW\\MediaWiki\\Jobs\\PropertyStatisticsRebuildJob",
["SMW\\FulltextSearchTableRebuildJob"]="SMW\\MediaWiki\\Jobs\\FulltextSearchTableRebuildJob",
["SMW\\ChangePropagationDispatchJob"]="SMW\\MediaWiki\\Jobs\\ChangePropagationDispatchJob",
["SMW\\ChangePropagationUpdateJob"]="SMW\\MediaWiki\\Jobs\\ChangePropagationUpdateJob",
["SMW\\ChangePropagationClassUpdateJob"]="SMW\\MediaWiki\\Jobs\\ChangePropagationClassUpdateJob",
["SMWUpdateJob'"]="SMW\\MediaWiki\\Jobs\\UpdateJob",
SMWRefreshJob="SMW\\MediaWiki\\Jobs\\RefreshJob",
},
DefaultUserOptions={
["smw-prefs-general-options-show-entity-issue-panel"]=true,
},
repository="https://github.com/SemanticMediaWiki/SemanticMediaWiki",
composer="mediawiki/semantic-media-wiki",
},
SemanticMetaTags={
name="SemanticMetaTags",
version="3.1.0-alpha",
author={
"James Hong Kong",},
url="https://www.semantic-mediawiki.org/wiki/Extension:Semantic_Meta_Tags",
descriptionmsg="smt-desc",
namemsg="smt-name",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.31",
extensions={
SemanticMediaWiki="&gt;= 3.1",
},
},
callback="SemanticMetaTags::initExtension",
ExtensionFunctions={
"SemanticMetaTags::onExtensionFunction",},
repository="https://github.com/SemanticMediaWiki/SemanticMetaTags",
composer="mediawiki/semantic-meta-tags",
},
SemanticNotifications={
name="SemanticNotifications",
version="0.1-alpha",
author={
"James Hong Kong","...",},
url="https://github.com/SemanticMediaWiki/SemanticNotifications/",
descriptionmsg="semantic-notifications-desc",
namemsg="semantic-notifications-name",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.31",
},
callback="SemanticNotifications::initExtension",
ExtensionFunctions={
"SemanticNotifications::onExtensionFunction",},
repository="https://github.com/SemanticMediaWiki/SemanticNotifications",
composer="mediawiki/semantic-notifications",
},
SemanticOrganization={
name="Semantic Organization",
version="0.1.0-beta",
author={
"Tobias Haider",},
descriptionmsg="semorg-desc",
["license-name"]="GPL-3.0",
requires={
MediaWiki="&gt;= 1.35.0",
},
type="semantic",
url="https://www.mediawiki.org/wiki/Extension:SemanticOrganization",
ExtensionMessagesFiles={
SemanticOrganizationAlias="SemanticOrganization.i18n.alias.php",
},
config={
SemorgUseCustomStyles={
value=false,
},
SemorgListLimit={
value=20,
},
SemorgAdditionalProperties={
value={
},
},
},
Hooks={
["SMW::Property::initProperties"]={
"SemanticOrganizationProperties::onsmwInitProperties",},
BeforeInitialize={
"SemanticOrganizationHooks::onBeforeInitialize",},
ParserFirstCallInit={
"SemanticOrganizationHooks::onParserFirstCallInit",},
BeforePageDisplay={
"SemanticOrganizationHooks::onBeforePageDisplay",},
ShowSearchHit={
"SemanticOrganizationHooks::onShowSearchHit",},
ShowSearchHitTitle={
"SemanticOrganizationHooks::onShowSearchHitTitle",},
},
repository="https://github.com/thaider/SemanticOrganization.git",
},
SemanticResultFormats={
name="SemanticResultFormats",
version="4.2.0",
author={
"James Hong Kong","Stephan Gambke","[https://www.entropywins.wtf/mediawiki Jeroen De Dauw]","Yaron Koren","...",},
url="https://www.semantic-mediawiki.org/wiki/Extension:Semantic_Result_Formats",
descriptionmsg="srf-desc",
namemsg="srf-name",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.35",
extensions={
SemanticMediaWiki="&gt;= 3.0",
},
},
callback="SemanticResultFormats::initExtension",
ExtensionFunctions={
"SemanticResultFormats::onExtensionFunction",},
QUnitTestModule={
localBasePath="",
remoteExtPath="SemanticResultFormats",
scripts={
"tests/qunit/ext.srf.test.js","tests/qunit/ext.srf.util.test.js","tests/qunit/formats/ext.srf.formats.datatables.test.js","tests/qunit/formats/ext.srf.formats.carousel.test.js","tests/qunit/formats/ext.srf.formats.eventcalendar.tests.js","tests/qunit/formats/ext.srf.formats.filtered.test.js","tests/qunit/formats/ext.srf.formats.gallery.test.js","tests/qunit/formats/ext.srf.formats.media.test.js","tests/qunit/formats/ext.srf.formats.tagcloud.test.js","tests/qunit/widgets/ext.srf.widgets.eventcalendar.tests.js","tests/qunit/widgets/ext.srf.widgets.optionslist.test.js","tests/qunit/widgets/ext.srf.widgets.panel.test.js","tests/qunit/widgets/ext.srf.widgets.parameters.test.js",},
dependencies={
"ext.srf","ext.srf.util","ext.srf.eventcalendar","ext.srf.datatables.v2.format","ext.srf.carousel.module","ext.srf.carousel","ext.srf.widgets","ext.srf.gallery.overlay","ext.srf.gallery.carousel","ext.srf.gallery.slideshow","ext.srf.gallery.redirect","ext.srf.formats.media","ext.srf.formats.tagcloud","ext.srf.filtered.value-filter.select",},
},
repository="https://github.com/SemanticMediaWiki/SemanticResultFormats",
composer="mediawiki/semantic-result-formats",
},
SemanticScribunto={
name="SemanticScribunto",
version="2.3.0-alpha",
author={
"James Hong Kong","[https://www.semantic-mediawiki.org/wiki/User:Oetterer Tobias Oetterer]",},
url="https://github.com/SemanticMediaWiki/SemanticScribunto/",
descriptionmsg="smw-scribunto-desc",
namemsg="smw-scribunto-title",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.35",
extensions={
Scribunto="*",
SemanticMediaWiki="&gt;= 3.0",
},
},
callback="SemanticScribunto::initExtension",
ExtensionFunctions={
"SemanticScribunto::onExtensionFunction",},
repository="https://github.com/SemanticMediaWiki/SemanticScribunto",
composer="mediawiki/semantic-scribunto",
},
Semantic_Tasks={
name="SemanticTasks",
version="2.1.0",
author={
"Steren Giannini","Ryan Lane","Ike Hecht","Peter Grassberger","Vedmaka","thomas-topway-it",},
url="https://www.mediawiki.org/wiki/Extension:Semantic_Tasks",
descriptionmsg="semantictasks-desc",
namemsg="semantictasks-name",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.35",
},
callback="SemanticTasks::initExtension",
ExtensionFunctions={
"SemanticTasks::onExtensionFunction",},
config={
["_prefix"]="stg",
PropertyAssignedTo="Assigned to",
PropertyCarbonCopy="Carbon copy",
PropertyTargetDate="Target date",
PropertyReminderAt="Reminder at",
PropertyStatus="Status",
PropertyAssignedToGroup="Assigned to group",
PropertyHasAssignee="Has assignee",
SemanticTasksNotifyIfUnassigned=false,
NotificationFromSystemAddress=false,
},
composer="mediawiki/semantic-tasks",
repository="https://github.com/SemanticMediaWiki/SemanticTasks.git",
},
Semantic_Watchlist={
name="Semantic Watchlist",
author={
"[https://www.mediawiki.org/wiki/User:Jeroen_De_Dauw Jeroen De Dauw] for [http://www.wikiworks.com/ WikiWorks]","Mark A. Hershberger","[https://www.wikiteq.com/ WikiTeq]","...",},
version="1.3.0",
url="https://www.mediawiki.org/wiki/Extension:Semantic_Watchlist",
descriptionmsg="semanticwatchlist-desc",
namemsg="semanticwatchlist-title",
["license-name"]="GPL-3.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.35",
},
ExtensionMessagesFiles={
SemanticWatchlistAlias="i18n/extra/SemanticWatchlist.alias.php",
},
Hooks={
},
callback="SWL\\SemanticWatchlist::initExtension",
ExtensionFunctions={
"SWL\\SemanticWatchlist::onExtensionFunction",},
SpecialPages={
SemanticWatchlist="SWL\\Special\\Watchlist",
WatchlistConditions="SWL\\Special\\Conditions",
},
SpecialPageGroups={
SemanticWatchlist="changes",
WatchlistConditions="changes",
},
APIModules={
addswlgroup="SWL\\Api\\AddWatchlistGroup",
deleteswlgroup="SWL\\Api\\DeleteWatchlistGroup",
editswlgroup="SWL\\Api\\EditWatchlistGroup",
},
APIListModules={
semanticwatchlist="SWL\\Api\\QuerySemanticWatchlist",
},
AvailableRights={
"semanticwatch","semanticwatchgroups",},
GroupPermissions={
["*"]={
semanticwatch=false,
semanticwatchgroups=false,
},
user={
semanticwatch=true,
semanticwatchgroups=false,
},
autoconfirmed={
semanticwatch=true,
semanticwatchgroups=false,
},
bot={
semanticwatch=false,
semanticwatchgroups=false,
},
sysop={
semanticwatch=true,
semanticwatchgroups=true,
},
},
config_prefix="egSWL",
config={
EnableEmailNotify={
value=true,
description="Enable email notification or not?",
},
MailPerChange={
value=true,
description="Send an email for every change (as opposed to a \"something changed email\" for the first 'MaxMails'] changes)?",
},
MaxMails={
value=1,
description="The maximum amount of generic emails to send about changes until the user actually checks his semantic watchlist.",
},
EnableTopLink={
value=true,
description="Enable displaying a top link to the semantic watchlist?",
},
EnableSelfNotify={
value=false,
description="Send email to editor",
},
SqlDatabaseSchemaPath={
value="sql/swl-table-schema.sql",
description="SQL schema path",
path=true,
},
},
ConfigRegistry={
SemanticWatchlist="GlobalVarConfig::newInstance",
},
DefaultUserOptions={
swl_email=true,
swl_watchlisttoplink=true,
},
repository="https://github.com/SemanticMediaWiki/SemanticWatchlist",
composer="mediawiki/semantic-watchlist",
},
["Semantic Wikibase"]={
name="Semantic Wikibase",
version="0.1.0",
author={
"[https://www.entropywins.wtf/mediawiki Jeroen De Dauw]","[https://professional.wiki/ Professional.Wiki]",},
url="https://github.com/ProfessionalWiki/SemanticWikibase",
descriptionmsg="semantic-wb-desc",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.35.0",
extensions={
SemanticMediaWiki="&gt;=3.1",
WikibaseRepository="*",
},
},
callback="MediaWiki\\Extension\\SemanticWikibase\\EntryPoints\\HookHandlers::onExtensionRegistration",
Hooks={
["SMW::Property::initProperties"]="MediaWiki\\Extension\\SemanticWikibase\\EntryPoints\\HookHandlers::onSmwInitProperties",
["SMW::SQLStore::AddCustomFixedPropertyTables"]="MediaWiki\\Extension\\SemanticWikibase\\EntryPoints\\HookHandlers::onSmwAddCustomFixedPropertyTables",
["SMWStore::updateDataBefore"]="MediaWiki\\Extension\\SemanticWikibase\\EntryPoints\\HookHandlers::onSmwUpdateDataBefore",
},
config={
SemanticWikibaseLanguage={
value="",
},
},
repository="https://github.com/ProfessionalWiki/SemanticWikibase/issues",
composer="professional-wiki/semantic-wikibase",
},
Shariff={
name="Shariff",
version="2.0",
author="Niki Hansche",
url="https://github.com/vonloxley/Shariff-Mediawiki",
description="Insert 2-click \"Like\" buttons.",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
Hooks={
ParserFirstCallInit="Shariff::shariffLikeParserFunction_Setup",
BeforePageDisplay="Shariff::shariffLikeParserFeedHead",
},
repository="https://github.com/vonloxley/Shariff-Mediawiki.git",
},
SideSummary={
name="Side Summary",
author="Solene",
version="1.0.0",
url="https://www.mediawiki.org/wiki/Extension:SideSummary",
descriptionmsg="Side Summary",
["license-name"]="GPL-2.0+",
type="parserhook",
ExtensionMessagesFiles={
SideSummary="SideSummary.i18n.php",
},
Hooks={
ParserFirstCallInit={
"SideSummary\\SideSummary::onParserSetup",},
ArticleAfterFetchContentObject="SideSummary\\SideSummary::onArticleAfterFetchContentObject",
BeforePageDisplay={
"SideSummary\\SideSummary::onBeforePageDisplay",},
OutputPageParserOutput={
"SideSummary\\SideSummary::onOutputPageParserOutput",},
SkinTemplateNavigation={
"SideSummary\\SideSummary::onSkinTemplateNavigation",},
},
composer="wikifab/side-summary",
repository="https://github.com/Wikifab/SideSummary.git",
},
SimilarTitles={
name="SimilarTitles",
version="1.2.1",
author="[https://www.wikiskripta.eu/w/User:Josmart Josef Martiňák]",
url="https://bitbucket.org/wikiskripta/similartitles",
descriptionmsg="similartitles-desc",
type="other",
["license-name"]="MIT",
status="stable",
requires={
MediaWiki="&gt;= 1.36.0",
},
Hooks={
EditFormPreloadText="SimilarTitlesHooks::findSimilarArticles",
BeforePageDisplay="SimilarTitlesHooks::createPopup",
},
repository="https://bitbucket.org/wikiskripta/similartitles.git",
},
SimpleBatchUpload={
name="SimpleBatchUpload",
version="2.0.1",
author={
"[https://www.mediawiki.org/wiki/User:F.trott Stephan Gambke]","[https://professional.wiki/ Professional.Wiki]","...",},
url="https://www.mediawiki.org/wiki/Extension:SimpleBatchUpload",
descriptionmsg="simplebatchupload-desc",
namemsg="simplebatchupload-name",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;=1.35",
},
config={
SimpleBatchUploadMaxFilesPerBatch={
value={
["*"]=1000,
},
},
},
ExtensionMessagesFiles={
SimpleBatchUploadAlias="src/SimpleBatchUpload.alias.php",
SimpleBatchUploadMagic="src/SimpleBatchUpload.magic.php",
},
SpecialPages={
BatchUpload="SimpleBatchUpload\\SpecialBatchUpload",
},
Hooks={
ParserFirstCallInit="SimpleBatchUpload\\SimpleBatchUpload::registerParserFunction",
MakeGlobalVariablesScript="SimpleBatchUpload\\SimpleBatchUpload::onMakeGlobalVariablesScript",
},
repository="https://github.com/ProfessionalWiki/SimpleBatchUpload",
composer="mediawiki/simple-batch-upload",
},
SimpleEmbedVideo={
name="Simple Embed Video",
author="Solene",
version="1.0.0",
url="https://www.mediawiki.org/wiki/Extension:SimpleEmbedVideo",
descriptionmsg="Simple Embed Video",
["license-name"]="GPL-2.0+",
type="parserhook",
ExtensionMessagesFiles={
SimpleEmbedVideo="SimpleEmbedVideo.i18n.php",
},
Hooks={
ParserFirstCallInit={
"SimpleEmbedVideo::onParserSetup",},
BeforePageDisplay={
"SimpleEmbedVideo::onBeforePageDisplay",},
},
composer="wikifab/simple-embed-video",
repository="https://github.com/Wikifab/ext-simple-embed-video",
},
SimpleMathJax={
name="SimpleMathJax",
version="0.8.3",
author="jmnote",
url="https://www.mediawiki.org/wiki/Extension:SimpleMathJax",
description="render TeX between &lt;code&gt;&lt;nowiki&gt;&lt;math&gt;&lt;/nowiki&gt;&lt;/code&gt; and &lt;code&gt;&lt;nowiki&gt;&lt;/math&gt;&lt;/nowiki&gt;&lt;/code&gt;",
["license-name"]="GPL-2.0+",
type="parserhook",
config={
SmjUseCdn={
value=true,
description="true to load mathjax from CDN",
},
SmjUseChem={
value=true,
description="true to enabled chem tag",
},
SmjDisplayMath={
value={
},
description="MathJax.tex.displayMath",
},
SmjExtraInlineMath={
value={
},
description="MathJax.tex.inlineMath",
},
SmjScale={
value=1,
description="MathJax.chtml.scale",
},
SmjEnableMenu={
value=true,
description="MathJax.options.enableMenu",
},
SmjDisplayAlign={
value="left",
description="MathJax.chtml.displayAlign",
},
SmjWrapDisplaystyle={
value=true,
description="true to wrap with displaystyle",
},
},
Hooks={
ParserFirstCallInit="SimpleMathJaxHooks::onParserFirstCallInit",
},
repository="https://github.com/jmnote/SimpleMathJax",
},
["Slide Box Light Show"]={
name="Slide Box Light Show",
version="2.0.0",
author={
"Alexia E. Smith","Hydra Wiki Platform Team",},
url="https://gitlab.com/hydrawiki/extensions/SlideBoxLightShow/",
descriptionmsg="slideboxlightshow_description",
["license-name"]="GPL-3.0-only",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="SlideBoxLightShowHooks::onParserFirstCallInit",
},
config={
SBDefaultArguments={
value={
sequence="forward",
transition="fade",
transitionspeed=500,
halign="center",
valign="middle",
interval=5000,
width=nil,
height=nil,
popup=true,
slideshowonly=false,
carousel=false,
},
path=false,
descriptionmsg="dynamicsettings-config-sbdefaultarguments",
public=false,
merge_strategy="array_merge",
},
},
repository="https://gitlab.com/hydrawiki/extensions/SlideBoxLightShow.git",
},
SnapProjectEmbed={
name="Snap! Project Embed",
version="3.2.0",
author={
"R4356th, GrahamSH, mw-EmbedScratch contributors",},
url="https://www.mediawiki.org/wiki/Extension:SnapProjectEmbed",
descriptionmsg="embedsnap-desc",
["license-name"]="GPLv3",
type="parserhook",
requires={
MediaWiki="&gt;=1.35.0",
},
HookHandlers={
default={
class="EmbedSnap",
},
},
Hooks={
ParserFirstCallInit="default",
},
composer="mediawiki/snapprojectembed",
repository="https://github.com/snapwiki/SnapProjectEmbed",
},
SourceProtection={
name="SourceProtection",
version="1.1.3",
author={
"Sen-Sai",},
["license-name"]="GPL-2.0+",
url="https://github.com/Sen-Sai/SourceProtection",
descriptionmsg="sourceprotection-desc",
Hooks={
["EditPage::showReadOnlyForm:initial"]={
"SourceProtection::doNotShowReadOnlyForm",},
userCan={
"SourceProtection::disableActions",},
SkinTemplateNavigation={
"SourceProtection::hideSource",},
},
repository="https://github.com/WikibaseSolutions/SourceProtection.git",
},
SpriteSheet={
name="SpriteSheet",
version="1.3.2",
author={
"Curse Inc. Wiki Platform Team","Alexia E. Smith",},
url="https://github.com/HydraWiki/SpriteSheet",
descriptionmsg="spritesheet_description",
["license-name"]="LGPL-3.0",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
GroupPermissions={
autoconfirmed={
edit_sprites=true,
},
sysop={
spritesheet_rollback=true,
},
},
AvailableRights={
"edit_sprites","spritesheet_rollback",},
LogTypes={
sprite="sprite",
},
LogNames={
sprite="sprite_log_name",
},
LogHeaders={
sprite="sprite_log_description",
},
LogActionsHandlers={
["sprite/sheet"]="SpriteSheetLogFormatter",
["sprite/sprite"]="SpriteNameLogFormatter",
["sprite/sprite-deleted"]="SpriteNameLogFormatter",
["sprite/sprite-rename"]="SpriteNameLogFormatter",
["sprite/slice"]="SpriteNameLogFormatter",
["sprite/slice-deleted"]="SpriteNameLogFormatter",
["sprite/slice-rename"]="SpriteNameLogFormatter",
},
APIModules={
spritesheet="SpriteSheetAPI",
},
ExtensionMessagesFiles={
SpriteSheetMagic="SpriteSheet.i18n.magic.php",
},
Hooks={
ParserFirstCallInit={
"SpriteSheetHooks::onParserFirstCallInit",},
ImagePageShowTOC={
"SpriteSheetHooks::onImagePageShowTOC",},
ImageOpenShowImageInlineBefore={
"SpriteSheetHooks::onImageOpenShowImageInlineBefore",},
PageRenderingHash={
"SpriteSheetHooks::onPageRenderingHash",},
TitleMoveComplete={
"SpriteSheetHooks::onTitleMoveComplete",},
LoadExtensionSchemaUpdates={
"SpriteSheetHooks::onLoadExtensionSchemaUpdates",},
},
repository="https://github.com/HydraWiki/SpriteSheet.git",
},
Streamer={
name="Streamer",
version="0.5.0",
author={
"Wiki Platform Team","Curse Inc.","Alexia E. Smith",},
url="http://www.mediawiki.org/wiki/Extension:Streamer",
descriptionmsg="streamer_description",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
AvailableRights={
"edit_streamer_info",},
GroupPermissions={
sysop={
edit_streamer_info=true,
},
},
SpecialPages={
StreamerInfo="SpecialStreamerInfo",
},
ExtensionMessagesFiles={
StreamerMagic="Streamer.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="StreamerHooks::onParserFirstCallInit",
PageContentSaveComplete="StreamerHooks::onPageContentSaveComplete",
LoadExtensionSchemaUpdates="StreamerHooks::onLoadExtensionSchemaUpdates",
},
config={
YouTubeApiKey={
value=nil,
path=false,
descriptionmsg="streamer-config-youtubeapikey",
public=false,
},
TwitchClientId={
value=nil,
path=false,
descriptionmsg="streamer-config-twitchclientid",
public=false,
},
},
repository="https://github.com/HydraWiki/Streamer.git",
},
StubUserWikiAuth={
name="StubUserWikiAuth",
version="1.2.1",
author={
"Jesús Martínez (Ciencia Al Poder)",},
url="https://www.mediawiki.org/wiki/Extension:StubUserWikiAuth",
descriptionmsg="stubuserwikiauth-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.38.0",
},
repository="https://github.com/ciencia/mediawiki-extensions-StubUserWikiAuth.git",
},
SubPageList={
name="SubPageList",
version="3.0.0",
author={
"[https://www.entropywins.wtf/mediawiki Jeroen De Dauw]","[https://professional.wiki/ Professional.Wiki]",},
url="https://github.com/JeroenDeDauw/SubPageList/blob/master/README.md",
descriptionmsg="spl-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.36.0",
},
ExtensionMessagesFiles={
SubPageListMagic="SubPageList.i18n.magic.php",
},
ExtensionFunctions={
"\\SubPageList\\Setup::onExtensionFunctions",},
config_prefix="egSPL",
config={
Autorefresh={
value=false,
desc="Automatically invalidate the cache of 'base pages' when creating, moving or deleting a subpage? This covers most cases where people expect automatic refresh of the sub page list. However note that this will not update lists displaying subpages from pages different then themselves.",
},
},
composer="mediawiki/sub-page-list",
repository="https://github.com/JeroenDeDauw/SubPageList.git",
},
SuggestedTitles={
name="SuggestedTitles",
author={
"[http://mediawiki.org/wiki/User:MarkAHershberger Mark A. Hershberger]",},
url="https://www.mediawiki.org/wiki/Extension:SuggestedTitles",
descriptionmsg="suggestedtitles-desc",
["license-name"]="GPL-3.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.27.0",
},
Hooks={
BeforeDisplayNoArticleText="MediaWiki\\Extension\\SuggestedTitles\\Hooks::onBeforeDisplayNoArticleText",
GetLocalURL="MediaWiki\\Extension\\SuggestedTitles\\Hooks::onGetLocalURL",
ShowMissingArticle="MediaWiki\\Extension\\SuggestedTitles\\Hooks::onShowMissingArticle",
TitleIsAlwaysKnown="MediaWiki\\Extension\\SuggestedTitles\\Hooks::onTitleIsAlwaysKnown",
},
config={
RedirectOnSingle={
description="Redirect if there is only one suggestion.",
value=true,
},
},
composer="mediawiki/suggested-titles",
repository="https://gitlab.com/hexmode1/SuggestedTitles.git/",
},
Svetovid={
name="Svetovid",
author="Ostrzyciel",
["license-name"]="MIT",
version="1.4.0",
url="https://www.mediawiki.org/wiki/Extension:Svetovid",
requires={
MediaWiki="&gt;= 1.38.0",
extensions={
AdvancedBacklinks="&gt;= 2.7.3",
CirrusSearch="&gt;= 6.0.0",
},
},
namemsg="svetovid",
descriptionmsg="svetovid-desc",
Hooks={
EditFormInitialText="SvetovidEditFormInitialTextHook::run",
GetPreferences="SvetovidHooks::onGetPreferences",
SidebarBeforeOutput="SvetovidHooks::onSidebarBeforeOutput",
},
SpecialPages={
LinkCreator="SpecialLinkCreator",
},
APIModules={
polishdecl="ApiPolishDeclension",
svsearch="ApiSvetovidSearch",
},
config={
SvetovidMorfeuszURL="http://localhost:8145/declension",
SvetovidSearchCacheExpiry=3600,
SvetovidSearchBlacklist={
},
SvetovidDefaultNamespaces=nil,
SvetovidMaxSearchResults=15,
},
DefaultUserOptions={
["svetovid-show-link-in-sidebar"]=false,
},
GroupPermissions={
user={
["svetovid-search"]=true,
},
},
ExtensionMessagesFiles={
SvetovidAliases="Svetovid.alias.php",
},
type="other",
repository="https://gitlab.com/nonsensopedia/extensions/svetovid.git/",
},
SyntaxHighlight_PrismJS={
name="SyntaxHighlight_PrismJS",
author={
"apple502j",},
descriptionmsg="syntaxhighlight-desc",
["license-name"]="GPL-3.0-or-later",
type="parserhook",
version="1.0.0",
url="https://github.com/InternationalScratchWiki/SyntaxHighlight_PrismJS",
Hooks={
ParserFirstCallInit="main",
["EditPage::showEditForm:initial"]="main",
},
HookHandlers={
main={
class="SyntaxHighlight",
},
},
repository="https://github.com/InternationalScratchWiki/SyntaxHighlight_PrismJS.git",
},
Tabber={
name="Tabber",
version="2.4.5",
author={
"Eric Fortin","Alexia E. Smith",},
url="https://www.mediawiki.org/wiki/Extension:Tabber",
descriptionmsg="tabber-desc",
type="parserhook",
["license-name"]="GPL-3.0-only",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit={
"Tabber\\TabberHooks::onParserFirstCallInit",},
},
repository="https://gitlab.com/hydrawiki/extensions/Tabber.git",
},
TablesInSemantic={
name="TablesInSemantic",
version="0.1",
author={
"Pierre Boutet",},
url="https://github.com/wikifab/TablesInSemantic",
descriptionmsg="tablesinsemantic-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.28.0",
},
Hooks={
ParserBeforeStrip={
"TablesInSemantic\\Hooks::onParserBeforeStrip",},
},
composer="wikifab/tables-in-semantic",
repository="https://github.com/Wikifab/TablesInSemantic.git",
},
TemplateStylesExtender={
name="TemplateStylesExtender",
version="1.1.8",
author={
"[https://www.mediawiki.org/wiki/User:Octfx Octfx]",},
url="https://github.com/octfx/mediawiki-extensions-TemplateStylesExtender",
descriptionmsg="ext-templatestylesextender-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
platform={
php="&gt;=7.3.19",
},
extensions={
TemplateStyles="&gt;= 1.0",
},
},
config={
TemplateStylesExtenderEnablePrefersColorScheme={
description="Enable the prefers-color-scheme media query. WARNING this can break things if TemplateStyles was updated upstream",
value=true,
},
TemplateStylesExtenderEnableCssVars={
description="Enable the matcher for css variables",
value=true,
},
TemplateStylesExtenderEnableUnscopingSupport={
description="Allow to unscope css by changing '.mw-parser-output' to a custom class",
value=false,
},
TemplateStylesExtenderUnscopingPermission={
description="Speficy the permission a user must have to use unscoping. Defaults to 'editinterface'.",
value="editinterface",
},
},
ConfigRegistry={
TemplateStylesExtender="GlobalVarConfig::newInstance",
},
HookHandlers={
MainHooks={
class="MediaWiki\\Extension\\TemplateStylesExtender\\Hooks\\MainHooks",
},
},
Hooks={
TemplateStylesPropertySanitizer="MediaWiki\\Extension\\TemplateStylesExtender\\Hooks\\PropertySanitizerHook::onSanitize",
TemplateStylesStylesheetSanitizer="MediaWiki\\Extension\\TemplateStylesExtender\\Hooks\\StylesheetSanitizerHook::onSanitize",
ParserFirstCallInit="MainHooks",
["EditPage::attemptSave"]="MainHooks",
},
composer="octfx/template-styles-extender",
repository="https://github.com/octfx/mediawiki-extensions-TemplateStylesExtender.git",
},
Termbank={
name="Termbank",
version="2021-06-02",
author="Niklas Laxström",
url="https://tieteentermipankki.fi",
descriptionmsg="termbank-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
Hooks={
APIGetAllowedParams="MediaWiki\\Extensions\\Termbank\\Hooks::onAPIGetAllowedParams",
BeforePageDisplay="MediaWiki\\Extensions\\Termbank\\Hooks::onBeforePageDisplay",
LoadExtensionSchemaUpdates="MediaWiki\\Extensions\\Termbank\\Hooks::onLoadExtensionSchemaUpdates",
ParserBeforeInternalParse="MediaWiki\\Extensions\\Termbank\\Hooks::onParserBeforeInternalParse",
OutputPageBodyAttributes="MediaWiki\\Extensions\\Termbank\\Hooks::onOutputPageBodyAttributes",
},
ExtensionMessagesFiles={
["Termbank-alias"]="Termbank.alias.php",
},
SpecialPages={
PrivateData="MediaWiki\\Extensions\\Termbank\\SpecialPrivateData",
},
composer="mediawiki/termbank",
repository="https://github.com/Nikerabbit/mediawiki-extensions-Termbank.git",
},
ThePlayer={
name="ThePlayer",
version="1.0",
author="[https://www.wikiskripta.eu/w/User:Josmart Josef Martiňák]",
url="https://bitbucket.org/wikiskripta/theplayer",
descriptionmsg="theplayer-desc",
type="parserhook",
["license-name"]="MIT",
status="stable",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="ThePlayerHooks::registerParserHook",
},
repository="https://bitbucket.org/wikiskripta/theplayer",
},
["Theme Toggle"]={
name="Theme Toggle",
version="1.1.1",
author={
"alex4401",},
url="https://gitlab.mglolenstine.xyz/alex4401/mediawiki-extension-themetoggle",
descriptionmsg="themetoggle-desc",
["license-name"]="GPL-3.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
platform={
php="&gt;= 7.4",
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
SpecialPages={
ThemeUsage={
class="MediaWiki\\Extension\\ThemeToggle\\SpecialPages\\SpecialThemeUsage",
services={
"ThemeToggle.Config","ThemeToggle.ThemeAndFeatureRegistry",},
},
},
HookHandlers={
CacheManagement={
class="MediaWiki\\Extension\\ThemeToggle\\Hooks\\CacheManagementHooks",
services={
"ThemeToggle.ThemeAndFeatureRegistry",},
},
ThemeLoading={
class="MediaWiki\\Extension\\ThemeToggle\\Hooks\\ThemeLoadingHooks",
services={
"ThemeToggle.Config","ThemeToggle.ThemeAndFeatureRegistry",},
},
Preferences={
class="MediaWiki\\Extension\\ThemeToggle\\Hooks\\PreferencesHooks",
services={
"ThemeToggle.Config","ThemeToggle.ThemeAndFeatureRegistry",},
},
},
Hooks={
PageDeleteComplete="CacheManagement",
PageSaveComplete="CacheManagement",
BeforePageDisplay="ThemeLoading",
OutputPageAfterGetHeadLinksArray="ThemeLoading",
ResourceLoaderRegisterModules="ThemeLoading",
GetPreferences="Preferences",
UserGetDefaultOptions="Preferences",
},
config_prefix="wgThemeToggle",
config={
Default={
value=nil,
},
DisableAutoDetection={
value=false,
},
SwitcherStyle={
value="auto",
},
EnableForAnonymousUsers={
value=true,
},
PreferenceGroup={
value=nil,
},
LoadScriptOverride={
value=nil,
},
},
composer="mediawiki/themetoggle",
repository="https://github.com/alex4401/mediawiki-extensions-ThemeToggle.git",
},
TopoJson={
name="TopoJson",
type="parserhook",
author="Tobias Haider",
version="0.0.2",
url="https://github.com/thaider/TopoJson",
descriptionmsg="topojson-desc",
["license-name"]="GPL-2.0",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="TopoJsonHooks::onParserFirstCallInit",
},
repository="https://github.com/thaider/TopoJson.git",
},
TranslateTagsInVe={
name="TranslateTagsInVe",
version="1.0.0",
author={
"Pierre Boutet",},
url="https://github.com/wikifab",
descriptionmsg="ttive-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.28.0",
},
Hooks={
["FormEdit::showEditForm:initial"]={
"TranslateTagsInVE\\Hooks::start",},
},
composer="wikifab/translate-tags-in-ve",
repository="https://github.com/Wikifab/ext-TranslateTagsInVE.git",
},
TreeAndMenu={
name="TreeAndMenu",
version="4.2.5, 2021-10-31",
author={
"[http://www.organicdesign.co.nz/aran Aran Dunkley]","[http://absorto.dev Igor Absorto]",},
url="http://www.mediawiki.org/wiki/Extension:TreeAndMenu",
descriptionmsg="treeandmenu-desc",
["license-name"]="[https://www.gnu.org/licenses/gpl-2.0.html GNU General Public Licence 2.0] or later",
type="parserhook",
callback="TreeAndMenu::onRegistration",
config={
TreeAndMenuPersistIfId=false,
["@"]="Specify the heading line for sidebar menu",
TreeAndMenuSidebarMenuPage=false,
TreeAndMenuSidebarMenuHeading=false,
},
ExtensionMessagesFiles={
TreeAndMenuMagic="TreeAndMenu.i18n.magic.php",
},
Hooks={
SkinBuildSidebar={
"TreeAndMenu::onSkinBuildSidebar",},
},
repository="https://gitlab.com/Aranad/TreeAndMenu.git",
},
TrendingMenu={
name="TrendingMenu",
version="2.0.1",
author={
"[https://fo-nttax.de Alex Winkler]","Richard Stanway","Shashank Atreya",},
url="https://liquipedia.net/",
descriptionmsg="trendingmenu-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.39.3",
},
ExtensionMessagesFiles={
WikiListAlias="i18n/WikiListAlias.php",
},
SpecialPages={
WikiList="\\Liquipedia\\Extension\\TrendingMenu\\SpecialPage\\SpecialWikiList",
ModifyWikiList="\\Liquipedia\\Extension\\TrendingMenu\\SpecialPage\\SpecialModifyWikiList",
},
APIModules={
trendingmenu="\\Liquipedia\\Extension\\TrendingMenu\\Api\\TrendingPages",
wikilist="\\Liquipedia\\Extension\\TrendingMenu\\Api\\WikiList",
updatewikilist="\\Liquipedia\\Extension\\TrendingMenu\\Api\\UpdateWikiList",
},
RestRoutes={
{
path="/trendingmenu/v1/trendingpages",
method="GET",
class="\\Liquipedia\\Extension\\TrendingMenu\\Rest\\TrendingPages",
services={
"MainConfig","DBLoadBalancerFactory",},
},},
AvailableRights={
"edit-wikilist",},
GroupPermissions={
sysop={
["edit-wikilist"]=true,
},
},
HookHandlers={
Main={
class="\\Liquipedia\\Extension\\TrendingMenu\\Hooks\\MainHookHandler",
services={
"MainConfig",},
},
Schema={
class="\\Liquipedia\\Extension\\TrendingMenu\\Hooks\\SchemaHookHandler",
},
},
Hooks={
ApiCheckCanExecute="Main",
BeforePageDisplay="Main",
LoadExtensionSchemaUpdates="Schema",
},
repository="https://github.com/Liquipedia/TrendingMenu",
},
TwitterWidget={
name="TwitterWidget",
version="2.0.1",
author={
"Jesús Martínez (Ciencia Al Poder)",},
url="https://github.com/ciencia/mediawiki-extensions-TwitterWidget",
descriptionmsg="twitterwidget-desc",
["license-name"]="MIT",
type="parserhook",
Hooks={
ParserFirstCallInit={
"TwitterWidgetHooks::onParserFirstCallInit",},
},
repository="https://github.com/ciencia/mediawiki-extensions-TwitterWidget.git",
},
URNames={
name="URNames",
version="1.1.2",
author="[https://www.wikiskripta.eu/w/User:Josmart Josef Martiňák]",
url="https://bitbucket.org/wikiskripta/urnames",
description="Extension displays the real names of wiki users in RecentChanges, PageHistory\r\n\t\tand users' lists. Logged in users can see the real name in the brackets after username.",
type="other",
["license-name"]="MIT",
status="stable",
requires={
MediaWiki="&gt;= 1.39.0",
},
Hooks={
BeforePageDisplay="URNamesHooks::replaceUserNames",
},
repository="https://bitbucket.org/wikiskripta/urnames",
},
Mobyome={
name="Mobyome",
version="0.0.1",
author={
"Tobias Haider",},
url="https://www.mobyome.at",
descriptionmsg="mobyome-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
ConfigRegistry={
mobyome="GlobalVarConfig::newInstance",
},
ExtensionMessagesFiles={
MobyomeMagic="Mobyome.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="MediaWiki\\Extension\\Mobyome\\Hooks::onParserFirstCallInit",
BeforePageDisplay="MediaWiki\\Extension\\Mobyome\\Hooks::onBeforePageDisplay",
SkinTweekiAdditionalBodyClasses="MediaWiki\\Extension\\Mobyome\\Hooks::onSkinTweekiAdditionalBodyClasses",
},
repository="https://github.com/thaider/UbiGo.git",
},
UnifiedExtensionForFemiwiki={
name="UnifiedExtensionForFemiwiki",
version="3.0.1",
author="[https://femiwiki.com/ Femiwiki Team]",
url="https://github.com/femiwiki/unifiedExtensionForFemiwiki",
descriptionmsg="unifiedextensionforfemiwiki-desc",
["license-name"]="AGPL-3.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.0",
extensions={
CategoryTree="*",
},
},
AuthManagerAutoConfig={
preauth={
FemiwikiPreAuthenticationProvider={
class="MediaWiki\\Extension\\UnifiedExtensionForFemiwiki\\FemiwikiPreAuthenticationProvider",
},
},
},
HookHandlers={
main={
class="MediaWiki\\Extension\\UnifiedExtensionForFemiwiki\\HookHandlers\\Main",
services={
"MainConfig",},
},
RelatedArticles={
class="MediaWiki\\Extension\\UnifiedExtensionForFemiwiki\\HookHandlers\\RelatedArticles",
services={
"MainConfig","DBLoadBalancer",},
},
DefaultOptions={
class="MediaWiki\\Extension\\UnifiedExtensionForFemiwiki\\HookHandlers\\DefaultOptions",
services={
"MainConfig","UserOptionsManager",},
},
},
Hooks={
HtmlPageLinkRendererBegin="main",
LinkerMakeExternalLink="main",
OutputPageParserOutput="RelatedArticles",
SidebarBeforeOutput="main",
SkinAddFooterLinks="main",
UserMailerTransformContent="main",
},
config={
UnifiedExtensionForFemiwikiPreAuth={
value=false,
description="If set to true, creating account would require an additional step.",
},
UnifiedExtensionForFemiwikiRelatedArticlesUseLinks={
value=true,
description="If set to true, Related Articles on a page would show links from the page and links to the page.",
},
UnifiedExtensionForFemiwikiModifyEmailTheme={
value=false,
description="Modifies the email theme to use the femiwiki theme.",
},
UnifiedExtensionForFemiwikiRelatedArticlesTargetNamespaces={
value={
},
description="An array of namespaces which can be a target for RelatedArticles. Empty array means allowing all namespaces.",
},
},
composer="femiwiki/unified-extension-for-femiwiki",
repository="https://github.com/femiwiki/UnifiedExtensionForFemiwiki",
},
UniqueLink={
name="UniqueLink",
author="Daniel Beard",
url="https://www.halopedia.org/Halopedia:Extensions/UniqueLink",
namemsg="uniquelink-extension-name",
descriptionmsg="uniquelink-extension-desc",
version="0.0.1",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="MediaWiki\\Extension\\UniqueLink\\Hooks::onParserFirstCallInit",
ParserClearState="MediaWiki\\Extension\\UniqueLink\\Hooks::onParserClearState",
},
ExtensionMessagesFiles={
UniqueLinkMagic="UniqueLink.i18n.php",
},
repository="https://github.com/Halopedia/UniqueLink",
},
["Unregistered Edit Links"]={
name="Unregistered Edit Links",
version="2.0.0",
author={
"alex4401",},
url="https://github.com/alex4401/mediawiki-extensions-UnregisteredEditLinks",
descriptionmsg="unregisterededitlinks-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.37.0",
platform={
php="&gt;= 7.4",
},
},
HookHandlers={
Main={
class="MediaWiki\\Extension\\UnregisteredEditLinks\\Hooks",
services={
"MainConfig","RestrictionStore",},
},
},
Hooks={
["SkinTemplateNavigation::Universal"]="Main",
LoginFormValidErrorMessages="Main",
},
config_prefix="wgAEF",
config={
AdvertiseCreationInContentNs={
value=true,
},
AdvertiseCreationIfCanExist={
value=false,
},
},
repository="https://github.com/alex4401/mediawiki-extensions-UnregisteredEditLinks.git",
},
Upload2Commons={
name="Upload2Commons",
version="0.1.0",
author={
"Antoine Lamielle",},
url="https://www.mediawiki.org/wiki/Extension:Upload2Commons",
namemsg="upload2Commons",
descriptionmsg="upload2Commons-desc",
["license-name"]="GPL-2.0+",
type="other",
config={
Upload2CommonsApiUrl="http://localhost",
},
GroupPermissions={
["*"]={
remoteuploadown=false,
remoteupload=false,
},
user={
remoteuploadown=true,
remoteupload=true,
},
bot={
remoteuploadown=true,
remoteupload=true,
},
sysop={
remoteuploadown=true,
remoteupload=true,
},
},
AvailableRights={
"remoteuploadown","remoteupload",},
APIModules={
["upload-to-commons"]="Upload2Commons\\ApiUpload2Commons",
["post-to-commons"]="Upload2Commons\\ApiPost2Commons",
},
LogTypes={
"remoteupload",},
LogActionsHandlers={
["remoteupload/file"]="Upload2Commons\\RemoteUploadLogFormatter",
["remoteupload/stashedfile"]="Upload2Commons\\RemoteUploadLogFormatter",
},
repository="https://github.com/lingua-libre/Upload2Commons.git",
},
["Upload Fields"]={
name="Upload Fields",
version="0.0.3",
author={
"Alexia E. Smith","Hydra Wiki Platform Team",},
descriptionmsg="uploadfields_description",
type="specialpage",
["license-name"]="GPL-2.0-or-later",
Hooks={
SpecialUploadComplete="UploadFields\\Hooks::onSpecialUploadComplete",
UploadFormInitDescriptor="UploadFields\\Hooks::onUploadFormInitDescriptor",
},
repository="https://gitlab.com/hydrawiki/extensions/UploadFields.git",
},
UserLoginLog={
name="UserLoginLog",
version="1.5",
author={
"[http://www.organicdesign.co.nz/nad User:Nad]","[http://hexmode.com/ Mark A. Hershberger]",},
url="http://www.mediawiki.org/wiki/Extension:UserLoginLog",
description="Creates a new MediaWiki log for user logins and logout events",
type="other",
LogActions={
["userlogin/success"]="userlogin-success",
["userlogin/error"]="userlogin-error",
["userlogin/logout"]="userlogin-logout",
},
LogHeaders={
userlogin="userloginlogpagetext",
},
LogNames={
userlogin="userloginlogpage",
},
LogTypes={
"userlogin",},
Hooks={
UserLoginForm="MediaWiki\\Extension\\UserLoginLog\\Hook::logError",
UserLoginComplete="MediaWiki\\Extension\\UserLoginLog\\Hook::logSuccess",
UserLogout="MediaWiki\\Extension\\UserLoginLog\\Hook::logout",
UserLogoutComplete="MediaWiki\\Extension\\UserLoginLog\\Hook::logoutComplete",
},
composer="mediawiki/user-login-log",
repository="https://github.com/mwstake/mediawiki-extensions-UserLoginLog",
},
UserSnoop={
name="UserSnoop",
version="0.1.0",
["license-name"]="GPL-2.0",
author={
"Kimon Andreou","[https://nichework.com/ Mark A. Hershberger]",},
requires={
MediaWiki="1.33",
},
url="https://www.mediawiki.org/wiki/Extension:UserSnoop",
descriptionmsg="usersnoop-desc",
type="specialpage",
SpecialPages={
UserSnoop="UserSnoop\\Special\\UserSnoop",
ChangeUserEmail="UserSnoop\\Special\\ChangeUserEmail",
},
ExtensionMessagesFiles={
UserSnoopAlias="src/i18n/Alias.php",
},
Hooks={
LoadExtensionSchemaUpdates={
"UserSnoop\\Hook::onLoadExtensionSchemaUpdates",},
UserToolLinksEdit={
"UserSnoop\\Hook::onUserToolLinksEdit",},
},
GroupPermissions={
sysop={
usersnoop=true,
},
bureaucrat={
usersnoop=true,
},
},
AvailableRights={
"usersnoop",},
config={
["_prefix"]="UserSnoop",
},
repository="https://github.com/hexmode/mediawiki-UserSnoop",
},
["UsersPagesLinks API"]={
name="UsersPagesLinks API",
version="0.2.0",
author="Pierre Boutet",
description="API to add link between user and pages",
type="api",
APIModules={
userspageslinks="UsersPagesLinks\\ApiUsersPagesLinks",
},
callback="UsersPagesLinks\\UsersPagesLinks::onExtension",
SpecialPages={
DisplayUsersList="UsersPagesLinks\\SpecialDisplayUsersList",
},
ExtensionMessagesFiles={
UsersPagesLinksMagicWords="UsersPagesLinks.i18n.php",
},
Hooks={
LoadExtensionSchemaUpdates="UsersPagesLinks\\UsersPagesLinks::onLoadExtensionSchemaUpdates",
ParserFirstCallInit="UsersPagesLinks\\Buttons::onParserFirstCallInit",
SkinTemplateNavigation="UsersPagesLinks\\Buttons::onSkinTemplateNavigation",
BeforePageDisplay="UsersPagesLinks\\Buttons::onBeforePageDisplay",
ArticleDeleteComplete="UsersPagesLinks\\UsersPagesLinks::onArticleDeleteComplete",
},
config={
UsersPagesLinksTypes={
value={
"star","ididit","member",},
},
UsersPagesLinksTypesUndoLabelsKey={
value={
member="userspageslinks-unmember",
},
},
UsersPagesLinksFoNamespaces={
value={
[1]={
"ididit","star",},
[221]={
"member",},
},
},
},
composer="wikifab/users-pages-links",
repository="https://github.com/Wikifab/UsersPagesLinks.git",
},
VEForPageForm={
name="VEForPageForm",
version="0.1.0",
author={
"Pierre Boutet",},
url="https://github.com/wikifab",
descriptionmsg="visualeditorforpageform-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.28.0",
},
callback="VisualEditorHooks::onRegistration",
config={
["VEForPageForm-areaClasses"]="vefpf-area",
},
Hooks={
["FormEdit::showEditForm:initial"]={
"VeForPageForm\\Hooks::start",},
},
DefaultUserOptions={
["visualeditorforpageform-enable"]=1,
},
composer="wikifab/VEForPageForm",
repository="https://github.com/Wikifab/mediawiki-extension-VEForPageForm",
},
Pipe_Escape={
name="Pipe Escape",
namemsg="pipeescape-extensionname",
version="3.0.0",
author={
"David M. Sledge","Purodha Blissenbach","Universal Omega","...",},
url="https://www.mediawiki.org/wiki/Extension:Pipe_Escape",
descriptionmsg="pipeescape-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
PipeEscapeMagic="PipeEscape.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="ExtPipeEsc::setup",
},
repository="https://phabricator.wikimedia.org/diffusion/EPIE/",
composer="mediawiki/pipeescape",
},
VariablesLua={
name="VariablesLua",
version="1.5.0",
author={
"[https://fo-nttax.de Alex Winkler]",},
url="https://www.mediawiki.org/wiki/Extension:VariablesLua",
descriptionmsg="variableslua-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
extensions={
Scribunto="*",
Variables="&gt;= 2.0",
},
},
Hooks={
ScribuntoExternalLibraries={
"Liquipedia\\Extension\\VariablesLua\\Hooks\\LegacyHooks::onScribuntoExternalLibraries",},
},
repository="https://github.com/Liquipedia/VariablesLua.git",
},
VeForceReload={
name="VeForceReload",
version="1.0.0",
author={
"Pierre Boutet",},
url="https://github.com/wikifab/VeForceReload",
descriptionmsg="veforcereload-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.28.0",
},
Hooks={
BeforePageDisplay="VeForceReload\\Hooks::onBeforePageDisplay",
},
composer="wikifab/ve-force-reload",
repository="https://github.com/Wikifab/VeForceReload",
},
ViewProtect={
name="ViewProtect",
version="0.1.0",
author={
"[http://mwstake.org/ Mark A. Hershberger]",},
url="https://www.mediawiki.org/wiki/Extension:ViewProtect",
descriptionmsg="viewprotect-desc",
["license-name"]="GPL-3.0+",
type="other",
SpecialPages={
ViewProtect="MediaWiki\\Extension\\ViewProtect\\SpecialViewProtect",
ViewProtectFile="MediaWiki\\Extension\\ViewProtect\\SpecialViewProtectFile",
},
ExtensionMessagesFiles={
ViewProtectAlias="src/i18n/Alias.php",
},
Hooks={
BeforePageDisplay="MediaWiki\\Extension\\ViewProtect\\Hooks::onBeforePageDisplay",
getUserPermissionsErrors="MediaWiki\\Extension\\ViewProtect\\Hooks::onGetUserPermissionsErrors",
ImgAuthBeforeStream="MediaWiki\\Extension\\ViewProtect\\Hooks::onImgAuthBeforeStream",
LoadExtensionSchemaUpdates="MediaWiki\\Extension\\ViewProtect\\Hooks::onLoadExtensionSchemaUpdates",
PageGroups="MediaWiki\\Extension\\ViewProtect\\Hooks::onCoPPageGroups",
UpdateUsableLevels="MediaWiki\\Extension\\ViewProtect\\Hooks::onUpdateUsableLevels",
},
AvailableRights={
"viewprotectmanage",},
GroupPermissions={
sysop={
viewprotectmanage=true,
},
},
LogTypes={
"viewprotect",},
LogRestrictions={
viewprotect="viewprotectmanage",
},
FilterLogTypes={
viewprotect=false,
},
LogActions={
["viewprotect/read"]="viewprotect-read",
["viewprotect/upload"]="viewprotect-upload",
},
LogActionsHandlers={
["viewprotect/read"]="MediaWiki\\Extension\\ViewProtect\\Formatter",
["viewprotect/upload"]="MediaWiki\\Extension\\ViewProtect\\Formatter",
},
composer="mediawiki/view-protect",
repository="https://github.com/hexmode/mediawiki-ViewProtect",
},
WSSemanticParsedText={
name="WSSemanticParsedText",
version="2.1.1",
namemsg="wssemanticparsedtext-extensionname",
url="https://wikibase-solutions.com",
type="semantic",
author={
"[https://mediawiki.org/wiki/User:Xxmarijnw Marijn van Wezel] ([https://wikibase-solutions.com Wikibase Solutions])",},
descriptionmsg="wssemanticparsedtext-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.31.0",
extensions={
SemanticMediaWiki="&gt;= 3.1.4",
},
},
Hooks={
["SMW::Setup::AfterInitializationComplete"]="WSSemanticParsedText\\Hooks::onSMWSetupAfterInitializationComplete",
ParserFirstCallInit="WSSemanticParsedText\\Hooks::onParserFirstCallInit",
},
config={
},
composer="wikibase-solutions/w-s-semantic-parsed-text",
repository="https://gitlab.wikibase.nl/community/wssemanticparsedtext.git",
},
WSSlots={
name="WSSlots",
version="4.6.0",
namemsg="wsslots-extensionname",
url="https://wikibase-solutions.com",
type="other",
author={
"[https://mediawiki.org/wiki/User:Xxmarijnw Marijn van Wezel] ([https://wikibase-solutions.com Wikibase Solutions])",},
descriptionmsg="wsslots-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
MediaWikiServices="main",
ParserFirstCallInit="main",
ListDefinedTags="main",
ChangeTagsListActive="main",
ResourceLoaderGetConfigVars="main",
BeforeInitialize="main",
["SMW::Store::BeforeDataUpdateComplete"]="\\WSSlots\\WSSlotsHooks::onBeforeDataUpdateComplete",
ScribuntoExternalLibraries="\\WSSlots\\WSSlotsHooks::onScribuntoExternalLibraries",
},
HookHandlers={
main={
class="WSSlots\\WSSlotsHooks",
},
},
ExtensionMessagesFiles={
WSSlotsMagic="i18n/WSSlots.i18n.php",
},
config={
WSSlotsDefinedSlots={
value={
},
},
WSSlotsDefaultContentModel={
value="wikitext",
},
WSSlotsDefaultSlotRoleLayout={
value={
display="none",
region="center",
placement="append",
},
},
WSSlotsSemanticSlots={
value={
},
},
WSSlotsDoPurge={
value=false,
},
WSSlotsOverrideActions={
value=false,
},
},
APIModules={
parsetemplates="WSSlots\\API\\ApiParseTemplates",
editslot="WSSlots\\API\\ApiEditSlot",
editslots="WSSlots\\API\\ApiEditSlots",
readslot="WSSlots\\API\\ApiReadSlot",
},
Actions={
rawslot="WSSlots\\Actions\\SlotAwareRawAction",
},
composer="open-csp/w-s-slots",
repository="https://github.com/Open-CSP/WSSlots",
},
WSStats={
name="WSStats",
version="2.0.0",
author={
"Sen-Sai",},
url="https://github.com/WikibaseSolutions/WSStats",
descriptionmsg="wsstats-desc",
["license-name"]="GPL v2",
type="parserhook",
ExtensionMessagesFiles={
WSStatsAlias="WSStats.i18n.alias.php",
WSStatsMagic="WSStats.i18n.magic.php",
},
config={
WSStats={
value={
skip_anonymous=false,
skip_user_groups={
"sysop",},
countSpecialPages=true,
ignore_in_url={
"action=edit","veaction=edit",},
},
},
},
Hooks={
ParserFirstCallInit="WSStats\\WSStatsHooks::onParserFirstCallInit",
BeforePageDisplay="WSStats\\WSStatsHooks::onBeforePageDisplay",
LoadExtensionSchemaUpdates="WSStats\\WSStatsHooks::addTables",
AdminLinks="WSStats\\WSStatsHooks::addToAdminLinks",
ScribuntoExternalLibraries="\\WSStats\\WSStatsHooks::onScribuntoExternalLibraries",
},
SpecialPages={
WSStats="WSStats\\specials\\SpecialWSStats",
},
composer="wikibase-solutions/w-s-stats",
repository="https://github.com/WikibaseSolutions/WSStats.git",
},
WatchAnalytics={
name="WatchAnalytics",
version="4.2",
author={
"[https://www.mediawiki.org/wiki/User:Jamesmontalvo3 James Montalvo]",},
url="https://www.mediawiki.org/wiki/Extension:WatchAnalytics",
descriptionmsg="watchanalytics-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.37.0",
},
GroupPermissions={
sysop={
viewpagescore=true,
clearreviews=true,
},
user={
pendingreviewslink=true,
},
},
AvailableRights={
"viewpagescore","pendingreviewslink","clearreviews",},
SpecialPages={
WatchAnalytics="SpecialWatchAnalytics",
PendingReviews="SpecialPendingReviews",
PageStatistics="SpecialPageStatistics",
ClearPendingReviews="SpecialClearPendingReviews",
},
ExtensionMessagesFiles={
WatchAnalyticsAliases="WatchAnalytics.alias.php",
WatchAnalyticsMagic="WatchAnalytics.i18n.magic.php",
},
Hooks={
["SkinTemplateNavigation::Universal"]={
"WatchAnalyticsHooks::onSkinTemplateNavigation__Universal",},
BeforePageDisplay={
"WatchAnalyticsHooks::onBeforePageDisplay",},
ParserFirstCallInit={
"WatchAnalyticsParserFunctions::setup",},
PageMoveComplete={
"WatchAnalyticsHooks::onPageMoveComplete",},
PageViewUpdates={
"WatchAnalyticsHooks::onPageViewUpdates",},
PageSaveComplete={
"WatchAnalyticsHooks::onPageSaveComplete",},
GetMagicVariableIDs={
"WatchAnalyticsHooks::onGetMagicVariableIDs",},
ParserAfterTidy={
"WatchAnalyticsHooks::handleMagicWords",},
LoadExtensionSchemaUpdates={
"WatchAnalyticsUpdaterHooks::addSchemaUpdates",},
},
LogTypes={
"pendingreviews",},
LogNames={
pendingreviews="pendingreviews",
},
LogHeaders={
pendingreviews="pendingreviews-header",
},
LogActionsHandlers={
["pendingreviews/*"]="LogFormatter",
},
config={
["_prefix"]="eg",
WatchAnalyticsPageCounter=false,
WatchAnalyticsShowUnreviewDiff=true,
PendingReviewMaxDiffChar=3500,
PendingReviewMaxDiffRows=15,
PendingReviewsEmphasizeDays=7,
PendingReviewsRedPagesThreshold=2,
PendingReviewsOrangePagesThreshold=4,
PendingReviewsNumberWatchSuggestions=20,
PendingReviewsShowWatchSuggestionsIfReviewsUnder=5,
WatchAnalyticsPageScoreNamespaces={
0,1,},
WatchAnalyticsWatchQualityColors={
[51]="plaid",
[6]="excellent",
["1.5"]="okay",
["_merge_strategy"]="array_plus",
},
WatchAnalyticsReviewStatusColors={
[6]="excellent",
[4]="okay",
["_merge_strategy"]="array_plus",
},
},
composer="mediawiki/watch-analytics",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WatchAnalytics",
},
WebP={
name="WebP",
author={
"[https://www.mediawiki.org/wiki/User:Octfx Octfx]",},
url="https://www.mediawiki.org/wiki/Extension:WebP",
descriptionmsg="webp-desc",
["license-name"]="GPL-2.0-or-later",
type="media",
version="2.0.0",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
PictureHtmlSupport="*",
},
platform={
php="&gt;=8.0",
},
},
config={
WebPEnableConvertOnUpload={
description="Enables WebP creation after a new image was uploaded",
value=true,
},
WebPEnableConvertOnTransform={
description="Enables WebP creation after a thumbnail was created",
value=true,
},
WebPEnableResponsiveVersionJobs={
description="Dispatch jobs for 1.5x and 2x file versions. Note: This runs for each thumbnail inclusion and may be disabled after all present thumbnails have been converted.",
value=true,
},
WebPForceOverwriteInJobs={
description="Dispatch jobs with 'overwrite' set to true. Alternatively this can be set to an array with the transformer class name mapping to the overwrite flag. Example: [AvifTransformer::class =&gt; true].",
value=false,
},
WebPCheckAcceptHeader={
description="Check if the accept header contains webp",
value=false,
},
WebPCompressionQuality={
description="Compression Quality webp images. An int between 1 and 100, 1 = high compression, 100 low compression.",
value=75,
},
WebPCompressionQualityAvif={
description="Compression Quality for avif images. An int between 1 and 100, 1 = high compression, 100 low compression.",
value=75,
},
WebPFilterStrength={
description="Filter Strength",
value=80,
},
WebPAutoFilter={
description="Enable Auto Filter",
value=true,
},
WebPThumbSizes={
description="Thumbnail Sizes to create through the maintenance script",
value={
120,320,800,1200,1600,},
},
WebPCWebPLocation={
description="Location of the cwebp executable",
value="/usr/bin/cwebp",
},
WebPAvifencLocation={
description="Location of the avifenc executable",
value="/usr/bin/avifenc",
},
EnabledTransformers={
description="List of enabled image transformers",
value={
},
},
},
ExtensionFunctions={
"MediaWiki\\Extension\\WebP\\Hooks\\MainHooks::setup",},
HookHandlers={
MainHooks={
class="MediaWiki\\Extension\\WebP\\Hooks\\MainHooks",
services={
"MainConfig","JobQueueGroup",},
},
FileHooks={
class="MediaWiki\\Extension\\WebP\\Hooks\\FileHooks",
services={
"MainConfig","RepoGroup","JobQueueGroup",},
},
ThumbnailHooks={
class="MediaWiki\\Extension\\WebP\\Hooks\\ThumbnailHooks",
services={
"MainConfig","RepoGroup","JobQueueGroup",},
},
MediaWikiServices={
class="MediaWiki\\Extension\\WebP\\Hooks\\MediaWikiServices",
},
},
Hooks={
FileTransformed="FileHooks",
FileDeleteComplete="FileHooks",
PageMoveComplete="FileHooks",
UploadComplete="MainHooks",
PictureHtmlSupportBeforeProduceHtml="ThumbnailHooks",
LocalFilePurgeThumbnails="ThumbnailHooks",
MediaWikiServices="MediaWikiServices",
},
JobClasses={
TransformImage="MediaWiki\\Extension\\WebP\\TransformImageJob",
},
composer="octfx/webp",
repository="https://github.com/octfx/mediawiki-extension-WebP.git",
},
WerewolfWiki={
name="WerewolfWiki",
author="Ryan Schmidt",
description="Additional features for the Werewolf Wiki",
url="https://github.com/lykoss/wiki",
version="1.2.1",
["license-name"]="MIT",
type="other",
config={
["_prefix"]="wgWW",
RCFeedHideLogs={
"patrol","review","suppress",},
RCFeedHideNamespaces={
},
},
APIModules={
userinfo={
class="ApiUserInfo",
services={
"UserGroupManager",},
},
},
repository="https://github.com/lykoss/wiki.git",
},
Whois={
name="Whois",
author="Petr Kajzar",
url="https://www.mediawiki.org/wiki/Extension:Whois",
["license-name"]="CC0-1.0",
version="1.1.0",
namemsg="whois",
descriptionmsg="whois-desc",
requires={
MediaWiki="&gt;= 1.32.0",
},
SpecialPages={
Whois="SpecialWhois",
},
Hooks={
ContributionsToolLinks="WhoisHooks::addLink",
},
type="specialpage",
repository="https://bitbucket.org/wikiskripta/whois.git",
},
WikiDexFileRepository={
name="WikiDexFileRepository",
version="1.2.0",
author={
"Jesús Martínez (Ciencia Al Poder)",},
url="https://github.com/ciencia/mediawiki-extensions-WikiDexFileRepository",
descriptionmsg="wikidexfilerepository-desc",
["license-name"]="GPL-2.0+",
type="media",
repository="https://github.com/ciencia/mediawiki-extensions-WikiDexFileRepository.git",
},
WikiDiscover={
name="WikiDiscover",
author={
"John Lewis","Universal Omega",},
descriptionmsg="wikidiscover-desc",
url="https://github.com/miraheze/WikiDiscover",
["license-name"]="GPL-3.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.36.0",
extensions={
CreateWiki="*",
},
},
SpecialPages={
RandomWiki="SpecialRandomWiki",
WikiDiscover="SpecialWikiDiscover",
},
APIModules={
wikidiscover="ApiWikiDiscover",
},
ExtensionMessagesFiles={
WikiDiscoverMagic="includes/WikiDiscoverMagic.php",
WikiDiscoverAliases="includes/WikiDiscoverAliases.php",
},
Hooks={
ParserFirstCallInit={
"WikiDiscover::onParserFirstCallInit",},
ParserGetVariableValueSwitch={
"WikiDiscover::onParserGetVariableValueSwitch",},
GetMagicVariableIDs={
"WikiDiscover::onGetMagicVariableIDs",},
},
config={
WikiDiscoverListPrivateWikis={
description="Whether or not to include showing private wikis on Special:WikiDiscover.",
public=true,
value=true,
},
WikiDiscoverUseDescriptions={
description="Whether or not to enable wiki descriptions.",
public=true,
value=false,
},
},
composer="miraheze/wiki-discover",
repository="https://github.com/miraheze/WikiDiscover",
},
WikiMirror={
name="WikiMirror",
namemsg="wikimirror-extensionname",
version="0.11.0",
author={
"Ryan Schmidt",},
url="https://mwusers.org",
["license-name"]="GPL-3.0-or-later",
descriptionmsg="wikimirror-desc",
type="other",
config={
WikiMirrorAssignKnownUsers={
value=false,
path=false,
description="When forking pages, whether or not imported revisions will be assigned to local users should their username match",
descriptionmsg="wikimirror-config-assignknownusers",
public=true,
},
WikiMirrorRemote={
value=nil,
path=false,
description="Interwiki prefix of the remote wiki",
descriptionmsg="wikimirror-config-remote",
public=true,
},
WikiMirrorSearchMaxResults={
value=100,
path=false,
description="When performing a search against the mirrored site, the maximum number of results to fetch",
descriptionmsg="wikimirror-config-searchmaxresults",
public=true,
},
},
Hooks={
ApiCheckCanExecute="api",
APIGetAllowedParams="api",
["ApiMain::moduleManager"]="api",
ApiMakeParserOptions="api",
APIQueryAfterExecute="api",
getUserPermissionsErrors="mirror",
getUserPermissionsErrorsExpensive="mirror",
HtmlPageLinkRendererEnd="mirror",
ImportHandlePageXMLTag="fork",
LoadExtensionSchemaUpdates="database",
PageMoveCompleting="fork",
MediaWikiServices="service",
["SkinTemplateNavigation::Universal"]="mirror",
TitleIsAlwaysKnown="mirror",
WikiPageFactory="mirror",
},
HookHandlers={
api={
class="WikiMirror\\API\\Hooks",
services={
"DBLoadBalancer","Mirror",},
},
database={
class="WikiMirror\\Database\\Hooks",
},
fork={
class="WikiMirror\\Fork\\Hooks",
services={
"DBLoadBalancer","ContentLanguage",},
},
mirror={
class="WikiMirror\\Mirror\\Hooks",
services={
"Mirror","PermissionManager",},
},
service={
class="WikiMirror\\Service\\Hooks",
},
},
ExtensionMessagesFiles={
WikiMirrorAlias="includes/WikiMirror.i18n.alias.php",
},
AvailableRights={
"fork",},
SpecialPages={
Fork={
class="WikiMirror\\Fork\\SpecialFork",
services={
"DBLoadBalancer","Mirror","OldRevisionImporter","UserOptionsLookup",},
},
Mirror={
class="WikiMirror\\Fork\\SpecialMirror",
services={
"DBLoadBalancer","Mirror",},
},
},
LogActionsHandlers={
["delete/fork"]="LogFormatter",
["delete/mirror"]="LogFormatter",
["import/fork"]="LogFormatter",
},
ContentHandlers={
mirror="WikiMirror\\Mirror\\MirrorContentHandler",
},
SearchMappings={
CombinedSearch={
class="WikiMirror\\Search\\CombinedSearch",
},
MirrorSearch={
class="WikiMirror\\Search\\MirrorSearch",
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
callback="WikiMirror\\Setup::callback",
requires={
MediaWiki="&gt;= 1.39.0",
},
repository="https://github.com/SkizNet/mediawiki-WikiMirror",
},
WikiSearch={
name="WikiSearch",
author={
"Marijn van Wezel",},
version="8.0.0",
url="https://www.mediawiki.org/wiki/Extension:WikiSearch",
descriptionmsg="wikisearch-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
extensions={
SemanticMediaWiki="&gt;= 3.0",
},
platform={
php="&gt;= 7.4",
},
},
ExtensionMessagesFiles={
WikiSearchMagic="i18n/WikiSearch.i18n.php",
},
APIMetaModules={
WikiSearch="WikiSearch\\API\\ApiQueryWikiSearch",
WikiSearchHighlight="WikiSearch\\API\\ApiQueryWikiSearchHighlight",
WikiSearchCombobox="WikiSearch\\API\\ApiQueryWikiSearchCombobox",
},
AvailableRights={
"wikisearch-execute-api","wikisearch-edit-data-standard",},
Hooks={
ParserFirstCallInit="WikiSearch\\WikiSearchHooks::onParserFirstCallInit",
ArticleDeleteComplete="WikiSearch\\WikiSearchHooks::onArticleDeleteComplete",
PageContentSaveComplete="WikiSearch\\WikiSearchHooks::onPageContentSaveComplete",
LoadExtensionSchemaUpdates="WikiSearch\\WikiSearchHooks::onLoadExtensionSchemaUpdates",
BeforePageDisplay="WikiSearch\\WikiSearchHooks::onBeforePageDisplay",
["SMW::Store::BeforeDataUpdateComplete"]="WikiSearch\\WikiSearchHooks::onBeforeDataUpdateComplete",
["SMW::Property::initProperties"]="WikiSearch\\WikiSearchHooks::onInitProperties",
ScribuntoExternalLibraries="WikiSearch\\WikiSearchHooks::onScribuntoExternalLibraries",
},
config={
WikiSearchElasticStoreIndex={
value=false,
},
WikiSearchDefaultResultLimit={
value=10,
},
WikiSearchHighlightFragmentSize={
value=250,
},
WikiSearchHighlightNumberOfFragments={
value=1,
},
WikiSearchElasticSearchHosts={
value={
},
},
WikiSearchAPIRequiredRights={
value={
"read","wikisearch-execute-api",},
merge_strategy="provide_default",
},
WikiSearchSearchFieldOverride={
value=false,
},
WikiSearchEnableDebugMode={
value=false,
},
WikiSearchMaxChainedQuerySize={
value=500,
},
WikiSearchDisabledAnnotators={
value={
},
},
},
SpecialPages={
WikiSearchDataStandard="WikiSearch\\Special\\SpecialWikiSearchDataStandard",
},
composer="open-csp/wiki-search",
repository="https://github.com/Open-CSP/WikiSearch.git",
},
WikiSearchFront={
name="WikiSearchFront",
author="Robis Koopmans",
version="2.0.5",
url="https://www.wikibase-solutions.com",
descriptionmsg="wikisearchfront-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.27.0",
extensions={
WikiSearch="*",
},
},
Hooks={
WikiSearchOnLoadFrontend="WikiSearchFront\\WikiSearchFrontHooks::onWikiSearchOnLoadFrontend",
},
composer="wikibase-solutions/wiki-search-front",
repository="https://github.com/Open-CSP/WikiSearchFront.git",
},
WikiZoomer={
name="WikiZoomer",
version="1.0",
author="[https://www.wikiskripta.eu/w/User:Josmart Josef Martiňák]",
url="https://bitbucket.org/wikiskripta/wikizoomer",
descriptionmsg="wikizoomer-desc",
type="other",
["license-name"]="MIT",
status="stable",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
BeforePageDisplay="WikiZoomerHooks::zoomIt",
},
repository="https://bitbucket.org/wikiskripta/wikizoomer",
},
["Wikibase EDTF"]={
name="Wikibase EDTF",
type="wikibase",
version="2.1.1",
author={
"[https://www.EntropyWins.wtf/mediawiki Jeroen De Dauw]","[https://Professional.Wiki/ Professional.Wiki]",},
["license-name"]="GPL-2.0-or-later",
url="https://github.com/ProfessionalWiki/WikibaseEdtf",
descriptionmsg="wbedtf-desc",
requires={
MediaWiki="&gt;= 1.37.0",
extensions={
WikibaseRepository="*",
},
},
callback="Wikibase\\EDTF\\HookHandlers::onExtensionRegistration",
Hooks={
WikibaseRepoDataTypes="Wikibase\\EDTF\\HookHandlers::onWikibaseRepoDataTypes",
WikibaseClientDataTypes="Wikibase\\EDTF\\HookHandlers::onWikibaseClientDataTypes",
},
config={
},
repository="https://github.com/ProfessionalWiki/WikibaseEdtf/issues",
composer="professional-wiki/wikibase-edtf",
},
["Wikibase Export"]={
name="Wikibase Export",
type="wikibase",
version="1.0.0",
author={
"[https://Professional.Wiki/ Professional.Wiki]","[https://www.EntropyWins.wtf/mediawiki Jeroen De Dauw]","Morne Alberts",},
["license-name"]="GPL-2.0-or-later",
url="https://professional.wiki/en/extension/wikibase-export",
descriptionmsg="wikibase-export-description",
requires={
MediaWiki="&gt;= 1.37.0",
extensions={
WikibaseRepository="*",
},
},
Hooks={
AlternateEdit="ProfessionalWiki\\WikibaseExport\\EntryPoints\\MediaWikiHooks::onAlternateEdit",
BeforePageDisplay="ProfessionalWiki\\WikibaseExport\\EntryPoints\\MediaWikiHooks::onBeforePageDisplay",
ContentHandlerDefaultModelFor="ProfessionalWiki\\WikibaseExport\\EntryPoints\\MediaWikiHooks::onContentHandlerDefaultModelFor",
EditFilter="ProfessionalWiki\\WikibaseExport\\EntryPoints\\MediaWikiHooks::onEditFilter",
EditFormPreloadText="ProfessionalWiki\\WikibaseExport\\EntryPoints\\MediaWikiHooks::onEditFormPreloadText",
},
RestRoutes={
{
path="/wikibase-export/v0/export",
method={
"GET",},
factory="ProfessionalWiki\\WikibaseExport\\WikibaseExportExtension::exportApiFactory",
},{
path="/wikibase-export/v0/search-entities",
method={
"GET",},
factory="ProfessionalWiki\\WikibaseExport\\WikibaseExportExtension::searchEntitiesApiFactory",
},},
config={
WikibaseExportEnableInWikiConfig={
description="If it should be possible to define configuration via MediaWiki:WikibaseExport",
value=true,
},
WikibaseExport={
description="Config in JSON format, following the JSON Schema at schema.json. Gets combined with config defined on MediaWiki:WikibaseExport",
value="",
},
},
SpecialPages={
WikibaseExport="ProfessionalWiki\\WikibaseExport\\EntryPoints\\SpecialWikibaseExport",
WikibaseExportConfig="ProfessionalWiki\\WikibaseExport\\EntryPoints\\SpecialWikibaseExportConfig",
},
ExtensionMessagesFiles={
WikibaseExportAlias="WikibaseExport.i18n.alias.php",
},
composer="professional-wiki/wikibase-export",
repository="https://github.com/ProfessionalWiki/WikibaseExport.git",
},
["Wikibase Local Media"]={
name="Wikibase Local Media",
type="wikibase",
version="1.0.3",
author={
"[https://www.EntropyWins.wtf/mediawiki Jeroen De Dauw]","[https://professional.wiki/ Professional.Wiki]",},
url="https://github.com/ProfessionalWiki/WikibaseLocalMedia",
descriptionmsg="wblm-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.34.0",
extensions={
WikibaseRepository="*",
},
},
Hooks={
WikibaseRepoDataTypes="Wikibase\\LocalMedia\\HookHandlers::onWikibaseRepoDataTypes",
WikibaseClientDataTypes="Wikibase\\LocalMedia\\HookHandlers::onWikibaseClientDataTypes",
},
config={
},
QUnitTestModule={
localBasePath="tests/js",
remoteExtPath="WikibaseLocalMedia/tests/js",
scripts={
"jquery.ui.mediasuggester.tests.js",},
dependencies={
"jquery.ui.mediasuggester",},
},
repository="https://github.com/ProfessionalWiki/WikibaseLocalMedia/issues",
composer="professional-wiki/wikibase-local-media",
},
["Wikibase RDF"]={
name="Wikibase RDF",
type="wikibase",
version="1.1.0",
author={
"[https://Professional.Wiki/ Professional.Wiki]","[https://www.EntropyWins.wtf/mediawiki Jeroen De Dauw]",},
["license-name"]="GPL-2.0-or-later",
url="https://github.com/ProfessionalWiki/WikibaseRDF",
descriptionmsg="wikibase-rdf-description",
requires={
MediaWiki="&gt;= 1.37.0",
extensions={
WikibaseRepository="*",
},
},
Hooks={
AlternateEdit="ProfessionalWiki\\WikibaseRDF\\EntryPoints\\MediaWikiHooks::onAlternateEdit",
ArticleRevisionViewCustom="ProfessionalWiki\\WikibaseRDF\\EntryPoints\\MediaWikiHooks::onArticleRevisionViewCustom",
ContentHandlerDefaultModelFor="ProfessionalWiki\\WikibaseRDF\\EntryPoints\\MediaWikiHooks::onContentHandlerDefaultModelFor",
EditFilter="ProfessionalWiki\\WikibaseRDF\\EntryPoints\\MediaWikiHooks::onEditFilter",
GetPreferences="ProfessionalWiki\\WikibaseRDF\\EntryPoints\\MediaWikiHooks::onGetPreferences",
MediaWikiServices="ProfessionalWiki\\WikibaseRDF\\EntryPoints\\MediaWikiHooks::onMediaWikiServices",
OutputPageParserOutput="ProfessionalWiki\\WikibaseRDF\\EntryPoints\\MediaWikiHooks::onOutputPageParserOutput",
WikibaseRepoEntityTypes="ProfessionalWiki\\WikibaseRDF\\EntryPoints\\MediaWikiHooks::onWikibaseRepoEntityTypes",
},
RestRoutes={
{
path="/wikibase-rdf/v0/mappings/{entity_id}",
method={
"GET",},
factory="ProfessionalWiki\\WikibaseRDF\\WikibaseRdfExtension::getMappingsApiFactory",
},{
path="/wikibase-rdf/v0/mappings/{entity_id}",
method={
"POST",},
factory="ProfessionalWiki\\WikibaseRDF\\WikibaseRdfExtension::saveMappingsApiFactory",
},{
path="/wikibase-rdf/v0/mappings",
method={
"GET",},
factory="ProfessionalWiki\\WikibaseRDF\\WikibaseRdfExtension::getAllMappingsApiFactory",
},},
config={
WikibaseRdfPredicates={
description="List of allowed predicates.",
value={
},
},
},
SpecialPages={
MappingPredicates="ProfessionalWiki\\WikibaseRDF\\SpecialMappingPredicates",
},
composer="professional-wiki/wikibase-rdf",
repository="https://github.com/ProfessionalWiki/WikibaseRDF.git",
},
Wiretap={
name="Wiretap",
version=0.1,
author={
"[https://www.mediawiki.org/wiki/User:Jamesmontalvo3 James Montalvo]",},
url="https://www.mediawiki.org/wiki/Extension:Wiretap",
descriptionmsg="wiretap-desc",
type="specialpage",
SpecialPages={
Wiretap="SpecialWiretap",
},
ExtensionMessagesFiles={
Wiretap="Wiretap.i18n.php",
WiretapAlias="Wiretap.alias.php",
},
Hooks={
BeforeInitialize={
"Wiretap::updateTable",},
AfterFinalPageOutput={
"Wiretap::recordInDatabase",},
SkinTemplateOutputPageBeforeExec={
"Wiretap::onSkinTemplateOutputPageBeforeExec",},
LoadExtensionSchemaUpdates={
"Wiretap::updateDatabase",},
},
config={
DisableCounters=false,
WiretapCounterPeriod=30,
WiretapAddToAlltimeCounter=true,
WiretapAddToPeriodCounter=false,
},
repository="https://github.com/enterprisemediawiki/Wiretap.git",
},
WordNet={
name="WordNet",
version="2023-11-26",
author="Niklas Laxström",
url="https://sanat.csc.fi/wiki/Toiminnot:WordNet",
["license-name"]="GPL-2.0-or-later",
type="other",
HookHandlers={
main={
class="MediaWiki\\Extensions\\WordNet\\Hooks",
},
},
Hooks={
ParserFirstCallInit="main",
},
ExtensionMessagesFiles={
WordNetAlias="alias.php",
},
SpecialPages={
WordNet="MediaWiki\\Extensions\\WordNet\\SpecialWordNet",
},
composer="mediawiki/wordnet",
repository="https://github.com/Nikerabbit/mediawiki-extensions-WordNet.git",
},
YandexSiteVerification={
name="YandexSiteVerification",
author={
"Dolfinus","Adam Shorland",},
url="https://www.mediawiki.org/wiki/Extension:YandexSiteVerification",
descriptionmsg="yav-desc",
version="1.0",
["license-name"]="MIT",
type="other",
ExtensionMessagesFiles={
YandexSiteVerification="YandexSiteVerification.i18n.php",
},
Hooks={
BeforePageDisplay={
"YandexSiteVerification::onBeforePageDisplay",},
},
repository="https://github.com/dolfinus/YandexSiteVerification.git",
},
jQueryUpload={
name="jQueryUpload",
version="2.0.0",
["license-name"]="GPL-2.0-or-later",
author={
"[https://organicdesign.nz/User:Nad Aran Dunkley]","[https://blueimp.net Sebastian Tschan]","[https://absorto.dev Igor Absorto]","[https://professional.wiki/en/mediawiki-development Professional Wiki]",},
url="https://organicdesign.nz/Extension:JQueryUpload",
descriptionmsg="jqueryupload-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.39.0",
platform={
php="&gt;= 8.0",
},
},
callback="jQueryUpload::onRegistration",
Hooks={
LanguageGetMagic="jQueryUpload::onLanguageGetMagic",
},
config={
JQUploadIconPrefix={
description="Defines the relative path to the icons",
value="/icons/Farm-Fresh_file_extension_",
},
JQUploadFileMagic={
description="Defines the upload file magic mode",
value="file",
},
JQUploadFileLinkPopup={
description="Whether or not the upload file link should be a popup",
value=true,
},
},
ExtensionMessagesFiles={
jQueryUploadAlias="jQueryUpload.alias.php",
jQueryUploadMagic="jQueryUpload.i18n.magic.php",
},
repository="https://github.com/debtcompliance/jQueryUpload.git",
},
["3D"]={
name="3D",
version="0.0.1",
author={
"Gilles Dubuc",},
url="https://www.mediawiki.org/wiki/Extension:3D",
namemsg="3d",
descriptionmsg="3d-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42",
},
type="media",
ForeignResourcesDir="modules/lib",
HookHandlers={
main={
class="MediaWiki\\Extension\\ThreeD\\Hooks",
},
},
Hooks={
BeforePageDisplay="main",
UploadFormInitDescriptor="main",
["UploadForm:getInitialPageText"]="main",
},
MediaHandlers={
["application/sla"]="MediaWiki\\Extension\\ThreeD\\ThreeDHandler",
},
config={
Max3d2pngMemory={
value="10000000",
},
AjaxPatentPreview={
value=true,
},
["3dProcessEnviron"]={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/3D",
},
AControlImageLink={
name="AControlImageLink",
version="0.0.1",
author="Edward Chernenko",
url="https://www.mediawiki.org/wiki/Extension:AControlImageLink",
descriptionmsg="acontrolimagelink-desc",
["license-name"]="GPL-2.0+",
type="hook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ImageBeforeProduceHTML="AControlImageLinkHooks::onImageBeforeProduceHTML",
},
config={
AControlImageLinkRestrictedExtensions={
value={
},
description="Array of file extensions to which restriction must be applied.",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AControlImageLink",
},
AJAX_Poll={
name="AJAX Poll",
version="2.3",
author={
"Dariusz Siedlecki","Jack Phoenix","Thomas Gries",},
url="https://www.mediawiki.org/wiki/Extension:AJAX_Poll",
descriptionmsg="ajaxpoll-desc",
type="parserhook",
["license-name"]="GFDL-1.2",
requires={
MediaWiki="&gt;= 1.43",
},
GroupPermissions={
["*"]={
["ajaxpoll-vote"]=false,
["ajaxpoll-view-results"]=false,
["ajaxpoll-view-results-before-vote"]=false,
},
user={
["ajaxpoll-vote"]=true,
["ajaxpoll-view-results"]=true,
},
},
AvailableRights={
"ajaxpoll-vote","ajaxpoll-view-results","ajaxpoll-view-results-before-vote",},
APIModules={
pollsubmitvote="ApiAJAXPollSubmitVote",
},
Hooks={
ParserFirstCallInit="AJAXPoll::onParserFirstCallInit",
LoadExtensionSchemaUpdates="AJAXPoll::onLoadExtensionSchemaUpdates",
},
TrackingCategories={
"ajaxpoll-tracking-category",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AJAXPoll",
},
AbsenteeLandlord={
name="Absentee Landlord",
version="1.4.0",
author={
"Ryan Schmidt","Tim Laqua",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:AbsenteeLandlord",
descriptionmsg="absenteelandlord-desc",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
config={
AbsenteeLandlordMaxDays=90,
},
Hooks={
BeforePageDisplay="AbsenteeLandlord::maybeDoTouch",
MediaWikiServices="AbsenteeLandlord::onMediaWikiServices",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AbsenteeLandlord",
},
AbuseFilter={
name="Abuse Filter",
author={
"Andrew Garrett","[https://www.mediawiki.org/wiki/User:Daimona_Eaytoy Daimona Eaytoy]","Marius Hoch","River Tarnell","Victor Vasiliev",},
url="https://www.mediawiki.org/wiki/Extension:AbuseFilter",
descriptionmsg="abusefilter-desc",
["license-name"]="GPL-2.0-or-later",
type="antispam",
requires={
MediaWiki="&gt;= 1.43.0",
},
AvailableRights={
"abusefilter-modify","abusefilter-log-detail","abusefilter-view","abusefilter-log","abusefilter-privatedetails","abusefilter-privatedetails-log","abusefilter-modify-restricted","abusefilter-revert","abusefilter-view-private","abusefilter-log-private","abusefilter-hidden-log","abusefilter-hide-log","abusefilter-modify-global","abusefilter-modify-blocked-external-domains","abusefilter-bypass-blocked-external-domains","abusefilter-access-protected-vars",},
GroupPermissions={
["*"]={
["abusefilter-view"]=true,
["abusefilter-log"]=true,
},
sysop={
["abusefilter-log-detail"]=true,
["abusefilter-view-private"]=true,
["abusefilter-log-private"]=true,
["abusefilter-modify"]=true,
["abusefilter-modify-restricted"]=true,
["abusefilter-revert"]=true,
["abusefilter-modify-blocked-external-domains"]=true,
},
suppress={
["abusefilter-hidden-log"]=true,
["abusefilter-hide-log"]=true,
},
bot={
["abusefilter-bypass-blocked-external-domains"]=true,
},
},
GrantPermissions={
basic={
["abusefilter-log"]=true,
["abusefilter-log-detail"]=true,
["abusefilter-view"]=true,
},
oversight={
["abusefilter-hide-log"]=true,
},
viewrestrictedlogs={
["abusefilter-hidden-log"]=true,
["abusefilter-log-private"]=true,
["abusefilter-view-private"]=true,
},
editprotected={
["abusefilter-bypass-blocked-external-domains"]=true,
},
},
SpecialPages={
AbuseLog={
class="MediaWiki\\Extension\\AbuseFilter\\Special\\SpecialAbuseLog",
services={
"DBLoadBalancerFactory","LinkBatchFactory","PermissionManager","UserIdentityLookup","AbuseFilterPermissionManager","AbuseFilterConsequencesRegistry","AbuseFilterVariablesBlobStore","AbuseFilterSpecsFormatter","AbuseFilterVariablesFormatter","AbuseFilterVariablesManager",},
},
AbuseFilter={
class="MediaWiki\\Extension\\AbuseFilter\\Special\\SpecialAbuseFilter",
services={
"AbuseFilterPermissionManager","ObjectFactory",},
},
BlockedExternalDomains={
class="MediaWiki\\Extension\\AbuseFilter\\Special\\BlockedExternalDomains",
services={
"AbuseFilterBlockedDomainStorage","MainWANObjectCache",},
},
},
LogTypes={
"abusefilter","abusefilterblockeddomainhit","abusefilterprivatedetails",},
LogNames={
abusefilter="abusefilter-log-name",
abusefilterprivatedetails="abusefilterprivatedetails-log-name",
},
LogHeaders={
abusefilter="abusefilter-log-header",
},
LogActionsHandlers={
["abusefilter/hit"]={
class="MediaWiki\\Extension\\AbuseFilter\\LogFormatter\\AbuseLogHitFormatter",
services={
"AbuseFilterSpecsFormatter",},
},
["abusefilter/modify"]="MediaWiki\\Extension\\AbuseFilter\\LogFormatter\\AbuseFilterModifyLogFormatter",
["abusefilter/create"]="MediaWiki\\Extension\\AbuseFilter\\LogFormatter\\AbuseFilterModifyLogFormatter",
["abusefilterblockeddomainhit/*"]="MediaWiki\\Extension\\AbuseFilter\\LogFormatter\\AbuseFilterBlockedDomainHitLogFormatter",
["abusefilterprivatedetails/access"]="LogFormatter",
["suppress/hide-afl"]="MediaWiki\\Extension\\AbuseFilter\\LogFormatter\\AbuseFilterSuppressLogFormatter",
["suppress/unhide-afl"]="MediaWiki\\Extension\\AbuseFilter\\LogFormatter\\AbuseFilterSuppressLogFormatter",
["rights/blockautopromote"]="MediaWiki\\Extension\\AbuseFilter\\LogFormatter\\AbuseFilterRightsLogFormatter",
["rights/restoreautopromote"]="MediaWiki\\Extension\\AbuseFilter\\LogFormatter\\AbuseFilterRightsLogFormatter",
},
ActionFilteredLogs={
abusefilter={
modify={
"modify",},
create={
"create",},
},
suppress={
abuselog={
"hide-afl","unhide-afl",},
},
rights={
blockautopromote={
"blockautopromote",},
restoreautopromote={
"restoreautopromote",},
},
},
LogRestrictions={
abusefilter="abusefilter-view",
abusefilterprivatedetails="abusefilter-privatedetails-log",
abusefilterblockeddomainhit="abusefilter-view",
},
AuthManagerAutoConfig={
preauth={
AbuseFilterPreAuthenticationProvider={
class="MediaWiki\\Extension\\AbuseFilter\\AbuseFilterPreAuthenticationProvider",
services={
"AbuseFilterVariableGeneratorFactory","AbuseFilterFilterRunnerFactory","StatsdDataFactory","UserFactory",},
sort=5,
},
},
},
APIModules={
abusefilterchecksyntax={
class="MediaWiki\\Extension\\AbuseFilter\\Api\\CheckSyntax",
services={
"AbuseFilterRuleCheckerFactory","AbuseFilterPermissionManager",},
},
abusefilterevalexpression={
class="MediaWiki\\Extension\\AbuseFilter\\Api\\EvalExpression",
services={
"AbuseFilterRuleCheckerFactory","AbuseFilterPermissionManager","AbuseFilterVariableGeneratorFactory",},
},
abusefilterunblockautopromote={
class="MediaWiki\\Extension\\AbuseFilter\\Api\\UnblockAutopromote",
services={
"AbuseFilterBlockAutopromoteStore",},
},
abusefiltercheckmatch={
class="MediaWiki\\Extension\\AbuseFilter\\Api\\CheckMatch",
services={
"AbuseFilterRuleCheckerFactory","AbuseFilterPermissionManager","AbuseFilterVariablesBlobStore","AbuseFilterVariableGeneratorFactory",},
},
abuselogprivatedetails={
class="MediaWiki\\Extension\\AbuseFilter\\Api\\AbuseLogPrivateDetails",
services={
"AbuseFilterPermissionManager",},
},
},
APIListModules={
abuselog={
class="MediaWiki\\Extension\\AbuseFilter\\Api\\QueryAbuseLog",
services={
"AbuseFilterFilterLookup","AbuseFilterPermissionManager","AbuseFilterVariablesBlobStore","AbuseFilterVariablesManager","UserFactory",},
},
abusefilters={
class="MediaWiki\\Extension\\AbuseFilter\\Api\\QueryAbuseFilters",
services={
"AbuseFilterPermissionManager",},
},
},
ExtensionMessagesFiles={
AbuseFilterAliases="AbuseFilter.alias.php",
},
attributes={
VisualEditor={
PluginModules={
"ext.abuseFilter.visualEditor",},
},
},
callback="MediaWiki\\Extension\\AbuseFilter\\Hooks\\Handlers\\RegistrationCallback::onRegistration",
HookHandlers={
ToolLinks={
class="MediaWiki\\Extension\\AbuseFilter\\Hooks\\Handlers\\ToolLinksHandler",
services={
"AbuseFilterPermissionManager",},
},
AutoPromoteGroups={
class="MediaWiki\\Extension\\AbuseFilter\\Hooks\\Handlers\\AutoPromoteGroupsHandler",
services={
"AbuseFilterConsequencesRegistry","AbuseFilterBlockAutopromoteStore",},
},
ChangeTags={
class="MediaWiki\\Extension\\AbuseFilter\\Hooks\\Handlers\\ChangeTagsHandler",
services={
"AbuseFilterChangeTagsManager",},
},
SchemaChanges={
class="MediaWiki\\Extension\\AbuseFilter\\Hooks\\Handlers\\SchemaChangesHandler",
factory="MediaWiki\\Extension\\AbuseFilter\\Hooks\\Handlers\\SchemaChangesHandler::newFromGlobalState",
},
EditPermission={
class="MediaWiki\\Extension\\AbuseFilter\\Hooks\\Handlers\\EditPermissionHandler",
},
PageSave={
class="MediaWiki\\Extension\\AbuseFilter\\Hooks\\Handlers\\PageSaveHandler",
services={
"AbuseFilterEditRevUpdater",},
},
RecentChangeSave={
class="MediaWiki\\Extension\\AbuseFilter\\Hooks\\Handlers\\RecentChangeSaveHandler",
services={
"AbuseFilterChangeTagger",},
},
FilteredActions={
class="MediaWiki\\Extension\\AbuseFilter\\Hooks\\Handlers\\FilteredActionsHandler",
services={
"StatsdDataFactory","AbuseFilterFilterRunnerFactory","AbuseFilterVariableGeneratorFactory","AbuseFilterEditRevUpdater","AbuseFilterBlockedDomainFilter","PermissionManager",},
},
CheckUser={
class="MediaWiki\\Extension\\AbuseFilter\\Hooks\\Handlers\\CheckUserHandler",
services={
"AbuseFilterFilterUser","UserIdentityUtils",},
},
ConfirmEdit={
class="MediaWiki\\Extension\\AbuseFilter\\Hooks\\Handlers\\ConfirmEditHandler",
},
Echo={
class="MediaWiki\\Extension\\AbuseFilter\\Hooks\\Handlers\\EchoHandler",
},
UserMerge={
class="MediaWiki\\Extension\\AbuseFilter\\Hooks\\Handlers\\UserMergeHandler",
},
},
Hooks={
EditFilterMergedContent={
"FilteredActions","ConfirmEdit",},
GetAutoPromoteGroups="AutoPromoteGroups",
TitleMove="FilteredActions",
ArticleDelete="FilteredActions",
RecentChange_save="RecentChangeSave",
ListDefinedTags="ChangeTags",
ChangeTagsListActive="ChangeTags",
LoadExtensionSchemaUpdates="SchemaChanges",
ContributionsToolLinks="ToolLinks",
HistoryPageToolLinks="ToolLinks",
UndeletePageToolLinks="ToolLinks",
UploadVerifyUpload="FilteredActions",
UploadStashFile="FilteredActions",
PageSaveComplete="PageSave",
getUserPermissionsErrors="EditPermission",
CheckUserInsertChangesRow="CheckUser",
CheckUserInsertPrivateEventRow="CheckUser",
CheckUserInsertLogEventRow="CheckUser",
UserMergeAccountFields="UserMerge",
BeforeCreateEchoEvent="Echo",
ParserOutputStashForEdit="FilteredActions",
JsonValidateSave="EditPermission",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
config={
AbuseFilterActions={
value={
throttle=true,
warn=true,
disallow=true,
blockautopromote=true,
block=true,
rangeblock=false,
degroup=false,
tag=true,
},
description="Array of enabled actions in the form [action name =&gt; is enabled?]. At the end of setup, false values will be filtered out",
},
AbuseFilterConditionLimit={
value=1000,
description="The maximum number of 'conditions' that can be used each time the filters are run against a change. (More complex filters require more 'conditions').",
},
AbuseFilterEmergencyDisableThreshold={
value={
default=0.05,
},
description="Disable potentially dangerous actions (AbuseFilterRestrictions) of a filter if it matches more than X actions, constituting more than Y% (e.g. 0.05 = 5%) of the last Z actions, and the filter has been modified in the last S seconds. X is AbuseFilterEmergencyDisableCount, Y is AbuseFilterEmergencyDisableThreshold, S is AbuseFilterEmergencyDisableAge and Z is the number of analyzed actions since the filter was modified.",
},
AbuseFilterEmergencyDisableCount={
value={
default=2,
},
description="See description for AbuseFilterEmergencyDisableThreshold",
},
AbuseFilterEmergencyDisableAge={
value={
default=86400,
},
description="See description for AbuseFilterEmergencyDisableThreshold",
},
AbuseFilterActionRestrictions={
value={
throttle=false,
warn=false,
disallow=false,
blockautopromote=true,
block=true,
rangeblock=true,
degroup=true,
tag=false,
},
description="Do users need 'abusefilter-modify-restricted' user right as well as 'abusefilter-modify' in order to create or modify filters which carry out this action? Array like [action name =&gt; is restricted?]",
},
AbuseFilterNotifications={
value=false,
description="Allows to configure the extension to send hit notifications to Special:RecentChanges or UDP. Available options: rc, udp, rcandudp",
},
AbuseFilterNotificationsPrivate={
value=false,
description="Enable notifications for private filters",
},
AbuseFilterCentralDB={
value=nil,
description="Name of a database where global abuse filters will be stored in. To use a DB with prefixed tables, set this to \"{$databaseName}-{$prefix}\".",
},
AbuseFilterIsCentral={
value=false,
description="Set this variable to true for the wiki where global AbuseFilters are stored in",
},
AbuseFilterLocallyDisabledGlobalActions={
value={
throttle=false,
warn=false,
disallow=false,
blockautopromote=false,
block=false,
rangeblock=false,
degroup=false,
tag=false,
},
description="An array of actions which, if set on a global filter, will not be used for local hits of such filter (not in the central wiki). The array is [ action =&gt; will be disabled? ]. NOTE: Locally disabling throttle or warn will *not* disable the remaining actions.",
},
AbuseFilterBlockDuration={
value="indefinite",
description="Old standard block duration for logged in users. Kept for backward compatibility after T32024.",
},
AbuseFilterAnonBlockDuration={
value=nil,
description="Old standard block duration for anonymous users, $wgAbuseFilterBlockDuration will be used if null. Kept for backward compatibility after T32024.",
},
AbuseFilterBlockAutopromoteDuration={
value=5,
description="Duration, in days, for which users' autopromotion is blocked by filters.",
},
AbuseFilterValidGroups={
value={
"default",},
description="The list of 'groups' filters can be divided into – used for applying edit filters to certain types of actions. By default there is only one group.",
},
AbuseFilterDefaultWarningMessage={
value={
default="abusefilter-warning",
},
description="Default warning messages, per filter group",
},
AbuseFilterDefaultDisallowMessage={
value={
default="abusefilter-disallowed",
},
description="Default disallow messages, per filter group",
},
AbuseFilterLogIPMaxAge={
value=7776000,
description="Age used as cutoff when purging old IP log data, defaults to 3 months. Used by maintenance script purgeOldLogIPData.php",
},
AbuseFilterSlowFilterRuntimeLimit={
value=500,
description="Runtime in milliseconds before a filter is considered slow.",
},
AbuseFilterRangeBlockSize={
value={
IPv4=16,
IPv6=19,
},
description="Size of the range blocked by 'rangeblock' action.",
},
AbuseFilterLogPrivateDetailsAccess={
value=false,
description="Whether accessing private information from a filter log entry is logged.",
},
AbuseFilterPrivateDetailsForceReason={
value=false,
description="Whether users are forced to provide a reason for accessing private information from a filter log entry.",
},
AbuseFilterLogIP={
value=true,
description="Whether to include IP in the abuse_filter_log",
},
AbuseFilterEnableBlockedExternalDomain={
value=false,
description="Temporary config value to disable Special:BlockedExternalDomains",
},
AbuseFilterProtectedVariables={
value={
"user_unnamed_ip",},
description="Array of variables that are be considered protected (limited access) and require the abusefilter-access-protected-vars right to use/view.",
},
},
composer="mediawiki/abuse-filter",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AbuseFilter",
},
AbuseFilterBypass={
name="Abuse Filter Bypass",
version="1.1.1",
author={
"Nelson Monterroso","Jack Phoenix",},
url="https://www.mediawiki.org/wiki/Extension:AbuseFilterBypass",
descriptionmsg="abusefilterbypass-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.31.0",
},
type="other",
Hooks={
AbuseFilterShouldFilterAction="AbuseFilterBypass::onBypassCheck",
},
AvailableRights={
"abusefilter-bypass",},
GroupPermissions={
staff={
["abusefilter-bypass"]=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AbuseFilterBypass",
},
AccessControl={
name="AccessControl",
version="6.0",
author={
"[https://www.mediawiki.org/wiki/m:User:Want Aleš Kapica]",},
type="parserhook",
url="https://www.mediawiki.org/wiki/Extension:AccessControl",
descriptionmsg="accesscontrol-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.35.0",
},
GroupPermissions={
["*"]={
createaccount=false,
createpage=false,
createtalk=false,
edit=false,
writeapi=false,
},
user={
pagelang=false,
import=false,
importupload=false,
},
},
config={
AdminCanReadAll={
value=true,
description="Sysop users can read all restricted pages",
},
AccessControlRedirect={
value=true,
description="Do not redirect from page in search results to restricted pages",
},
AccessControlMeta={
value=false,
description="If set true, do redirect to target into page from main namespace",
},
AccessControlNamespaces={
value={
0,2,},
description="Anonymous user can't by default view differences between revisions",
},
AccessToHistory={
value=false,
description="Anonymous user can't by default view history of page",
},
},
Hooks={
ModifyExportQuery="AccessControlHooks::onModifyExportQuery",
ParserFirstCallInit="AccessControlHooks::accessControlExtension",
ParserBeforeStrip="AccessControlHooks::onParserBeforeStrip",
getUserPermissionsErrors="AccessControlHooks::onUserCan",
ShowSearchHit="AccessControlHooks::onShowSearchHit",
["EditPage::attemptSave"]="AccessControlHooks::onEditPageAttemptSave",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AccessControl",
},
AccountInfo={
name="AccountInfo",
version="0.2.0",
author={
"Kunal Mehta","Benjamin Lees","Prateek Saxena",},
url="https://www.mediawiki.org/wiki/Extension:AccountInfo",
descriptionmsg="accountinfo-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.38.0",
},
SpecialPages={
AccountInfo="MediaWiki\\AccountInfo\\SpecialAccountInfo",
},
ExtensionMessagesFiles={
AccountInfoAlias="AccountInfo.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AccountInfo",
},
Acrolinx={
name="Acrolinx",
version="0.2",
author={
"Yaron Koren","Vedmaka",},
url="https://www.mediawiki.org/wiki/Extension:Acrolinx",
descriptionmsg="acrolinx-desc",
["license-name"]="GPL-3.0",
type="hook",
requires={
MediaWiki="&gt;= 1.34.0",
},
Hooks={
MakeGlobalVariablesScript="AcrolinxHooks::setGlobalJSVariables",
["EditPage::showEditForm:initial"]="AcrolinxHooks::addToEditPage",
["PageForms::AddRLModules"]="AcrolinxHooks::addToFormEditPage",
BeforePageDisplay="AcrolinxHooks::onBeforePageDisplay",
UnitTestsList="AcrolinxHooks::onUnitTestsList",
},
config={
AcrolinxServerAddress=nil,
AcrolinxClientSignature=nil,
AcrolinxNamespaces={
0,},
AcrolinxPageLocationID=nil,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Acrolinx",
},
ActiveAbstract={
name="ActiveAbstract",
author={
"Brion Vibber",},
url="https://www.mediawiki.org/wiki/Extension:ActiveAbstract",
descriptionmsg="activeabstract-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ActiveAbstract",
},
AdManager={
name="AdManager",
version="1.2.0",
author="[https://www.mediawiki.org/wiki/User:Tosfos Ike Hecht]",
url="https://www.mediawiki.org/wiki/Extension:AdManager",
descriptionmsg="admanager-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.36.0",
},
AvailableRights={
"admanager",},
GroupPermissions={
sysop={
admanager=true,
},
},
SpecialPages={
AdManagerZones="SpecialAdManagerZones",
AdManager="SpecialAdManager",
},
ExtensionMessagesFiles={
AdManagerAlias="AdManager.alias.php",
},
Hooks={
LoadExtensionSchemaUpdates="AdManagerHooks::onSchemaUpdate",
SkinBuildSidebar="AdManagerHooks::onSkinBuildSidebar",
BeforePageDisplay="AdManagerHooks::onBeforePageDisplay",
},
config={
AdManagerService={
value=nil,
},
AdManagerCode={
value=nil,
},
AdManagerPlacement={
value="sidebar",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AdManager",
},
Add_HTML_Meta_and_Title={
name="AddHTMLMetaAndTitle",
version="0.7",
author={
"Vladimir Radulovski","Jim Wilson","Dennis Roczek",},
url="https://www.mediawiki.org/wiki/Extension:Add_HTML_Meta_and_Title",
descriptionmsg="addhtmlmetaandtitle-desc",
["license-name"]="MIT",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="MediaWiki\\Extension\\AddHtmlMetaAndTitle\\Hooks::onParserFirstCallInit",
BeforePageDisplay="MediaWiki\\Extension\\AddHtmlMetaAndTitle\\Hooks::onBeforePageDisplay",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AddHTMLMetaAndTitle",
},
AddMessages={
name="AddMessages",
version="0.3",
author="Ike Hecht",
url="https://www.mediawiki.org/wiki/Extension:AddMessages",
descriptionmsg="addmessages-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
LocalisationCacheRecache="AddMessages::onLocalisationCacheRecache",
},
config={
AmMessages={
value={
},
description="Array of message key and value pairs. Will overwrite existing messages. Set in LocalSettings.php, Example: $wgAmMessages = array( 'toolbox' =&gt; 'My Toolbox' );",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AddMessages",
},
AddPersonalUrls={
name="AddPersonalUrls",
version="1.2.2beta",
author={
"[https://www.mediawiki.org/wiki/User:RV1971 RV1971]",},
descriptionmsg="addpersonalurls-desc",
url="https://www.mediawiki.org/wiki/Extension:AddPersonalUrls",
["license-name"]="GPL-3.0-or-later",
requires={
MediaWiki="&gt;= 1.39.0",
},
HookHandlers={
AddPersonalUrls={
class="AddPersonalUrls",
},
},
Hooks={
BeforePageDisplay="AddPersonalUrls",
EditFormPreloadText="AddPersonalUrls",
["SkinTemplateNavigation::Universal"]="AddPersonalUrls",
},
config={
AddPersonalUrlsTable={
description="Table of URLs to add.",
value={
["addpersonalurls-userpages"]="Special:PrefixIndex?prefix=$username/&amp;namespace=2",
["addpersonalurls-home"]="Special:Mypage/Home",
["addpersonalurls-favorites"]="Special:Mypage/Favorites",
["addpersonalurls-sandbox"]="Special:Mypage/Sandbox",
["addpersonalurls-notes"]="Special:Mypage/Notes",
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AddPersonalUrls",
},
Adiutor={
name="Adiutor",
author="Doğu Abaris",
url="https://www.mediawiki.org/wiki/Extension:Adiutor",
descriptionmsg="adiutor-desc",
version="0.0.1",
["license-name"]="GPL-3.0-or-later",
type="other",
requires={
MediaWiki="&gt;=1.42",
},
ExtensionMessagesFiles={
AdiutorAlias="Adiutor.i18n.alias.php",
},
DefaultUserOptions={
["adiutor-enable"]=0,
["adiutor-csd-enable"]=1,
["adiutor-rpp-enable"]=1,
["adiutor-rpm-enable"]=1,
["adiutor-prod-enable"]=1,
["adiutor-tag-enable"]=1,
},
SpecialPages={
AdiutorSettings={
class="MediaWiki\\Extension\\Adiutor\\Specials\\AdiutorSettings",
},
},
Hooks={
BeforePageDisplay="pageDisplay",
GetPreferences="preferences",
GetBetaFeaturePreferences="betaFeature",
SaveUserOptions="preferences",
ListDefinedTags="listDefinedTags",
ChangeTagsListActive="changeTagsListActive",
ChangeTagsAllowedAdd="changeTagsAllowedAdd",
PageSaveComplete="pageSaveComplete",
BeforeCreateEchoEvent="createEchoEvent",
},
HookHandlers={
preferences={
class="MediaWiki\\Extension\\Adiutor\\HookHandlers\\PreferencesHandler",
services={
"PermissionManager","UserOptionsLookup","UserGroupManager",},
},
betaFeature={
class="MediaWiki\\Extension\\Adiutor\\HookHandlers\\BetaFeaturePreferencesHandler",
services={
"MainConfig","PermissionManager",},
},
pageDisplay={
class="MediaWiki\\Extension\\Adiutor\\HookHandlers\\PageDisplayHandler",
services={
"PermissionManager","UserOptionsLookup","RevisionLookup","MainWANObjectCache",},
},
listDefinedTags={
class="MediaWiki\\Extension\\Adiutor\\HookHandlers\\ChangeTagsHandler",
services={
"MainConfig",},
},
changeTagsListActive={
class="MediaWiki\\Extension\\Adiutor\\HookHandlers\\ChangeTagsHandler",
services={
"MainConfig",},
},
changeTagsAllowedAdd={
class="MediaWiki\\Extension\\Adiutor\\HookHandlers\\ChangeTagsHandler",
services={
"MainConfig",},
},
pageSaveComplete={
class="MediaWiki\\Extension\\Adiutor\\HookHandlers\\PageSaveCompleteHandler",
services={
"RevisionLookup",},
},
createEchoEvent={
class="MediaWiki\\Extension\\Adiutor\\HookHandlers\\CreateEchoEventHandler",
services={
"MainConfig",},
},
},
RestRoutes={
{
path="/adiutor/v0/notifier",
method="POST",
class="MediaWiki\\Extension\\Adiutor\\Rest\\Handler\\NotifierHandler",
services={
"UserFactory","RevisionLookup","MainConfig",},
},},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Adiutor",
},
Admin_Links={
name="Admin Links",
version="0.6.2",
author={
"Yaron Koren",},
url="https://www.mediawiki.org/wiki/Extension:Admin_Links",
descriptionmsg="adminlinks-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.0",
},
GroupPermissions={
sysop={
adminlinks=true,
},
},
AvailableRights={
"adminlinks",},
SpecialPages={
AdminLinks="AdminLinks",
},
ExtensionMessagesFiles={
AdminLinksAlias="AdminLinks.alias.php",
},
ConfigRegistry={
AdminLinks="GlobalVarConfig::newInstance",
},
config={
AdminLinksDelimiter="·",
},
Hooks={
["SkinTemplateNavigation::Universal"]="main",
},
HookHandlers={
main={
class="AdminLinksHooks",
},
},
composer="mediawiki/admin-links",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AdminLinks",
},
AdvancedMeta={
name="AdvancedMeta",
version="3.0.0",
author={
"[http://www.stephanmuller.nl Stephan Muller]","Bart van Heukelom","Zayoo","Patric Wirth &lt;wirth@hallowelt.com&gt;",},
url="https://www.mediawiki.org/wiki/Extension:AdvancedMeta",
descriptionmsg="advancedmeta-desc",
type="other",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.39.0",
},
callback="\\AdvancedMeta\\Extension::onRegistration",
ServiceWiringFiles={
"includes/ServiceWiring.php",},
APIModules={
["advancedmeta-tasks"]="\\AdvancedMeta\\Api\\Tasks",
},
GroupPermissions={
["*"]={
["advancedmeta-edit"]=false,
},
user={
["advancedmeta-edit"]=false,
},
bureaucrat={
["advancedmeta-edit"]=true,
},
sysop={
["advancedmeta-edit"]=true,
},
},
AvailableRights={
"advancedmeta-edit",},
config={
GlobalKeywordsMsgKey={
value="globalkeywords",
},
NoIndexOnOldVersions={
value=false,
},
},
config_prefix="adwm",
ConfigRegistry={
adwm="\\AdvancedMeta\\Config::newInstance",
},
Hooks={
LoadExtensionSchemaUpdates="\\AdvancedMeta\\Hook\\LoadExtensionSchemaUpdates\\AddAdvancedMetaDBSchema::callback",
BeforePageDisplay={
"\\AdvancedMeta\\Hook\\BeforePageDisplay\\AddResources::callback","\\AdvancedMeta\\Hook\\BeforePageDisplay\\AddPolicies::callback","\\AdvancedMeta\\Hook\\BeforePageDisplay\\AddJSConfigVar::callback","\\AdvancedMeta\\Hook\\BeforePageDisplay\\AddKeywords::callback","\\AdvancedMeta\\Hook\\BeforePageDisplay\\AddDescription::callback","\\AdvancedMeta\\Hook\\BeforePageDisplay\\SetHTMLTitle::callback",},
["SkinTemplateNavigation::Universal"]="\\AdvancedMeta\\Hook\\SkinTemplateNavigationUniversal\\AddAdvancedMeta::callback",
},
composer="mediawiki/advanced-meta",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AdvancedMeta",
},
AdvancedSearch={
name="AdvancedSearch",
author={
"[https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes Wikimedia Deutschland Technical Wishes Team]","Thiemo Kreuz","Gabriel Birke","Tonina Zhelyazkova","Christoph Jauera","Kai Nissen","Tim Eulitz",},
url="https://www.mediawiki.org/wiki/Extension:AdvancedSearch",
descriptionmsg="advancedsearch-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
},
config={
AdvancedSearchDeepcatEnabled={
description="Category search also includes child categories.",
value=true,
},
AdvancedSearchNamespacePresets={
description="Groups of namespaces to offer as presets. Can be specified ('namespaces') or determined dynamically ('provider').",
value={
defaultNamespaces={
enabled=true,
provider="defaultNamespaces",
label="advancedsearch-namespaces-preset-default",
},
discussion={
enabled=true,
provider="discussion",
label="advancedsearch-namespaces-preset-discussion",
},
generalHelp={
enabled=true,
namespaces={
"4","12",},
label="advancedsearch-namespaces-preset-general-help",
},
all={
enabled=true,
provider="all",
label="advancedsearch-namespaces-preset-all",
},
},
merge_strategy="array_plus_2d",
},
},
HookHandlers={
main={
class="AdvancedSearch\\Hooks",
},
},
Hooks={
GetPreferences="main",
SpecialPageBeforeExecute="main",
SpecialSearchResultsPrepend="main",
},
DefaultUserOptions={
["advancedsearch-disable"]=0,
},
QUnitTestModule={
localBasePath="tests/qunit",
remoteExtPath="AdvancedSearch/tests/qunit",
scripts={
"FieldCollection.test.js","QueryCompiler.test.js","SearchField.test.js","ui/ArbitraryWordInput.test.js","ui/CheckboxInputWidget.test.js","ui/ItemMenuOptionWidget.test.js","ui/FileTypeSelection.test.js","ui/MenuSelectWidget.test.js","ui/LanguageSelection.test.js","ui/NamespaceFilters.test.js","ui/NamespacePresets.test.js","ui/SearchPreview.test.js","dm/getDefaultNamespaces.test.js","dm/NamespacePresetProviders.test.js","dm/SearchModel.test.js","dm/FileTypeOptionProvider.test.js","dm/TitleCache.test.js","dm/LanguageOptionProvider.test.js","dm/MultiselectLookup.test.js","util.test.js",},
dependencies={
"ext.advancedSearch.elements","oojs-ui",},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AdvancedSearch",
},
AjaxShowEditors={
name="Ajax Show Editors",
version="2.0",
author={
"Antoine Musso","Tim Starling","Jack Phoenix","...",},
url="https://www.mediawiki.org/wiki/Extension:AjaxShowEditors",
descriptionmsg="ajaxshoweditors-desc",
["license-name"]="GPL-2.0-only",
requires={
MediaWiki="&gt;= 1.36.0",
},
type="other",
config={
AjaxShowEditorsTimeout={
value=60,
path=false,
description="Number of seconds before a user is considered as no longer editing",
public=false,
},
},
APIModules={
ajaxshoweditors="ApiAjaxShowEditors",
},
Hooks={
PageContentSave="AjaxShowEditorsHooks::onPageContentSave",
BeforePageDisplay="AjaxShowEditorsHooks::onBeforePageDisplay",
["EditPage::showEditForm:initial"]="AjaxShowEditorsHooks::onEditPageShowEditFormInitial",
LoadExtensionSchemaUpdates="AjaxShowEditorsHooks::onLoadExtensionSchemaUpdates",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AjaxShowEditors",
},
AkismetKlik={
name="AkismetKlik",
author="Carl Austin Bennett",
url="https://www.mediawiki.org/wiki/Extension:AkismetKlik",
descriptionmsg="akismetklik-desc",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
config={
AKSiteUrl={
value="",
},
AKkey={
value="",
},
},
["license-name"]="BSD-2-Clause",
Hooks={
EditFilterMergedContent="AkismetKlik::onAkismetFilterMergedContent",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AkismetKlik",
},
AllTimeZones={
name="AllTimeZones",
version="0.3.0",
author="Nischay Nahata",
url="https://www.mediawiki.org/wiki/Extension:AllTimeZones",
descriptionmsg="alltimezones-desc",
["license-name"]="GPL-3.0-only",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
ParserFirstCallInit="AllTimeZonesHooks::wfTimezoneSetup",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AllTimeZones",
},
AnchorHandler={
name="AnchorHandler",
version="0.2",
author="[https://www.mediawiki.org/wiki/User:Tosfos Ike Hecht] for [http://www.wikiworks.com/ WikiWorks]",
url="https://www.mediawiki.org/wiki/Extension:AnchorHandler",
descriptionmsg="anchorhandler-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="AnchorHandlerHooks::addAnchorHandler",
},
config_prefix="eg",
config={
AnchorNamespaces={
value="",
description="Wiki namespaces where AnchorHandler will work. Set on LocalSettings.php",
public=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AnchorHandler",
},
AnonPrivacy={
name="AnonPrivacy",
version="1.1",
author="[https://mediawiki.org/wiki/User:Sophivorus Sophivorus]",
url="https://www.mediawiki.org/wiki/Extension:AnonPrivacy",
descriptionmsg="anonprivacy-desc",
["license-name"]="GPL-3.0",
type="other",
requires={
MediaWiki="&gt;=1.35.0",
},
AvailableRights={
"anonprivacy",},
GroupPermissions={
sysop={
anonprivacy=true,
},
},
Hooks={
HtmlPageLinkRendererEnd="AnonPrivacy::onHtmlPageLinkRendererEnd",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AnonPrivacy",
},
AntiSpoof={
name="AntiSpoof",
author="Brion Vibber",
url="https://www.mediawiki.org/wiki/Extension:AntiSpoof",
descriptionmsg="antispoof-desc",
["license-name"]="GPL-2.0-or-later",
type="antispam",
requires={
MediaWiki="&gt;= 1.42",
},
GroupPermissions={
sysop={
["override-antispoof"]=true,
},
bureaucrat={
["override-antispoof"]=true,
},
},
AvailableRights={
"override-antispoof",},
GrantPermissions={
createaccount={
["override-antispoof"]=true,
},
},
APIModules={
antispoof="MediaWiki\\Extension\\AntiSpoof\\ApiAntiSpoof",
},
AuthManagerAutoConfig={
preauth={
AntiSpoofPreAuthenticationProvider={
class="MediaWiki\\Extension\\AntiSpoof\\AntiSpoofPreAuthenticationProvider",
services={
"PermissionManager",},
},
},
},
callback="MediaWiki\\Extension\\AntiSpoof\\Hooks::onRegistration",
Hooks={
LoadExtensionSchemaUpdates="schema",
LocalUserCreated="main",
RenameUserComplete="main",
DeleteAccount="usermerge",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\AntiSpoof\\Hooks",
},
usermerge={
class="MediaWiki\\Extension\\AntiSpoof\\UserMergeHooks",
},
schema={
class="MediaWiki\\Extension\\AntiSpoof\\SchemaHooks",
},
},
config={
AntiSpoofAccounts={
description="Whether to stop spoofed accounts from being created. When false, only log.",
value=true,
public=true,
},
AntiSpoofProhibitedCharacters={
description="List of characters prohibited from use in your wiki.",
value={
"̷","̸","⁄","∕","⎮","⧶","⧸","⫻","⫽","／",},
public=true,
},
},
composer="mediawiki/anti-spoof",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AntiSpoof",
},
ApiFeatureUsage={
name="ApiFeatureUsage",
version="1.0",
author="Brad Jorsch",
url="https://www.mediawiki.org/wiki/Extension:ApiFeatureUsage",
descriptionmsg="apifeatureusage-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.43",
extensions={
Elastica="*",
},
},
ConfigRegistry={
ApiFeatureUsage="GlobalVarConfig::newInstance",
},
SpecialPages={
ApiFeatureUsage="MediaWiki\\Extension\\ApiFeatureUsage\\SpecialApiFeatureUsage",
},
APIMetaModules={
featureusage="MediaWiki\\Extension\\ApiFeatureUsage\\ApiQueryFeatureUsage",
},
ExtensionMessagesFiles={
ApiFeatureUsageAlias="ApiFeatureUsage.alias.php",
},
Hooks={
ApiDeprecationHelp="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\ApiFeatureUsage\\Hooks",
},
},
config={
ApiFeatureUsageQueryEngineConf={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ApiFeatureUsage",
},
Approved_Revs={
name="Approved Revs",
version="2.1-alpha",
author={
"Yaron Koren","...",},
url="https://www.mediawiki.org/wiki/Extension:Approved_Revs",
descriptionmsg="approvedrevs-desc",
["license-name"]="GPL-2.0-or-later",
type="hook",
requires={
MediaWiki="&gt;= 1.38.0",
},
GroupPermissions={
sysop={
viewapprover=true,
approverevisions=true,
},
["*"]={
viewlinktolatest=true,
},
},
GrantPermissions={
approvedrevs={
approverevisions=true,
viewlinktolatest=true,
viewapprover=true,
},
},
GrantPermissionGroups={
approvedrevs="approvedrevs",
},
AvailableRights={
"approverevisions","viewlinktolatest","viewapprover",},
LogTypes={
"approval",},
LogNames={
approval="approvedrevs-logname",
},
LogHeaders={
approval="approvedrevs-logdesc",
},
LogActions={
["approval/approve"]="approvedrevs-approveaction",
["approval/approvefile"]="approvedrevs-approvefileaction",
["approval/unapprove"]="approvedrevs-unapproveaction",
},
SpecialPages={
ApprovedRevs="SpecialApprovedRevs",
},
APIModules={
approve="ApiApprove",
},
ExtensionMessagesFiles={
ApprovedRevsAlias="ApprovedRevs.alias.php",
ApprovedRevsMagic="ApprovedRevs.i18n.magic.php",
},
Actions={
approve="ARApproveAction",
unapprove="ARUnapproveAction",
approvefile="ARApproveFileAction",
unapprovefile="ARUnapproveFileAction",
},
Hooks={
PageSaveComplete={
"ApprovedRevsHooks::setLatestAsApproved","ApprovedRevsHooks::setSearchText",},
PageMoveComplete="ApprovedRevsHooks::setPageMoveAsApproved",
RevisionDataUpdates="ApprovedRevsHooks::updateLinksAfterEdit",
SearchResultInitFromTitle="ApprovedRevsHooks::setSearchRevisionID",
ParserBeforeInternalParse="ApprovedRevsHooks::removeRobotsTag",
ArticleFromTitle="ApprovedRevsHooks::showApprovedRevision",
ArticleRevisionViewCustom="ApprovedRevsHooks::showBlankIfUnapproved",
DisplayOldSubtitle="ApprovedRevsHooks::setSubtitle",
["SkinTemplateNavigation::Universal"]="ApprovedRevsHooks::changeEditLink",
PageHistoryBeforeList="ApprovedRevsHooks::storeApprovedRevisionForHistoryPage",
PageHistoryLineEnding="ApprovedRevsHooks::addApprovalLink",
PageDeleteComplete="ApprovedRevsHooks::deleteRevisionApproval",
DiffTools="ApprovedRevsHooks::addApprovalDiffLink",
BeforeParserFetchTemplateRevisionRecord="ApprovedRevsHooks::setTranscludedPageRev",
GetMagicVariableIDs="ApprovedRevsHooks::addMagicWordVariableIDs",
ParserAfterTidy="ApprovedRevsHooks::handleMagicWords",
ParserGetVariableValueSwitch="ApprovedRevsHooks::assignAValue",
ParserFirstCallInit="ApprovedRevsHooks::registerFunctions",
AdminLinks="ApprovedRevsHooks::addToAdminLinks",
LoadExtensionSchemaUpdates="ApprovedRevsHooks::describeDBSchema",
TitleGetEditNotices="ApprovedRevsHooks::addEditNotice",
["PageForms::HTMLBeforeForm"]="ApprovedRevsHooks::addWarningToPFForm",
ArticleViewHeader={
"ApprovedRevsHooks::setArticleHeader","ApprovedRevsHooks::displayNotApprovedHeader",},
OutputPageBodyAttributes="ApprovedRevsHooks::addBodyClass",
ImagePageFileHistoryLine="ApprovedRevsHooks::onImagePageFileHistoryLine",
UploadComplete="ApprovedRevsHooks::setLatestFileRevAsApproved",
BeforeParserFetchFileAndTitle="ApprovedRevsHooks::modifyFileLinks",
ImagePageFindFile="ApprovedRevsHooks::onImagePageFindFile",
FileDeleteComplete="ApprovedRevsHooks::onFileDeleteComplete",
wgQueryPages="ApprovedRevsHooks::onwgQueryPages",
MpdfGetArticle="ApprovedRevsHooks::onMpdfGetArticle",
},
config={
["_prefix"]="eg",
ApprovedRevsEnabledNamespaces={
true,true,true,true,true,true,"array_plus",},
ApprovedRevsSelfOwnedNamespaces={
},
ApprovedRevsBlankIfUnapproved=false,
ApprovedRevsBlankFileIfUnapproved=false,
ApprovedRevsAutomaticApprovals=true,
ApprovedRevsFileAutomaticApprovals=true,
ApprovedRevsShowApproveLatest=false,
ApprovedRevsShowNotApprovedMessage=false,
},
composer="mediawiki/approved-revs",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ApprovedRevs",
},
ArrayFunctions={
name="ArrayFunctions",
type="parserhook",
version="1.9.0",
author={
"Marijn van Wezel",},
url="https://www.mediawiki.org/wiki/Extension:ArrayFunctions",
descriptionmsg="af-desc",
namemsg="af-extensionname",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.35.6",
platform={
php="&gt;= 7.4",
},
},
ExtensionMessagesFiles={
ArrayFunctionsMagic="i18n/ArrayFunctions.i18n.php",
},
HookHandlers={
Trivial={
class="\\ArrayFunctions\\TrivialHookHandler",
},
ParserInit={
class="\\ArrayFunctions\\ParserInitHookHandler",
services={
"ArrayFunctions.ArrayFunctionRegistry",},
},
},
Hooks={
ParserFirstCallInit="ParserInit",
ParserGetVariableValueSwitch="Trivial",
GetMagicVariableIDs="Trivial",
ScribuntoExternalLibraries="\\ArrayFunctions\\LegacyHookHandler::onScribuntoExternalLibraries",
},
ServiceWiringFiles={
"src/ArrayFunctions.ServiceWiring.php",},
callback="\\ArrayFunctions\\LegacyHookHandler::onExtensionRegistration",
repository="https://gitlab.wikibase.nl/extensions/arrayfunctions",
composer="wikibase-solutions/array-functions",
},
Arrays={
name="Arrays",
version="2.2.1",
author={
"Li Ding","Jie Bao","[https://www.mediawiki.org/wiki/User:Danwe Daniel Werner]",},
url="https://www.mediawiki.org/wiki/Extension:Arrays",
descriptionmsg="arrays-desc",
["license-name"]="MIT",
type="parserhook",
requires={
MediaWiki="&gt;= 1.34.0",
},
ExtensionMessagesFiles={
ArraysMagic="Arrays.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="ExtArrays::init",
ParserClearState="ExtArrays::onParserClearState",
},
config_prefix="eg",
config={
ArraysCompatibilityMode={
description="Set to false by default since version 2.0.",
value=false,
},
ArraysExpansionEscapeTemplates={
description="Contains a key-value pair list of characters that should be replaced by a template or parser function call within array values included into an '#arrayprint'. By replacing these special characters before including the values into the string which is being expanded afterwards, array values can't distract the surrounding MW code. Otherwise the array values themselves would be parsed as well.\n\nThis has no effect in case $egArraysCompatibilityMode is set to false! If set to null, Arrays will jump to compatibility mode behavior on this, independently from $egArraysCompatibilityMode.",
value={
["="]="{{=}}",
["|"]="{{!}}",
["{{"]="{{((}}",
["}}"]="{{))}}",
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Arrays",
},
ArticleCreationWorkflow={
name="ArticleCreationWorkflow",
namemsg="acw-extensionname",
type="other",
author={
"Max Semenik","Niharika Kohli",},
url="https://www.mediawiki.org/wiki/Extension:ArticleCreationWorkflow",
descriptionmsg="acw-desc",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.42",
},
Hooks={
GetActionName="main",
BeforeDisplayNoArticleText="main",
TitleQuickPermissions="main",
},
HookHandlers={
main={
class="ArticleCreationWorkflow\\Hooks",
},
},
GroupPermissions={
["*"]={
createpagemainns=true,
},
user={
createpagemainns=true,
},
autoconfirmed={
createpagemainns=true,
},
},
GrantPermissions={
createeditmovepage={
createpagemainns=true,
},
},
AvailableRights={
"createpagemainns",},
config={
ArticleCreationLandingPage={
description="The name of the wiki page which should replace the default message when intercepting.",
value="Project:Article wizard",
},
},
ConfigRegistry={
ArticleCreationWorkflow="GlobalVarConfig::newInstance",
},
composer="mediawiki/acw",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ArticleCreationWorkflow",
},
ArticleFeedbackv5={
name="Article Feedback",
version="5.6.0",
author={
"Greg Chiasson","Reha Sterbin","Sam Reed","Roan Kattouw","Trevor Parscal","Brandon Harris","Adam Miller","Nimish Gautam","Arthur Richards","Timo Tijhof","Ryan Kaldari","Elizabeth M Smith","Michael Jackson","Matthias Mullie","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.38.0",
},
url="https://www.mediawiki.org/wiki/Extension:ArticleFeedbackv5",
descriptionmsg="articlefeedbackv5-desc",
type="other",
callback="ArticleFeedbackv5Hooks::registerExtension",
DefaultUserOptions={
["aftv5-last-filter"]=nil,
["echo-subscriptions-web-feedback"]=true,
["echo-subscriptions-email-feedback"]=true,
},
AvailableRights={
"aft-reader","aft-member","aft-editor","aft-monitor","aft-administrator","aft-oversighter",},
SpecialPages={
ArticleFeedbackv5="SpecialArticleFeedbackv5",
ArticleFeedbackv5Watchlist="SpecialArticleFeedbackv5Watchlist",
},
JobClasses={
ArticleFeedbackv5MailerJob="ArticleFeedbackv5MailerJob",
},
LogTypes={
"articlefeedbackv5",},
LogActionsHandlers={
["articlefeedbackv5/protect"]="ArticleFeedbackv5ProtectionLogFormatter",
["articlefeedbackv5/create"]="ArticleFeedbackv5LogFormatter",
},
APIModules={
["articlefeedbackv5-set-status"]="ApiSetStatusArticleFeedbackv5",
["articlefeedbackv5-add-flag-note"]="ApiAddFlagNoteArticleFeedbackv5",
["articlefeedbackv5-flag-feedback"]="ApiFlagFeedbackArticleFeedbackv5",
["articlefeedbackv5-get-count"]="ApiGetCountArticleFeedbackv5",
articlefeedbackv5="ApiArticleFeedbackv5",
},
APIListModules={
["articlefeedbackv5-view-feedback"]={
class="ApiViewFeedbackArticleFeedbackv5",
services={
"UserOptionsManager",},
},
["articlefeedbackv5-view-activity"]="ApiViewActivityArticleFeedbackv5",
},
ExtensionMessagesFiles={
ArticleFeedbackv5Alias="ArticleFeedbackv5.alias.php",
},
Hooks={
LoadExtensionSchemaUpdates="ArticleFeedbackv5Hooks::loadExtensionSchemaUpdates",
BeforePageDisplay="ArticleFeedbackv5Hooks::beforePageDisplay",
ResourceLoaderGetConfigVars="ArticleFeedbackv5Hooks::resourceLoaderGetConfigVars",
MakeGlobalVariablesScript="ArticleFeedbackv5Hooks::makeGlobalVariablesScript",
GetPreferences="ArticleFeedbackv5Hooks::getPreferences",
["EditPage::showEditForm:fields"]="ArticleFeedbackv5Hooks::pushFieldsToEdit",
["ContribsPager::reallyDoQuery"]="ArticleFeedbackv5Hooks::contributionsData",
ContributionsLineEnding="ArticleFeedbackv5Hooks::contributionsLineEnding",
["ProtectionForm::buildForm"]="ArticleFeedbackv5Hooks::onProtectionForm",
["ProtectionForm::save"]="ArticleFeedbackv5Hooks::onProtectionSave",
["ProtectionForm::showLogExtract"]="ArticleFeedbackv5Hooks::onShowLogExtract",
UserLoginComplete="ArticleFeedbackv5Hooks::userLoginComplete",
UserGetReservedNames="ArticleFeedbackv5Hooks::onUserGetReservedNames",
BeforeCreateEchoEvent="ArticleFeedbackv5Hooks::onBeforeCreateEchoEvent",
EchoGetDefaultNotifiedUsers="ArticleFeedbackv5Hooks::onEchoGetDefaultNotifiedUsers",
EchoGetBundleRules="ArticleFeedbackv5Hooks::onEchoGetBundleRules",
AbuseFilterCustomActions="ArticleFeedbackv5Hooks::onAbuseFilterCustomActions",
},
config={
ArticleFeedbackv5DefaultFilters={
description="Default filter and direction settings for groups.\nreaders (= all)\neditors (autoconfirmed)\nmonitors\noversighters",
value={
["aft-reader"]="featured",
["aft-editor"]="featured",
["aft-monitor"]="featured",
["aft-oversighter"]="featured",
},
},
ArticleFeedbackv5DefaultSorts={
description="Default sorts by filter. Because privileges don't play a part in default sort, the visible-, notdeleted-, and all- prefixes have been removed.",
value={
featured={
"relevance","DESC",},
unreviewed={
"age","DESC",},
helpful={
"helpful","DESC",},
unhelpful={
"helpful","ASC",},
flagged={
"age","DESC",},
useful={
"age","DESC",},
resolved={
"age","DESC",},
noaction={
"age","DESC",},
inappropriate={
"age","DESC",},
archived={
"age","DESC",},
allcomment={
"age","DESC",},
hidden={
"age","DESC",},
requested={
"age","DESC",},
declined={
"age","DESC",},
oversighted={
"age","DESC",},
all={
"age","DESC",},
},
},
ArticleFeedbackv5RelevanceScoring={
description="Relevance Scoring. name =&gt; integer scoring actions pairs. After changing this you should also change the values in relevance_score.sql and run it to reset relevance",
value={
helpful=1,
["undo-helpful"]=-1,
unhelpful=-1,
["undo-unhelpful"]=1,
flag=-5,
unflag=5,
autoflag=5,
feature=50,
unfeature=-50,
resolve=-5,
unresolve=5,
noaction=-5,
unnoaction=5,
inappropriate=-50,
uninappropriate=50,
autohide=-100,
hide=-100,
unhide=100,
archive=-50,
unarchive=50,
request=-150,
unrequest=150,
decline=150,
oversight=-750,
unoversight=750,
},
},
ArticleFeedbackv5Permissions={
description="Permissions, which are added to $wgAvailableRights. See ArticleFeedbackv5Hooks.php for more documentation etc. on this.",
value={
"aft-reader","aft-member","aft-editor","aft-monitor","aft-administrator","aft-oversighter",},
},
ArticleFeedbackv5AutoArchiveEnabled={
description="Enable/disable the \"archived\" filter. This is a setting that needs to explicitly be set to true since the functionality will depend on a cronjob to be run periodically. True to enable, false to disable.",
value=false,
},
ArticleFeedbackv5AutoArchiveTtl={
description="Defines the auto-archive period for feedback that is not being considered useful. Value should be an strtotime-capable format.\n\nIf defined as string, this will be a fixed TTL based on the feedback creation date.\n\nIt is also possible to set a certain TTL per offset of unreviewed feedback, e.g.:\narray(\n\t0 =&gt; '+2 years', // &lt; 9: 2 years\n\t10 =&gt; '+1 month', // 10-19: 1 month\n\t20 =&gt; '+1 week', // 20-29: 1 week\n\t30 =&gt; '+3 days', // 30-39: 3 days\n\t40 =&gt; '+2 days', // &gt; 40: 2 days\n\t);",
value="+2 weeks",
},
ArticleFeedbackv5ArticlePageLink={
description="Defines whether or not there should be a link to the corresponding feedback on the article page",
value=true,
},
ArticleFeedbackv5TalkPageLink={
description="Defines whether or not there should be a link to the corresponding feedback on the article page's talk page",
value=true,
},
ArticleFeedbackv5WatchlistLink={
description="Defines whether or not there should be a link to the watchlisted feedback on the watchlist page",
value=true,
},
ArticleFeedbackv5Watchlist={
description="Defines whether or not the special page for feedback on a user's watchlisted pages is enabled",
value=true,
},
ArticleFeedbackv5OversightEmails={
description="Email address to send oversight request emails to, if set to null no emails are sent",
value=nil,
},
ArticleFeedbackv5OversightEmailName={
description="Name to send oversight request emails to",
value="Oversighters",
},
ArticleFeedbackv5OversightEmailHelp={
description="Help link for oversight email",
value="https://en.wikipedia.org/wiki/Wikipedia:Article_Feedback_Tool/Version_5/Help/Feedback_page_Oversighters",
},
ArticleFeedbackv5AutoHelp={
description="Help link for auto flag/hide etc.",
value="https://en.wikipedia.org/wiki/Wikipedia:Article_Feedback_Tool/Version_5/Help",
},
ArticleFeedbackv5MaxCommentLength={
description="How long text-based feedback is allowed to be before returning an error. Set to 0 to disable length checking entirely.",
value=5000,
},
ArticleFeedbackv5MaxActivityNoteLength={
description="How long text-based activity items are allowed to be - note this will not return an error but simply chop notes that are too long",
value=5000,
},
ArticleFeedbackv5RatingLifetime={
description="Number of revisions to keep a rating alive for",
value=30,
},
ArticleFeedbackv5LotteryOdds={
description="Percentage of article AFT should be enabled on",
value=100,
},
ArticleFeedbackv5Categories={
description="Which categories the pages must belong to have the rating widget added (with _ in text). Extension is \"disabled\" if this field is an empty array (as per default configuration)",
value={
"Article_Feedback_5",},
},
ArticleFeedbackv5BlacklistCategories={
description="Which categories the pages must not belong to have the rating widget added (with _ in text)",
value={
"Article_Feedback_Blacklist",},
},
ArticleFeedbackv5EnableProtection={
description="Allow/disallow the ability to enable or disable AFTv5 on a per-article basis. This feature will add an AFTv5 entry in page protection settings (for admins) or a simple enable/disable link for editors. Disabling this will remove said links &amp; entry in ?action=protect &amp; ignore existing opt-in/-outs, leaving only lottery &amp; whitelist/blacklist categories to define if an article should get AFTv5.",
value=true,
},
ArticleFeedbackv5Debug={
description="This puts the JavaScript into debug mode. In debug mode, you can set your own bucket by passing it in the URL (e.g., ?bucket=1), and the showstopper error mode will have a useful error message, if one exists, rather than the default message.",
value=false,
},
ArticleFeedbackv5DisplayBuckets={
description="Bucket settings for display options. Users can fall into one of several display buckets (these are defined in modules/jquery.articlefeedbackv5/jquery.articlefeedbackv5.js). When a user arrives at the page, this config will be used by core bucketing to decide which of the available form options they see. Whenever there's an update to the available buckets, change the version number to ensure the new odds are applied to everyone, not just people who have yet to be placed in a bucket.",
value={
buckets={
[1]=0,
[2]=0,
[5]=0,
[7]=100,
},
version=6,
expires=30,
},
},
ArticleFeedbackv5LinkBuckets={
description="Bucket settings for links to the feedback form. Users can fall into one of several buckets for links. These are:\nX: No link; user must scroll to the bottom of the page\nA: After the site tagline (below the article title)\nB: Below the titlebar on the right\nC: Button fixed to right side\nD: Button fixed to bottom right\nE: Button fixed to bottom right, design D2\nF: Button fixed to left side\nG: Button below logo\nH: Link on each section bar",
value={
buckets={
X=100,
A=0,
B=0,
C=0,
D=0,
E=0,
F=0,
G=0,
H=0,
},
version=5,
expires=30,
},
},
ArticleFeedbackv5CTABuckets={
description="Bucket settings for CTAs. Users can fall into one of several CTAs (these are defined in modules/jquery.articlefeedbackv5/jquery.articlefeedbackv5.js). When a user arrives at the page, this config will be used by core bucketing to decide which of the available CTAs they see.  Whenever there's an update to the available buckets, change the version number to ensure the new odds are applied to everyone, not just people who have yet to be placed in a bucket.",
value={
buckets={
0,0,0,0,90,9,1,},
version=7,
expires=0,
},
},
ArticleFeedbackv5AbusiveThreshold={
description="Abusive threshold. After this many users flag a comment as abusive, it is marked as such.",
value=3,
},
ArticleFeedbackv5HideAbuseThreshold={
description="Hide abuse threshold. After this many users flag a comment as abusive, it is hidden.",
value=5,
},
ArticleFeedbackv5AbuseFiltering={
description="Turn on abuse filtering. If this is set to true, comments will be run through:\n1. $wgSpamRegex, if set\n2. SpamBlacklist, if installed\n3. AbuseFilter, if installed",
value=false,
},
ArticleFeedbackv5AbuseFilterGroup={
description="This is the custom group name for AbuseFilter. It ensures that AbuseFilter only pulls the filters related to AFT. If you would like AbuseFilter to pull all of the filters, enter 'default' here.",
value="feedback",
},
ArticleFeedbackv5ThrottleThresholdPostsPerHour={
description="How many feedback posts per hour before triggering a throttling response? This is per-user and is governed by last-posted timestamps stored in a cookie. If this is set to -1, the number of posts is not throttled.",
value=20,
},
ArticleFeedbackv5LearnToEdit={
description="The full URL for the \"Learn to Edit\" link",
value="//en.wikipedia.org/wiki/Wikipedia:Tutorial",
},
ArticleFeedbackv5SurveyUrls={
description="The full URL for the survey link",
value={
[2]="https://www.surveymonkey.com/s/aft5-1",
[3]="https://www.surveymonkey.com/s/aft5-2",
[4]="https://www.surveymonkey.com/s/aft5-3",
[7]="https://www.surveymonkey.com/s/aft5-6",
},
},
ArticleFeedbackv5BackendClass={
description="Defines the backend class to be used by AFT's DataModel. Currently, only 1 (ArticleFeedbackv5BackendLBFactory) backend is supported, so better not touch that ;)",
value="ArticleFeedbackv5BackendLBFactory",
},
ArticleFeedbackv5Cluster={
description="Will define what external server should be used. If set to false, the current database (wfGetDB) will be used to read/write data from/to. If AFT data is supposed to be stored on an external database, set the value of this variable to the $wgExternalServers key representing that external connection.",
value=false,
},
},
composer="mediawiki/article-feedbackv5",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ArticleFeedbackv5",
},
ArticleIndex={
name="ArticleIndex",
version="0.5.1",
author="[https://www.mediawiki.org/wiki/User:Jossmart Josef Martiňák]",
url="https://www.mediawiki.org/wiki/Extension:ArticleIndex",
descriptionmsg="articleindex-desc",
["license-name"]="GPL-3.0-only",
type="specialpage",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="ArticleIndexHooks::registerParserHook",
BeforePageDisplay="ArticleIndexHooks::showIndex",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ArticleIndex",
},
ArticleMetaDescription={
name="ArticleMetaDescription",
version="1.4",
author={
"Adrian Wieczorek",},
url="https://www.mediawiki.org/wiki/Extension:ArticleMetaDescription",
descriptionmsg="articlemetadescription-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
Hooks={
OutputPageBeforeHTML="ArticleMetaDescription::onOutputPageBeforeHTML",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ArticleMetaDescription",
},
ArticlePlaceholder={
name="ArticlePlaceholder",
author={
"Lucie-Aimée Kaffee",},
url="https://www.mediawiki.org/wiki/Extension:ArticlePlaceholder",
descriptionmsg="articleplaceholder-desc",
type="other",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42",
extensions={
Scribunto="*",
},
},
SpecialPages={
AboutTopic="ArticlePlaceholder\\Specials\\SpecialAboutTopic::newFromGlobalState",
CreateTopicPage="ArticlePlaceholder\\Specials\\SpecialCreateTopicPage",
},
ExtensionMessagesFiles={
ArticlePlaceholderAliases="ArticlePlaceholder.alias.php",
},
QUnitTestModule={
localBasePath="tests/qunit",
remoteExtPath="ArticlePlaceholder/tests/qunit",
dependencies={
"ext.articleplaceholder.createArticle",},
scripts={
"ext.articleplaceholder.createArticle/createArticle.test.js","ext.articleplaceholder.createArticle/createArticleTranslation.test.js",},
},
Hooks={
SidebarBeforeOutput="sidebar",
ScribuntoExternalLibraries="scribunto",
ScribuntoExternalLibraryPaths="scribunto",
SpecialSearchResultsAppend="search",
},
HookHandlers={
sidebar={
class="ArticlePlaceholder\\SidebarBeforeOutputHookHandler",
factory="ArticlePlaceholder\\SidebarBeforeOutputHookHandler::newFromGlobalState",
},
search={
class="ArticlePlaceholder\\SearchHookHandler",
factory="ArticlePlaceholder\\SearchHookHandler::newFromGlobalState",
services={
"MainConfig",},
},
scribunto={
class="ArticlePlaceholder\\ScribuntoHooks",
},
},
config={
ArticlePlaceholderImageProperty={
value="P18",
},
ArticlePlaceholderReferencesBlacklist={
value="P143",
},
ArticlePlaceholderSearchEngineIndexed={
value=false,
},
ArticlePlaceholderSearchIntegrationEnabled={
value=true,
},
ArticlePlaceholderRepoApiUrl={
value="https://www.wikidata.org/w/api.php",
},
},
composer="mediawiki/article-placeholder",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ArticlePlaceholder",
},
ArticleRatings={
name="ArticleRating",
version="2.6",
author="UltrasonicNXT/Adam Carter",
url="https://www.mediawiki.org/wiki/Extension:ArticleRatings",
descriptionmsg="ratings-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
GroupPermissions={
reviewer={
["change-rating"]=true,
},
},
AvailableRights={
"change-rating",},
SpecialPages={
ChangeRating="SpecialChangeRating",
MassRatings="SpecialMassRatings",
},
LogTypes={
"ratings",},
LogActionsHandlers={
["ratings/*"]="LogFormatter",
},
ExtensionMessagesFiles={
ArticleRatingsAlias="ArticleRatings.alias.php",
},
APIModules={
["change-rating"]="ApiChangeRating",
},
Hooks={
SidebarBeforeOutput="ArticleRatingsHooks::onSidebarBeforeOutput",
TitleMove="ArticleRatingsHooks::onTitleMove",
ParserFirstCallInit="ArticleRatingsHooks::onParserFirstCallInit",
LoadExtensionSchemaUpdates="ArticleRatingsHooks::onLoadExtensionSchemaUpdates",
ArticleDeleteComplete="ArticleRatingsHooks::onArticleDeleteComplete",
},
config={
AREUseInitialRatings={
description="If true, the ratings tag has an init-rating parameter that wil set the initial rating to the codename supplied, not the default. Not recommended for production use, but can be used as a workaround to allow bots to use the extension.",
value=false,
},
ARENamespaces={
description="Array of namespace numbers/constants that are allowed to have ratings on them.",
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ArticleRatings",
},
ArticleToCategory2={
name="ArticleToCategory2",
version="1.3",
author={
"[https://www.mediawiki.org/wiki/User:MikaelLindmark Mikael Lindmark]","[https://www.mediawiki.org/wiki/User:BiGreat Liang Chen]","Julien Devincre","[https://www.mediawiki.org/wiki/User:Cm~mediawikiwiki Cynthia Mattingly]",},
url="https://www.mediawiki.org/wiki/Extension:ArticleToCategory2",
descriptionmsg="articletocategory2-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.32.0",
},
config={
ArticleToCategory2ConfigBlacklist={
value=false,
description="Set this flag to true to enable the category blacklist in \"MediaWiki:Add Article to Category 2 excluded categories\" page (you need to create this page first)",
},
},
AvailableRights={
"ArticleToCategory2","ArticleToCategory2AddCat",},
GroupPermissions={
["*"]={
ArticleToCategory2=true,
ArticleToCategory2AddCat=false,
},
},
Hooks={
EditFormPreloadText="ArticleToCategory2Hooks::onEditFormPreloadText",
CategoryPageView="ArticleToCategory2Hooks::onCategoryPageView",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ArticleToCategory2",
},
AtMentions={
name="AtMentions",
version="2.0.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://www.hallowelt.com",
descriptionmsg="at-mentions-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
OOJSPlus="&gt;= 2.0.0",
},
},
attributes={
VisualEditor={
PluginModules={
"ext.mentions.ve",},
StandalonePluginModules={
"ext.mentions.ve",},
},
Notifications={
Events={
["at-mentions-mention"]={
spec={
class="AtMentions\\Event\\UserMention",
},
buckets={
"personal",},
},
["at-mentions-mention-in-entity"]={
buckets={
"personal",},
},
},
},
},
callback="mwsInitComponents",
Hooks={
ParserBeforeInternalParse="processMentions",
HtmlPageLinkRendererEnd="processMentions",
PageSaveComplete="processMentions",
LoadExtensionSchemaUpdates="runDatabaseUpdates",
ParserFirstCallInit="processTags",
PageMoveComplete="processMentions",
PageDeleteComplete="processMentions",
ArticleUndelete="processMentions",
BSEntitySaveComplete="processMentionsInEntities",
BSEntityDelete="processMentionsInEntities",
},
HookHandlers={
processMentions={
class="AtMentions\\Hook\\ProcessMentions",
services={
"AtMentionsParser","AtMentionsStore","RevisionStore","MWStake.Notifier","TitleFactory","UserFactory",},
},
processMentionsInEntities={
class="AtMentions\\Hook\\ProcessMentionsInEntities",
services={
"AtMentionsParser","AtMentionsStore","RevisionStore","MWStake.Notifier","TitleFactory","NamespaceInfo","UserFactory",},
},
runDatabaseUpdates={
class="AtMentions\\Hook\\RunDatabaseUpdates",
},
processTags={
class="AtMentions\\Hook\\ProcessTags",
services={
"UserFactory","AtMentionsStore","LinkRenderer",},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
composer="mediawiki/atmentions",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AtMentions",
},
Athena={
name="Athena",
version="0.0.4",
author={
"Richard Cook",},
url="https://www.mediawiki.org/wiki/Extension:Athena",
descriptionmsg="athena-desc",
["license-name"]="GPL-3.0-only",
type="antispam",
requires={
MediaWiki="&gt;= 1.36.0",
},
SpecialPages={
Athena={
class="SpecialAthena",
services={
"NamespaceInfo","WikiPageFactory",},
},
},
ExtensionMessagesFiles={
AthenaAlias="Athena.alias.php",
},
callback="AthenaHooks::registerExtension",
Hooks={
EditFilter="AthenaHooks::editFilter",
LoadExtensionSchemaUpdates="AthenaHooks::createTables",
ArticleDeleteComplete="AthenaHooks::pageDeleted",
},
config={
AthenaSpamThreshold=0.5,
AthenaTraining=false,
},
AvailableRights={
"athena",},
GroupPermissions={
sysop={
athena=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Athena",
},
Auth_remoteuser={
name="Auth_remoteuser",
version="2.1.1",
requires={
MediaWiki="&gt;= 1.35.0",
},
config={
AuthRemoteuserUserName={
value=nil,
},
AuthRemoteuserUserNameReplaceFilter={
value=nil,
},
AuthRemoteuserUserNameBlacklistFilter={
value=nil,
},
AuthRemoteuserUserNameWhitelistFilter={
value=nil,
},
AuthRemoteuserUserPrefs={
value=nil,
},
AuthRemoteuserUserPrefsForced={
value=nil,
},
AuthRemoteuserUserUrls={
value=nil,
},
AuthRemoteuserAllowUserSwitch={
value=false,
},
AuthRemoteuserRemoveAuthPagesAndLinks={
value=true,
},
AuthRemoteuserPriority={
value=50,
},
},
type="other",
author={
"[[mw:User:Otheus|Otheus Shelling]]","[http://www.csh.rit.edu/~gicode Rusty Burchfield]","[[mw:User:VibroAxe|James Kinsman]]","Daniel Thomas","Ian Ward Comfort","[[mw:User:MarkAHershberger|Mark A. Hershberger]]","[https://wikitech.wikimedia.org/wiki/User:Enst80 Stefan Engelhardt]",},
url="https://www.mediawiki.org/wiki/Extension:Auth_remoteuser",
descriptionmsg="auth_remoteuser-desc",
["license-name"]="GPL-2.0-or-later",
SessionProviders={
Auth_remoteuser={
class="MediaWiki\\Extension\\Auth_remoteuser\\AuthRemoteuserSessionProvider",
},
},
repository="https://github.com/wikimedia/mediawiki-extensions-Auth_remoteuser",
composer="mediawiki/auth-remoteuser",
},
AuthorProtect={
name="AuthorProtect",
version="1.4.0",
author={
"[https://www.mediawiki.org/wiki/User:Skizzerz Ryan Schmidt]",},
url="https://www.mediawiki.org/wiki/Extension:AuthorProtect",
descriptionmsg="authorprotect-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
["SkinTemplateNavigation::Universal"]="AuthorProtect::makeContentAction",
UserGetRights="AuthorProtect::assignAuthor",
},
Actions={
authorprotect="AuthorProtectAction",
},
config={
RestrictionLevels={
value={
"author",},
merge_strategy="array_merge",
},
},
AvailableRights={
"author","authorprotect",},
GroupPermissions={
sysop={
author=true,
},
user={
authorprotect=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AuthorProtect",
},
AutoCategoriseUploads={
name="AutoCategoriseUploads",
version="2.0.1",
author={
"Ryan Schmidt",},
url="https://www.mediawiki.org/wiki/Extension:AutoCategoriseUploads",
namemsg="autocatuploads",
descriptionmsg="autocatuploads-desc",
["license-name"]="GPL-3.0-or-later",
type="variable",
ExtensionMessagesFiles={
ACUMagic="AutoCategoriseUploads.i18n.magic.php",
},
Hooks={
MagicWordwgVariableIDs="AutoCatUploads\\Hooks::onMagicWordwgVariableIDs",
ParserGetVariableValueSwitch="AutoCatUploads\\Hooks::onParserGetVariableValueSwitch",
["UploadForm:getInitialPageText"]="AutoCatUploads\\Hooks::onGetInitialPageText",
},
requires={
MediaWiki="&gt;= 1.31.0",
platform={
["ext-SimpleXML"]="*",
["ext-zlib"]="*",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AutoCategoriseUploads",
},
Auto_Create_Category_Pages={
name="AutoCreateCategoryPages",
version="1.0.3",
["license-name"]="GPL-3.0-only",
author={
"Merrick Schaefer","Mark Johnston","Evan Wheeler","Adam Mckaig (UNICEF)","Dror S. [FFS] ([http://www.kolzchut.org.il Kol-Zchut])",},
url="https://www.mediawiki.org/wiki/Extension:Auto_Create_Category_Pages",
descriptionmsg="autocreatecategorypages-desc",
type="other",
requires={
MediaWiki="&gt;= 1.25.0",
},
callback="AutoCreateCategoryPages::registerExtension",
Hooks={
UserGetReservedNames="AutoCreateCategoryPages::onUserGetReservedNames",
},
config={
AutoCreateCategoryStub=nil,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AutoCreateCategoryPages",
},
AutoGallery={
name="AutoGallery",
["license-name"]="AGPL-3.0-or-later",
author={
"Kunal Mehta",},
descriptionmsg="autogallery-desc",
url="https://www.mediawiki.org/wiki/Extension:AutoGallery",
version="2.0",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
GalleryGetModes="AutoGallery\\Hooks::onGalleryGetModes",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AutoGallery",
},
AutoModerator={
name="AutoModerator",
author={
"Jason Sherman","Susana Cardenas Molinar",},
url="https://www.mediawiki.org/wiki/Extension:AutoModerator",
descriptionmsg="automoderator-desc",
["license-name"]="GPL-2.0-or-later",
type="antispam",
requires={
MediaWiki="&gt;= 1.41",
},
ServiceWiringFiles={
"src/ServiceWiring.php",},
ConfigRegistry={
AutoModerator="GlobalVarConfig::newInstance",
},
config={
AutoModeratorEnableRevisionCheck={
description="Enable AutoModerator automatic revision checks.",
value=false,
},
AutoModeratorRevertProbability={
description="Revert risk probability threshold; Edits scored above this value will be reverted",
value=0.99,
},
AutoModeratorUsername={
description="Username for AutoModerator system account",
value="AutoModerator",
},
AutoModeratorUndoSummary={
description="Edit summary for AutoModerator reverts",
value="Undo revision [[Special:Diff/$1|$1]] by [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]])",
},
AutoModeratorUndoSummaryAnon={
description="Edit summary for AutoModerator reverts of anonymous editors",
value="Undo revision [[Special:Diff/$1|$1]] by [[Special:Contributions/$2|$2]]",
},
AutoModeratorWikiId={
description="language code of project used to target liftwing lang parameter",
value=nil,
},
AutoModeratorEnableWikiConfig={
description="If set to false, on-wiki configuration will be ignored.",
value=true,
},
AutoModeratorLiftWingBaseUrl={
description="The base URL of the LiftWing service. We set it by default to use the API Gateway endpoint which is publicly accessible and is modified by mediawiki deployments that run within the production WMF cluster and have access to the internal endpoint.",
value="https://api.wikimedia.org/service/lw/inference/v1/models/",
},
AutoModeratorLiftWingAddHostHeader={
description="Whether to add the Host header to the LiftWing request. This is required for Lift Wing requests made using the internal endpoint within the WMF infrastructure.",
value=false,
},
AutoModeratorLiftWingRevertRiskHostHeader={
value="revertrisk-language-agnostic.revertrisk.wikimedia.org",
description="Hostname to use with header for requests to RevertRisk endpoint.",
},
AutoModeratorFalsePositivePageTitle={
description="The page title of the false positive reporting page.",
value=nil,
},
AutoModeratorSkipUserGroups={
description="An array of trusted user groups whose revisions will not be checked by AutoModerator.",
value={
"bot","sysop",},
},
AutoModeratorUseEditFlagMinor={
description="Enables the minor edit flag for AutoModerator to use when making its edits.",
value=false,
},
AutoModeratorRevertTalkPageMessageEnabled={
value=false,
description="Enable or disable sending talk page messages informing the user that an edit has been reverted.",
},
},
HookHandlers={
config={
class="AutoModerator\\Config\\ConfigHooks",
services={
"AutoModeratorConfigValidatorFactory","AutoModeratorWikiPageConfigLoader","TitleFactory","MainConfig",},
},
main={
class="AutoModerator\\Hooks",
services={
"AutoModeratorWikiConfigLoader","UserGroupManager","MainConfig","WikiPageFactory","RevisionStore","ContentHandlerFactory","RestrictionStore","JobQueueGroup","TitleFactory","RevisionStore",},
},
revisionfromedit={
class="AutoModerator\\Hooks\\RevisionFromEditCompleteHookHandler",
services={
"AutoModeratorWikiConfigLoader","UserGroupManager","MainConfig","WikiPageFactory","RevisionStore","ContentHandlerFactory","RestrictionStore","JobQueueGroup","TitleFactory","RevisionStore",},
},
},
Hooks={
EditFilterMergedContent="config",
JsonValidateSave="config",
PageSaveComplete="config",
RevisionFromEditComplete="main",
},
JobClasses={
AutoModeratorFetchRevScoreJob="AutoModerator\\Services\\AutoModeratorFetchRevScoreJob",
AutoModeratorSendRevertTalkPageMsgJob="AutoModerator\\Services\\AutoModeratorSendRevertTalkPageMsgJob",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/AutoModerator",
},
Babel={
name="Babel",
author={
"Robert Leverington","Thiemo Kreuz","Legoktm","Nikerabbit","Amir Aharoni","Ricordisamoa",},
url="https://www.mediawiki.org/wiki/Extension:Babel",
descriptionmsg="babel-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.41.0",
},
ExtensionMessagesFiles={
BabelMagic="Babel.i18n.magic.php",
},
APIMetaModules={
babel={
class="MediaWiki\\Babel\\ApiQueryBabel",
services={
"UserIdentityLookup",},
},
},
Hooks={
ParserFirstCallInit="main",
LinksUpdate="main",
LoadExtensionSchemaUpdates="schema",
UserGetReservedNames="main",
},
HookHandlers={
main={
class="MediaWiki\\Babel\\Hooks",
},
schema={
class="MediaWiki\\Babel\\SchemaHooks",
},
},
config={
BabelCategorizeNamespaces={
value=nil,
},
BabelCategoryNames={
value={
[1]="%code%-0",
[2]="%code%-1",
[3]="%code%-2",
[4]="%code%-3",
[5]="%code%-4",
[6]="%code%-5",
N="%code%-N",
},
merge_strategy="array_plus",
},
BabelMainCategory={
value="%code%",
},
BabelDefaultLevel={
value="N",
},
BabelUseUserLanguage={
value=false,
},
BabelCentralDb={
value=false,
},
BabelAllowOverride={
value=true,
},
BabelAutoCreate={
value=true,
},
},
TrackingCategories={
"babel-template-params-category",},
composer="mediawiki/babel",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Babel",
},
BatchUserRights={
name="BatchUserRights",
version="1.2.0",
author="[http://www.seancolombo.com Sean Colombo]",
url="https://www.mediawiki.org/wiki/Extension:BatchUserRights",
descriptionmsg="batchuserrights-desc",
["license-name"]="GPL-3.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.37.0",
},
AvailableRights={
"batchuserrights",},
GroupPermissions={
bureaucrat={
batchuserrights=true,
},
},
SpecialPages={
BatchUserRights={
class="SpecialBatchUserRights",
services={
"UserGroupManager",},
},
},
ExtensionMessagesFiles={
BatchUserRightsAliases="BatchUserRights.alias.php",
},
config={
BatchUserRightsGrantableGroups={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BatchUserRights",
},
BetaFeatures={
name="BetaFeatures",
version="0.1",
author={
"MarkTraceur (Mark Holmquist)",},
url="https://www.mediawiki.org/wiki/Extension:BetaFeatures",
descriptionmsg="betafeatures-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
},
config={
BetaFeaturesAllowList={
value=nil,
},
BetaFeatures={
value={
},
},
},
ExtensionMessagesFiles={
BetaFeaturesAlias="BetaFeatures.alias.php",
},
APIListModules={
betafeatures={
class="MediaWiki\\Extension\\BetaFeatures\\ApiQueryBetaFeatures",
services={
"DBLoadBalancerFactory","HookContainer",},
},
},
Hooks={
SaveUserOptions="main",
GetPreferences="main",
UserGetDefaultOptions="main",
["SkinTemplateNavigation::Universal"]="main",
LoadExtensionSchemaUpdates="schema",
MakeGlobalVariablesScript="main",
PreferencesGetIcon="main",
ExtensionTypes="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\BetaFeatures\\Hooks",
services={
"MainConfig","DBLoadBalancerFactory","HookContainer","JobQueueGroupFactory","SkinFactory","UserFactory","UserIdentityUtils","UserOptionsManager",},
},
schema={
class="MediaWiki\\Extension\\BetaFeatures\\SchemaHooks",
},
},
JobClasses={
updateBetaFeaturesUserCounts={
class="MediaWiki\\Extension\\BetaFeatures\\UpdateBetaFeatureUserCountsJob",
services={
"DBLoadBalancerFactory",},
needsPage=false,
},
},
SpecialPages={
BetaFeatures="MediaWiki\\Extension\\BetaFeatures\\SpecialBetaFeatures",
},
DefaultUserOptions={
["betafeatures-auto-enroll"]=false,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BetaFeatures",
},
BibManager={
name="BibManager",
version="1.23.0",
author={
"Hornemann Institut","Hallo Welt! Medienwerkstatt GmbH","Tobias Weichart","Robert Vogel","Daniel Riedmüller (Hallo Welt!)",},
url="https://www.mediawiki.org/wiki/Extension:BibManager",
descriptionmsg="bibmanager-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.40.0",
},
AvailableRights={
"bibmanageredit","bibmanagerdelete","bibmanagercreate",},
GroupPermissions={
sysop={
bibmanageredit=true,
bibmanagerdelete=true,
bibmanagercreate=true,
},
},
SpecialPages={
BibManagerList="SpecialBibManagerList",
BibManagerListAuthors="SpecialBibManagerListAuthors",
BibManagerImport="SpecialBibManagerImport",
BibManagerExport="SpecialBibManagerExport",
BibManagerDelete="SpecialBibManagerDelete",
BibManagerCreate="SpecialBibManagerCreate",
BibManagerEdit="SpecialBibManagerEdit",
},
ExtensionMessagesFiles={
BibManagerAlias="BibManager.alias.php",
},
Hooks={
ParserFirstCallInit="BibManagerHooks::onParserFirstCallInit",
BeforePageDisplay="BibManagerHooks::onBeforePageDisplay",
LoadExtensionSchemaUpdates="BibManagerHooks::onLoadExtensionSchemaUpdates",
},
config={
BibManagerRepoClass={
value="BibManagerLocalMWDatabaseRepo",
},
BibManagerCitationFormats={
value={
article="%author% (%year%): %title%. &lt;em&gt;%journal%&lt;/em&gt;, %volume%, %pages%",
book="%author% (%year%): %title%. (%edition%). &lt;em&gt;%publisher%&lt;/em&gt;, %address%, %pages%",
booklet="%title%",
conference="%author% (%year%): %title%. %booktitle%",
inbook="%author% (%year%): %title%. (%edition%). &lt;em&gt;%publisher%&lt;/em&gt;, %address%, %pages%, %editor%, %chapter%",
incollection="%author% (%year%): %title%.  %booktitle%",
inproceedings="%author% (%year%): %title%. &lt;em&gt;%publisher%&lt;/em&gt;, %booktitle%",
manual="%title%",
mastersthesis="%author% (%year%): %title%. %school%",
misc="%author%: %title%, %year%",
phdthesis="%author% (%year%): %title%. %school%",
proceedings="%title% (%year%)",
techreport="%author% (%year%): %title%. %institution%.",
unpublished="%author%: %title%. %note%.",
},
},
BibManagerCitationArticleNamespace={
value=0,
},
BibManagerScholarLink={
value="http://scholar.google.com/scholar?q=%title%",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BibManager",
},
BiblioPlus={
name="BiblioPlus",
version="1.3.0",
author={
"Karen Eddy","...",},
url="https://www.mediawiki.org/wiki/Extension:BiblioPlus",
descriptionmsg="biblioplus-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
BeforePageDisplay="BiblioPlusHooks::onBeforePageDisplay",
ParserFirstCallInit="BiblioPlusHooks::biblioPlusSetup",
},
config={
BiblioPlusForce={
value=true,
},
BiblioPlusVersion={
value="1.3.0",
},
},
callback="BiblioPlusHooks::onRegistration",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BiblioPlus",
},
BlockInactive={
name="BlockInactive",
author="WikiWorks team",
url="https://www.mediawiki.org/wiki/Extension:BlockInactive",
descriptionmsg="blockinactive-desc",
["license-name"]="GPL-2.0-or-later",
type="extension",
requires={
MediaWiki="&gt;= 1.43.0",
},
Hooks={
UserLoginComplete="MediaWiki\\Extension\\BlockInactive\\BlockInactiveHooks::onUserLoginComplete",
LoadExtensionSchemaUpdates="MediaWiki\\Extension\\BlockInactive\\BlockInactiveHooks::onLoadExtensionSchemaUpdates",
},
SpecialPages={
BlockInactive="MediaWiki\\Extension\\BlockInactive\\SpecialBlockInactive",
},
ExtensionMessagesFiles={
BlockInactiveAlias="includes/BlockInactive.alias.php",
},
AvailableRights={
"blockinactive","alwaysactive",},
GroupPermissions={
sysop={
blockinactive=true,
alwaysactive=true,
},
bureaucrat={
blockinactive=true,
},
},
config={
BlockInactiveThreshold={
value=210,
},
BlockInactiveDaysBlock={
value=270,
},
BlockInactiveWarningDaysLeft={
value={
30,5,},
merge_strategy="array_replace_recursive",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlockInactive",
},
BlogPage={
name="BlogPage",
version="2.9.0",
author={
"David Pean","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:BlogPage",
descriptionmsg="blogpage-desc",
requires={
MediaWiki="&gt;= 1.35.3",
},
type="other",
namespaces={
{
id=500,
constant="NS_BLOG",
name="Blog",
protection="edit",
},{
id=501,
constant="NS_BLOG_TALK",
name="Blog_talk",
},},
config={
BlogPageDisplay={
leftcolumn=true,
rightcolumn=true,
author=true,
author_articles=true,
recent_editors=true,
recent_voters=true,
popular_articles=true,
in_the_news=true,
comments_of_day=false,
games=true,
new_articles=true,
},
UserProfileDisplay={
articles=true,
},
},
AvailableRights={
"createblogpost",},
ExtensionMessagesFiles={
BlogPageAlias="includes/BlogPage.alias.php",
BlogPageNamespaces="includes/BlogPage.namespaces.php",
},
GroupPermissions={
["*"]={
createblogpost=false,
},
user={
createblogpost=true,
},
},
Hooks={
ArticleFromTitle="BlogPageHooks::blogFromTitle",
AlternateEdit="BlogPageHooks::allowShowEditBlogPage",
PageSaveComplete="BlogPageHooks::updateCreatedOpinionsCount",
UserProfileRightSideAfterActivity="BlogPageHooks::getArticles",
},
SpecialPages={
ArticlesHome="ArticlesHome",
ArticleLists="ArticleLists",
CreateBlogPost="SpecialCreateBlogPost",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlogPage",
},
BlueSpiceAbout={
name="BlueSpiceAbout",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceAbout",
author={
"Markus Glaser","Peter Böhm","Leonid Verhovskij",},
descriptionmsg="bs-bluespiceabout-desc",
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceAbout={
className="\\BlueSpice\\About\\Extension",
extPath="/BlueSpiceAbout",
},
},
AdminToolRegistry={
["bs-bluespiceabout"]="BlueSpice\\About\\AdminTool",
},
PermissionRegistry={
["bluespiceabout-viewspecialpage"]={
type="global",
roles={
"accountmanager","accountselfcreate","admin","author","bot","commenter","editor","maintenanceadmin","reader","reviewer","structuremanager",},
},
},
},
},
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
SpecialPages={
BlueSpiceAbout="SpecialBlueSpiceAbout",
},
ExtensionMessagesFiles={
BlueSpiceAboutAlias="includes/specials/SpecialBlueSpiceAbout.alias.php",
},
GroupPermissions={
["*"]={
["bluespiceabout-viewspecialpage"]=false,
},
user={
["bluespiceabout-viewspecialpage"]=true,
},
sysop={
["bluespiceabout-viewspecialpage"]=true,
},
},
AvailableRights={
"bluespiceabout-viewspecialpage",},
composer="bluespice/about",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceAbout",
},
BlueSpiceArticleInfo={
name="BlueSpiceArticleInfo",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceArticleInfo",
author={
"Markus Glaser","Stephan Muggli",},
descriptionmsg="bs-articleinfo-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceArticleInfo={
className="\\BlueSpice\\ArticleInfo\\Extension",
extPath="/BlueSpiceArticleInfo",
},
},
ConfigDefinitionRegistry={
ArticleInfoCheckRevisionInterval="\\BlueSpice\\ArticleInfo\\ConfigDefinition\\CheckRevisionInterval::getInstance",
},
},
BlueSpiceArticleInfo={
FlyoutModules={
},
},
},
config_prefix="bsg",
config={
ArticleInfoCheckRevisionInterval={
value=10,
descriptionmsg="bs-articleinfo-pref-CheckRevisionInterval",
public=true,
},
},
Hooks={
BeforePageDisplay="\\BlueSpice\\ArticleInfo\\Hook\\BeforePageDisplay\\AddModules::callback",
BsAdapterAjaxPingResult="\\BlueSpice\\ArticleInfo\\Hook\\BsAdapterAjaxPingResult\\HandleArticleInfo::callback",
},
composer="bluespice/articleinfo",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceArticleInfo",
},
BlueSpiceArticlePreviewCapture={
name="BlueSpiceArticlePreviewCapture",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceArticlePreviewCapture",
author={
"Patric Wirth","Josef Konrad",},
descriptionmsg="bs-articlepreviewcapture-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceArticlePreviewCapture={
className="\\BlueSpice\\ArticlePreviewCapture\\Extension",
extPath="/BlueSpiceArticlePreviewCapture",
status="beta",
package="BlueSpiceSocial",
["@configDefinitions"]={
},
},
},
DynamicFileRegistry={
articlepreviewimage="\\BlueSpice\\ArticlePreviewCapture\\DynamicFileDispatcher\\ArticlePreviewCaptureImage",
},
PhantomJSBackendRegistry={
["native-shell-exec"]="BlueSpice\\ArticlePreviewCapture\\PhantomJS\\NativeShellExec::factory",
["remote-webservice"]="BlueSpice\\ArticlePreviewCapture\\PhantomJS\\RemoteWebService::factory",
["symfony-process"]="BlueSpice\\ArticlePreviewCapture\\PhantomJS\\SymfonyProcess::factory",
["mediawiki-shell-command"]="BlueSpice\\ArticlePreviewCapture\\PhantomJS\\MediaWikiShellCommand::factory",
},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
config_prefix="bsg",
config={
ArticlePreviewCapturePhantomJSExecutable={
value="/usr/local/bin/phantomjs",
},
ArticlePreviewCapturePhantomJSOptions={
value={
"--ignore-ssl-errors","true",},
},
ArticlePreviewCapturePhantomJSBaseUrl={
description="Defaults to $wgServer",
value=nil,
},
ArticlePreviewCapturePhantomJSEscapeShellCommand={
description="If you need to add command line variable before command set this to false",
value=true,
},
ArticlePreviewCapturePhantomJSServiceURL={
value=nil,
},
ArticlePreviewCapturePhantomJSBackend={
value="native-shell-exec",
},
},
Hooks={
MWStakeCommonWebAPIsQueryStoreResult="addUserImage",
},
HookHandlers={
addUserImage={
class="\\BlueSpice\\ArticlePreviewCapture\\Hook\\AddUserImageToUserStore",
services={
"UserFactory","BSRendererFactory",},
},
},
callback="BlueSpice\\ArticlePreviewCapture\\Extension::callback",
composer="bluespice/articlepreviewcapture",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceArticlePreviewCapture",
},
BlueSpiceAuthors={
name="BlueSpiceAuthors",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceAuthors",
author={
"Markus Glaser","Robert Vogel",},
descriptionmsg="bs-authors-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceAuthors={
className="\\BlueSpice\\Authors\\Extension",
extPath="/BlueSpiceAuthors",
},
},
ConfigDefinitionRegistry={
AuthorsShow="\\BlueSpice\\Authors\\ConfigDefinition\\AuthorsShow::getInstance",
},
},
},
ExtensionMessagesFiles={
AuthorsMagic="languages/Authors.i18n.magic.php",
},
APIModules={
["bs-pageauthors-store"]="BlueSpice\\Authors\\Api\\Store\\PageAuthors",
},
config_prefix="bsg",
config={
AuthorsBlacklist={
value={
"MediaWiki default",},
},
AuthorsShow={
value=true,
descriptionmsg="bs-authors-pref-show",
public=true,
},
AuthorsNamespaceBlacklist={
description="Defaults to NS_FILE, NS_FILE_TALK, NS_MEDIAWIKI, NS_MEDIAWIKI_TALK, NS_CATEGORY, NS_CATEGORY_TALK",
value={
6,7,8,9,14,15,},
public=false,
},
},
Hooks={
GetDoubleUnderscoreIDs="\\BlueSpice\\Authors\\Hook\\GetDoubleUnderscoreIDs\\AddNoAuthors::callback",
StandardDialogsRegisterPageInfoPanelModules="standard-dialogs",
},
HookHandlers={
["standard-dialogs"]={
class="\\BlueSpice\\Authors\\HookHandler\\StandardDialogs",
},
},
composer="bluespice/authors",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceAuthors",
},
BlueSpiceAvatars={
name="BlueSpiceAvatars",
["license-name"]="GPL-3.0-only",
version="4.5",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceAvatars",
author={
"Marc Reymann","Patric Wirth",},
descriptionmsg="bs-avatars-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceAvatars={
className="\\BlueSpice\\Avatars\\Extension",
extPath="/BlueSpiceAvatars",
},
},
ConfigDefinitionRegistry={
AvatarsGenerator="\\BlueSpice\\Avatars\\ConfigDefinition\\AvatarsGenerator::getInstance",
},
DynamicFileRegistry={
userprofileimage="\\BlueSpice\\Avatars\\DynamicFileDispatcher\\UserProfileImage",
},
TagRegistry={
profileimage="\\BlueSpice\\Avatars\\Tag\\ProfileImage",
},
},
BlueSpicePrivacy={
Handlers={
"\\BlueSpice\\Avatars\\Privacy\\Handler",},
},
BlueSpiceAvatars={
AvatarGeneratorRegistry={
Identicon="\\BlueSpice\\Avatars\\AvatarGenerator\\Identicon::factory",
InstantAvatar="\\BlueSpice\\Avatars\\AvatarGenerator\\InstantAvatar::factory",
},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
APIModules={
["bs-avatars-tasks"]="BSApiAvatarsTasks",
},
config_prefix="bsg",
config={
AvatarsGenerator={
value="InstantAvatar",
},
},
DefaultUserOptions={
["bs-avatars-profileimage"]="",
},
HookHandlers={
export={
class="\\BlueSpice\\Avatars\\Hook\\BSUEModulePDFFindFiles\\AddProfileImage",
services={
"UrlUtils","UserFactory","UserOptionsLookup","BSAvatarsAvatarGenerator","RepoGroup",},
},
},
Hooks={
BeforePageDisplay="\\BlueSpice\\Avatars\\Hook\\BeforePageDisplay\\AddModules::callback",
GetPreferences="\\BlueSpice\\Avatars\\Hook\\GetPreferences\\AddProfileImage::callback",
PageHistoryLineEnding="\\BlueSpice\\Avatars\\Hook\\PageHistoryLineEnding\\AddProfileImage::callback",
BSMigrateUserPropertiesFromDeviatingNames="\\BlueSpice\\Avatars\\Hook\\BSMigrateUserPropertiesFromDeviatingNames\\MigrateUserImage::callback",
UploadVerifyFile="\\BlueSpice\\Avatars\\Hook\\UploadVerifyFile\\PreventUserImageOverwrite::callback",
SetupAfterCache="\\BlueSpice\\Avatars\\Hook\\SetupAfterCache\\AddForeignFileRepo::callback",
BSUEModulePDFFindFiles={
"export",},
},
composer="bluespice/avatars",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceAvatars",
},
BlueSpiceBookshelf={
name="BlueSpiceBookshelf",
version="4.5",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceBookshelf",
author={
"Robert Vogel","Sebastian Ulbricht",},
descriptionmsg="bs-bookshelf-extension-description",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
MenuEditor="&gt;= 2.0.0",
VueJsPlus="&gt;=1.0.0",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceBookshelf={
className="\\BlueSpice\\Bookshelf\\Extension",
extPath="/BlueSpiceBookshelf",
package="BlueSpice Pro",
status="stable",
},
},
ConfigDefinitionRegistry={
BookShelfShowChapterNavigationPagerAfterContent="\\BlueSpice\\Bookshelf\\ConfigDefinition\\ChapterPagerAfterContent::getInstance",
BookShelfShowChapterNavigationPagerBeforeContent="\\BlueSpice\\Bookshelf\\ConfigDefinition\\ChapterPagerBeforeContent::getInstance",
BookshelfSupressBookNS="\\BlueSpice\\Bookshelf\\ConfigDefinition\\SupressBookNS::getInstance",
BookshelfTitleDisplayText="\\BlueSpice\\Bookshelf\\ConfigDefinition\\TitleDisplayText::getInstance",
BookshelfPrependPageTOCNumbers="\\BlueSpice\\Bookshelf\\ConfigDefinition\\PrependPageTOCNumbers::getInstance",
BookshelfMainLinksBookshelf="\\BlueSpice\\Bookshelf\\ConfigDefinition\\MainLinksBookshelf::getInstance",
},
SettingPathRegistry={
book="bs-bookshelf-setting-path-feature",
},
TagRegistry={
bookmeta="\\BlueSpice\\Bookshelf\\Tag\\BookshelfMeta",
bookshelf="\\BlueSpice\\Bookshelf\\Tag\\Bookshelf",
booklist="\\BlueSpice\\Bookshelf\\Tag\\BookList",
booknav="\\BlueSpice\\Bookshelf\\Tag\\BookNav",
searchinbook="BlueSpice\\Bookshelf\\Tag\\SearchInBook",
},
DynamicFileRegistry={
bookshelfimage="\\BlueSpice\\Bookshelf\\DynamicFileDispatcher\\BookshelfImage",
},
LessVarsRegistry={
["bs-bookshelf-navtab-icon-active"]="@bs-color-tertiary",
["bs-extjs-bui-panel-header-background"]="transparent",
["bs-extjs-bui-panel-header-text"]="#000000",
["bs-extjs-bui-panel-header-horizontal-border"]="0px solid #3e538a",
["bs-extjs-bui-panel-header-horizontal-background"]="#FFFFFF",
["bs-extjs-bui-panel-header-vertical-border"]="1px solid #3e538a",
["bs-extjs-bui-panel-header-vertical-background"]="#FFFFFF",
["bs-extjs-bui-panel-default-border"]="1px solid #3e538a",
["bs-extjs-bui-grid-header-ct-border"]="1px solid silver",
["bs-extjs-bui-tool-img-image"]="url( 'images/globalnav-sprite.png' )",
["bs-extjs-bui-tool-img-background"]="transparent",
},
PermissionRegistry={
["bookshelfbookmanager-viewspecialpage"]={
type="global",
roles={
"reader",},
},
["bookshelf-viewspecialpage"]={
type="global",
roles={
"reader",},
},
},
},
BlueSpiceBookshelf={
LineProcessors={
["plain-text"]="\\BlueSpice\\Bookshelf\\LineProcessor\\PlainText::factory",
tag="\\BlueSpice\\Bookshelf\\LineProcessor\\Tag::factory",
["wikitext-link"]="\\BlueSpice\\Bookshelf\\LineProcessor\\WikiTextLink::factory",
},
MassAddHandlerRegistry={
subpages="BlueSpice\\Bookshelf\\MassAdd\\Handler\\Subpage::factory",
category="BlueSpice\\Bookshelf\\MassAdd\\Handler\\Category::factory",
pagecollection="BlueSpice\\Bookshelf\\MassAdd\\Handler\\PageCollection::factory",
},
MetaData={
title={
class="BlueSpice\\Bookshelf\\MetaData\\BookTitle",
},
author1={
class="BlueSpice\\Bookshelf\\MetaData\\Author1",
},
author2={
class="BlueSpice\\Bookshelf\\MetaData\\Author2",
},
bookshelf={
class="BlueSpice\\Bookshelf\\MetaData\\Bookshelf",
},
department={
class="BlueSpice\\Bookshelf\\MetaData\\Department",
},
identifier={
class="BlueSpice\\Bookshelf\\MetaData\\Identifier",
},
bookshelfimage={
class="BlueSpice\\Bookshelf\\MetaData\\Image",
},
subtitle={
class="BlueSpice\\Bookshelf\\MetaData\\Subtitle",
},
docummenttype={
class="BlueSpice\\Bookshelf\\MetaData\\Type",
},
version={
class="BlueSpice\\Bookshelf\\MetaData\\Version",
},
},
CreateNewBookModules={
},
BookViewTools={
},
},
BlueSpiceVisualEditorConnector={
TagDefinitions={
"ext.bluespice.booklist.visualEditorTagDefinition","ext.bluespice.bookmeta.visualEditorTagDefinition","ext.bluespice.bookshelf.visualEditorTagDefinition","ext.bluespice.booknav.visualEditorTagDefinition","ext.bluespice.searchinbook.visualEditorTagDefinition",},
},
ContentDroplets={
Droplets={
booklist={
class="\\BlueSpice\\Bookshelf\\ContentDroplets\\BooklistDroplet",
},
booknav={
class="\\BlueSpice\\Bookshelf\\ContentDroplets\\BookNavDroplet",
},
bookpdf={
class="\\BlueSpice\\Bookshelf\\ContentDroplets\\BookPDFDroplet",
},
search_in_book={
class="BlueSpice\\Bookshelf\\ContentDroplets\\SearchInBook",
},
},
},
MWStakeContentProvisioner={
ContentManifests={
DefaultContentProvisioner={
"extensions/BlueSpiceBookshelf/data/Content/ContentDropletsTemplates/manifest.json",},
},
},
BlueSpiceExtendedSearch={
PluginRegistry={
books={
class="BlueSpice\\Bookshelf\\ExtendedSearch\\Books",
services={
"TitleFactory","LinkRenderer","BSBookshelfBookLookup",},
},
},
},
MenuEditor={
Menus={
bookeditor={
class="BlueSpice\\Bookshelf\\MenuEditor\\BookEditor",
services={
"MWStakeWikitextParserFactory","TitleFactory",},
},
},
Nodes={
["bs-bookshelf-chapter-wikilink-with-alias"]={
classname="ext.bookshelf.ui.data.node.WikiLinkWithAliasNode",
module="bluespice.bookshelf.menuEditor.node",
},
["bs-bookshelf-chapter-plain-text"]={
classname="ext.bookshelf.ui.data.node.PlainTextNode",
module="bluespice.bookshelf.menuEditor.node",
},
},
ToolbarTools={
metadata={
classname="ext.bookshelf.ui.tools.MetadataTool",
group={
name="new",
},
module="ext.bookshelf.menuEditor.tools",
},
massAdd={
classname="ext.bookshelf.ui.tools.MassAddTool",
group={
name="new",
},
module="ext.bookshelf.menuEditor.tools",
},
},
},
Notifications={
ManualSubscriberProviderSets={
book={
class="BlueSpice\\Bookshelf\\Notifications\\SubscriptionSet\\Book",
services={
"BSBookshelfBookLookup","TitleFactory",},
},
},
},
},
GroupPermissions={
["*"]={
["bookshelfbookmanager-viewspecialpage"]=true,
["bookshelf-viewspecialpage"]=true,
},
},
AvailableRights={
"bookshelfbookmanager-viewspecialpage","bookshelf-viewspecialpage",},
callback="BlueSpice\\Bookshelf\\Extension::onRegistration",
APIModules={
["bs-bookshelf-store"]="ApiBookshelfStore",
["bs-bookshelf-bookstore"]="ApiBookshelfBookStore",
["bs-bookshelf-manage"]="ApiBookshelfManage",
["bs-bookshelf-page-collection-store"]="ApiBookshelfPageCollectionStore",
["bs-bookshelf-mass-add-page-store"]="ApiBookshelfMassAddPageStore",
["bs-book-chapters-store"]="BlueSpice\\Bookshelf\\Api\\Store\\ApiBookChaptersStore",
["bs-books-overview-store"]="BlueSpice\\Bookshelf\\Api\\Store\\ApiBooksOverviewStore",
},
APIListModules={
bsbookshelf="ApiQueryBookshelf",
},
ExtensionMessagesFiles={
BookshelfNamespaces="languages/Bookshelf.namespaces.php",
BookshelfSpecialAlias="languages/Bookshelf.special.alias.php",
},
namespaces={
{
id=1504,
constant="NS_BOOK",
name="Book",
defaultcontentmodel="book",
},{
id=1505,
constant="NS_BOOK_TALK",
name="Book_talk",
},},
ContentHandlers={
book="\\BlueSpice\\Bookshelf\\ContentHandler\\BookContentHandler",
},
QUnitTestModule={
localBasePath="",
remoteExtPath="BlueSpiceBookshelf",
scripts={
"tests/qunit/BookNodeNumbering.test.js",},
dependencies={
"bluespice.bookshelf.processor.chapternumber",},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
config_prefix="bsg",
config={
BookshelfSupressBookNS={
value=true,
descriptionmsg="bs-bookshelf-pref-SupressBookNS",
public=true,
},
BookshelfTitleDisplayText={
value=true,
descriptionmsg="bs-bookshelf-pref-TitleDisplayText",
public=true,
},
BookshelfPrependPageTOCNumbers={
value=true,
descriptionmsg="bs-bookshelf-pref-PrependPageTOCNumbers",
public=true,
},
BookShelfDefaultCoverImage={
value="resources/images/assets/coverimage/dummy.png",
path=true,
},
BookShelfShowChapterNavigationPagerBeforeContent={
value=false,
},
BookShelfShowChapterNavigationPagerAfterContent={
value=false,
},
BookshelfMainLinksBookshelf={
value=true,
public=true,
descriptionmsg="bs-bookshelf-config-mainlinks-bookshelf-label",
},
BookshelfToolbarOffset={
value=153,
public=true,
},
},
SpecialPages={
BookshelfBookEditor="\\BlueSpice\\Bookshelf\\Special\\BookshelfBookEditor",
Books="\\BlueSpice\\Bookshelf\\Special\\Books",
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\Bookshelf\\HookHandler\\CommonUserInterface",
services={
"ConfigFactory","TitleFactory","BSBookshelfBookContextProviderFactory","BSBookshelfBookLookup","BSBookshelfBookChapterLookup","MWStakeCommonUITreeDataGenerator",},
},
["discovery-skin"]={
class="\\BlueSpice\\Bookshelf\\HookHandler\\DiscoverySkin",
},
addAddToBookEntry={
class="\\BlueSpice\\Bookshelf\\HookHandler\\SkinTemplateNavigation\\AddAddToBookEntry",
},
addEditBook={
class="\\BlueSpice\\Bookshelf\\HookHandler\\SkinTemplateNavigation\\AddEditBook",
},
["heading-numberation"]={
class="\\BlueSpice\\Bookshelf\\HookHandler\\HeadingNumberationHandler",
services={
"ConfigFactory",},
},
["add-chapter-number-to-title-and-headings"]={
class="\\BlueSpice\\Bookshelf\\HookHandler\\AddChapterNumberToTitleAndHeadings",
services={
"ConfigFactory","BSBookshelfBookContextProviderFactory","BSBookshelfBookChapterLookup",},
},
["book-source-actions"]={
class="\\BlueSpice\\Bookshelf\\HookHandler\\BookActions",
services={
"TitleFactory","MWStakeWikitextParserFactory","DBLoadBalancer","BSBookshelfBookLookup","UserFactory",},
},
["book-content-default-mode"]={
class="\\BlueSpice\\Bookshelf\\HookHandler\\SetBookContentHandler",
},
addNewBook={
class="\\BlueSpice\\Bookshelf\\HookHandler\\SkinTemplateNavigation\\AddNewBook",
services={
"PermissionManager","TitleFactory",},
},
["ue-module-pdf"]={
class="\\BlueSpice\\Bookshelf\\HookHandler\\UEModulePDF",
services={
"BSBookshelfBookContextProviderFactory","BSBookshelfBookLookup","BSBookshelfBookChapterLookup","TitleFactory","ConfigFactory","MainConfig","RepoGroup","HookContainer",},
},
migrateBooks={
class="\\BlueSpice\\Bookshelf\\Hook\\LoadExtensionSchemaUpdates\\MigrateBooks",
},
updateChapter={
class="\\BlueSpice\\Bookshelf\\HookHandler\\ChapterMove",
services={
"TitleFactory","DBLoadBalancer",},
},
},
Hooks={
BeforePageDisplay={
"\\BlueSpice\\Bookshelf\\Hook\\BeforePageDisplay\\AddResources::callback","add-chapter-number-to-title-and-headings",},
ContentHandlerDefaultModelFor="book-content-default-mode",
MediaWikiServices="book-content-default-mode",
LoadExtensionSchemaUpdates={
"BlueSpice\\Bookshelf\\Hook\\LoadExtensionSchemaUpdates\\AddConvertContentModel::callback","BlueSpice\\Bookshelf\\Hook\\LoadExtensionSchemaUpdates\\AddBooksTable::callback","BlueSpice\\Bookshelf\\Hook\\LoadExtensionSchemaUpdates\\AddBookChaptersTable::callback","BlueSpice\\Bookshelf\\Hook\\LoadExtensionSchemaUpdates\\AddBookMetaTable::callback","migrateBooks",},
BSUEModulePDFgetPage="ue-module-pdf",
BSUEModulePDFcollectMetaData="ue-module-pdf",
BSUEModulePDFAfterFindFiles="ue-module-pdf",
BSBookshelfGetBookData="\\BlueSpice\\Bookshelf\\Hook\\BSBookshelfGetBookData\\RunLegacyHook::callback",
GetPreferences="\\BlueSpice\\Bookshelf\\Hook\\GetPreferences\\BookshelfDefaultView::callback",
["SkinTemplateNavigation::Universal"]={
"addAddToBookEntry","addEditBook","addNewBook",},
BlueSpiceDiscoveryTemplateDataProviderAfterInit="discovery-skin",
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
OutputPageBeforeHTML="add-chapter-number-to-title-and-headings",
MultiContentSave="book-source-actions",
PageDeleteComplete="book-source-actions",
PageMoveComplete={
"book-source-actions","updateChapter",},
NumberHeadingsBeforeApply="add-chapter-number-to-title-and-headings",
},
Actions={
editbooksource="\\BlueSpice\\Bookshelf\\Action\\BookEditSourceAction",
},
DefaultUserOptions={
["bs-bookshelf-defaultview"]="gridviewpanel",
},
RestRoutes={
{
method="GET",
path="/bookshelf/metadata/{booktitle}",
class="\\BlueSpice\\Bookshelf\\Rest\\GetBookMetadata",
services={
"TitleFactory","BSBookshelfBookMetaLookup",},
},{
method="POST",
path="/bookshelf/metadata/{booktitle}",
class="\\BlueSpice\\Bookshelf\\Rest\\PostBookMetadata",
services={
"TitleFactory","WikiPageFactory","BSBookshelfBookLookup","BSBookshelfBookMetaLookup",},
},},
composer="bluespice/bookshelf",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceBookshelf",
},
BlueSpiceCategoryCheck={
name="BlueSpiceCategoryCheck",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceCategoryCheck",
author={
"Tobias Weichart","Robert Vogel",},
descriptionmsg="bs-categorycheck-extension-description",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceCategoryCheck={
className="BlueSpice\\CategoryCheck\\Extension",
extPath="/BlueSpiceCategoryCheck",
},
},
},
BlueSpiceVisualEditorConnector={
PluginModules={
"ext.bluespice.categoryCheck.visualEditorPlugin",},
},
},
config_prefix="bsg",
config={
CategoryCheckNamespaces={
value={
},
},
},
Hooks={
BeforePageDisplay="BlueSpice\\CategoryCheck\\Hook\\BeforePageDisplay\\AddModules::callback",
["NamespaceManager::getMetaFields"]="BlueSpice\\CategoryCheck\\Hook\\NamespaceManagerGetMetaFields\\RegisterMetaField::callback",
BSApiNamespaceStoreMakeData="BlueSpice\\CategoryCheck\\Hook\\BSApiNamespaceStoreMakeData\\AddData::callback",
["NamespaceManager::editNamespace"]="BlueSpice\\CategoryCheck\\Hook\\NamespaceManagerEditNamespace\\SetCategoryCheckValue::callback",
NamespaceManagerBeforePersistSettings="writeNamespaceConfiguration",
BSUsageTrackerRegisterCollectors="\\BlueSpice\\CategoryCheck\\Hook\\BSUsageTrackerRegisterCollectors\\CategoryCheckEnabled::callback",
},
HookHandlers={
writeNamespaceConfiguration={
class="\\BlueSpice\\CategoryCheck\\Hook\\WriteNamespaceConfiguration",
},
},
composer="bluespice/categorycheck",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceCategoryCheck",
},
BlueSpiceCategoryManager={
name="BlueSpiceCategoryManager",
author={
"Leonid Verhovskij","Dejan Savuljesku",},
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceCategoryManager",
descriptionmsg="bluespicecategorymanager-desc",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceCategoryManager={
className="\\BlueSpice\\CategoryManager\\Extension",
extPath="/BlueSpiceCategoryManager",
},
},
PermissionRegistry={
["categorymanager-viewspecialpage"]={
type="global",
roles={
"admin","editor","maintenanceadmin","structuremanager",},
},
},
AdminToolRegistry={
["bs-category-manager"]="BlueSpice\\CategoryManager\\AdminTool",
},
},
BlueSpiceExtendedStatistics={
SnapshotProviders={
["cm-categories"]={
class="\\BlueSpice\\CategoryManager\\Statistics\\SnapshotProvider\\Categories",
services={
"DBLoadBalancer",},
},
},
Reports={
["cm-categorypages"]={
class="\\BlueSpice\\CategoryManager\\Statistics\\Report\\CategoryPages",
},
},
},
},
GroupPermissions={
["*"]={
["categorymanager-viewspecialpage"]=false,
},
user={
["categorymanager-viewspecialpage"]=false,
},
sysop={
["categorymanager-viewspecialpage"]=true,
},
},
AvailableRights={
"categorymanager-viewspecialpage",},
SpecialPages={
BlueSpiceCategoryManager="SpecialBlueSpiceCategoryManager",
},
ExtensionMessagesFiles={
BlueSpiceCategoryManagerAlias="includes/specials/SpecialBlueSpiceCategoryManager.alias.php",
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\CategoryManager\\HookHandler\\CommonUserInterface",
},
},
Hooks={
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
},
composer="bluespice/categorymanager",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceCategoryManager",
},
BlueSpiceChecklist={
name="BlueSpiceChecklist",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceChecklist",
author="Markus Glaser",
descriptionmsg="bs-checklist-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceChecklist={
className="\\BlueSpice\\Checklist\\Extension",
extPath="/BlueSpiceChecklist",
},
},
ConfigDefinitionRegistry={
ChecklistMarkAsMinorEdit="\\BlueSpice\\Checklist\\ConfigDefinition\\MarkAsMinorEdit::getInstance",
},
PermissionRegistry={
checklistmodify={
type="namespace",
roles={
"author","bot","editor","maintenanceadmin",},
},
},
},
BlueSpiceVisualEditorConnector={
TagDefinitions={
"ext.bluespice.checklist.visualEditor","ext.bluespice.checkbox.visualEditor",},
},
BlueSpiceSMWConnector={
ExtraPropertyRegistry={
checklistfields="\\BlueSpice\\Checklist\\ChecklistPropertyValueProvider::factory",
},
},
ContentDroplets={
Droplets={
checklist={
class="\\BlueSpice\\Checklist\\ContentDroplets\\ChecklistDroplet",
},
},
},
},
GroupPermissions={
["*"]={
checklistmodify=false,
},
user={
checklistmodify=true,
},
sysop={
checklistmodify=true,
},
},
AvailableRights={
"checklistmodify",},
LogTypes={
"bs-checklist",},
FilterLogTypes={
["bs-checklist"]=true,
},
LogActionsHandlers={
["bs-checklist/*"]="LogFormatter",
},
APIModules={
["bs-checklist-available-options-store"]="BSApiChecklistAvailableOptionsStore",
["bs-checklist-template-store"]="BSApiChecklistTemplateStore",
["bs-checklist-tasks"]="BSApiChecklistTasks",
},
Hooks={
ParserFirstCallInit="\\BlueSpice\\Checklist\\Extension::onParserFirstCallInit",
BSUsageTrackerRegisterCollectors="\\BlueSpice\\Checklist\\Hook\\BSUsageTrackerRegisterCollectors\\AddChecklistTag::callback",
ListDefinedTags="\\BlueSpice\\Checklist\\Hook\\ListDefinedTags\\AddChecklistTag::callback",
ChangeTagsListActive="\\BlueSpice\\Checklist\\Hook\\ChangeTagsListActive\\AddChecklistTag::callback",
},
config_prefix="bsg",
config={
ChecklistMarkAsMinorEdit={
value=true,
descriptionmsg="bs-checklist-config-markasminoredit",
public=true,
},
},
composer="bluespice/checklist",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceChecklist",
},
BlueSpiceConfigManager={
name="BlueSpiceConfigManager",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceConfigManager",
author={
"Patric Wirth",},
descriptionmsg="bs-configmanager-desc",
["license-name"]="GPL-3.0-only",
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceConfigManager={
className="\\BlueSpice\\ConfigManager\\Extension",
extPath="/BlueSpiceConfigManager",
},
},
AdminToolRegistry={
["bs-config-manager"]="BlueSpice\\ConfigManager\\AdminTool",
},
PermissionRegistry={
["bluespiceconfigmanager-viewspecialpage"]={
type="global",
roles={
"admin","maintenanceadmin","structuremanager",},
},
},
},
},
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
ExtensionMessagesFiles={
BlueSpiceConfigManagerAlias="languages/ConfigManager.alias.php",
},
APIModules={
["bs-configmanager-tasks"]="\\BlueSpice\\ConfigManager\\Api\\Task\\ConfigManager",
["bs-configmanager-store"]="\\BlueSpice\\ConfigManager\\Api\\Store\\ConfigManager",
},
SpecialPages={
BlueSpiceConfigManager="\\BlueSpice\\ConfigManager\\Special\\ConfigManager",
},
GroupPermissions={
["*"]={
["bluespiceconfigmanager-viewspecialpage"]=false,
},
user={
["bluespiceconfigmanager-viewspecialpage"]=false,
},
sysop={
["bluespiceconfigmanager-viewspecialpage"]=true,
},
},
AvailableRights={
"bluespiceconfigmanager-viewspecialpage",},
LogTypes={
"bs-config-manager",},
FilterLogTypes={
["bs-config-manager"]=true,
},
LogActionsHandlers={
["bs-config-manager/*"]="LogFormatter",
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\ConfigManager\\HookHandler\\CommonUserInterface",
},
},
Hooks={
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
},
config_prefix="bsg",
config={
ConfigManagerLogExcludeList={
value={
"DistributionConnectorEventBusEventServices",},
},
},
composer="bluespice/configmanager",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceConfigManager",
},
BlueSpiceContextMenu={
name="BlueSpiceContextMenu",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceContextMenu",
author={
"Tobias Weichart","Robert Vogel","Peter Boehm",},
descriptionmsg="bs-contextmenu-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceContextMenu={
className="\\BlueSpice\\ContextMenu\\Extension",
extPath="/BlueSpiceContextMenu",
},
},
},
BlueSpiceContextMenu={
ItemFactories={
edit="BlueSpice\\ContextMenu\\MenuItem\\Edit::factory",
delete="BlueSpice\\ContextMenu\\MenuItem\\Delete::factory",
history="BlueSpice\\ContextMenu\\MenuItem\\History::factory",
move="BlueSpice\\ContextMenu\\MenuItem\\Move::factory",
protect="BlueSpice\\ContextMenu\\MenuItem\\Protect::factory",
watch="BlueSpice\\ContextMenu\\MenuItem\\Watch::factory",
purge="BlueSpice\\ContextMenu\\MenuItem\\Purge::factory",
info="BlueSpice\\ContextMenu\\MenuItem\\Info::factory",
whatlinkshere="BlueSpice\\ContextMenu\\MenuItem\\Whatlinkshere::factory",
download="BlueSpice\\ContextMenu\\MenuItem\\Download::factory",
editusertalk="BlueSpice\\ContextMenu\\MenuItem\\EditUserTalk::factory",
mailuser="BlueSpice\\ContextMenu\\MenuItem\\MailUser::factory",
reupload="BlueSpice\\ContextMenu\\MenuItem\\Reupload::factory",
viewmedia="BlueSpice\\ContextMenu\\MenuItem\\ViewMedia::factory",
},
},
},
DefaultUserOptions={
["bs-contextmenu-modus"]="ctrl",
},
Hooks={
GetPreferences="\\BlueSpice\\ContextMenu\\Hook\\GetPreferences\\AddModus::callback",
BeforePageDisplay="\\BlueSpice\\ContextMenu\\Hook\\BeforePageDisplay\\AddModules::callback",
},
APIModules={
["bs-contextmenu-tasks"]="BSApiContextMenuTasks",
},
composer="bluespice/contextmenu",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceContextMenu",
},
BlueSpiceCountThings={
name="BlueSpiceCountThings",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceCountThings",
author={
"Markus Glaser","Mathias Scheer","Peter Boehm",},
descriptionmsg="bs-countthings-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceCountThings={
className="\\BlueSpice\\CountThings\\Extension",
extPath="/BlueSpiceCountThings",
},
},
TagRegistry={
countfiles="BlueSpice\\CountThings\\Tag\\CountFiles",
countarticles="BlueSpice\\CountThings\\Tag\\CountArticles",
countusers="BlueSpice\\CountThings\\Tag\\CountUsers",
countcharacters="BlueSpice\\CountThings\\Tag\\CountCharacters",
},
RendererRegistry={
["countthings-countcharacters"]="BlueSpice\\CountThings\\Renderer\\CountCharacters::factory",
},
},
BlueSpiceVisualEditorConnector={
TagDefinitions={
"ext.bluespice.countthings.visualEditorTagDefinition",},
},
ContentDroplets={
Droplets={
["count-users"]={
class="BlueSpice\\CountThings\\ContentDroplets\\CountUserDroplet",
},
["count-characters"]={
class="BlueSpice\\CountThings\\ContentDroplets\\CountCharactersDroplet",
},
["count-articles"]={
class="BlueSpice\\CountThings\\ContentDroplets\\CountArticlesDroplet",
},
["count-files"]={
class="BlueSpice\\CountThings\\ContentDroplets\\CountFilesDroplet",
},
},
},
},
Hooks={
BSUsageTrackerRegisterCollectors={
"\\BlueSpice\\CountThings\\Hook\\BSUsageTrackerRegisterCollectors\\AddCountArticlesTag::callback","\\BlueSpice\\CountThings\\Hook\\BSUsageTrackerRegisterCollectors\\AddCountCaractersTag::callback","\\BlueSpice\\CountThings\\Hook\\BSUsageTrackerRegisterCollectors\\AddCountFilesTag::callback","\\BlueSpice\\CountThings\\Hook\\BSUsageTrackerRegisterCollectors\\AddCountUsersTag::callback",},
},
composer="bluespice/countthings",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceCountThings",
},
BlueSpiceCustomMenu={
name="BlueSpiceCustomMenu",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceCustomMenu",
["license-name"]="GPL-3.0-only",
author={
"Patric Wirth",},
descriptionmsg="bs-custommenu-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceCustomMenu={
className="\\BlueSpice\\CustomMenu\\Extension",
extPath="/BlueSpiceCustomMenu",
},
},
RendererRegistry={
custommenu="\\BlueSpice\\CustomMenu\\Renderer\\Menu::factory",
custommenuitem="\\BlueSpice\\CustomMenu\\Renderer\\Menu\\Item::factory",
custommenuheader="\\BlueSpice\\CustomMenu\\Renderer\\Menu\\Header::factory",
custommenuheaderitem="\\BlueSpice\\CustomMenu\\Renderer\\Menu\\Header\\Item::factory",
},
},
BlueSpiceCustomMenu={
Registry={
header="\\BlueSpice\\CustomMenu\\CustomMenu\\Header::getInstance",
},
},
MenuEditor={
Menus={
custommenu={
class="BlueSpice\\CustomMenu\\MenuEditor\\Header",
services={
"MWStakeWikitextParserFactory",},
},
},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
config_prefix="bsg",
config={
CustomMenuHeaderNumberOfLevels={
value=2,
},
CustomMenuHeaderNumberOfMainEntries={
value=10,
},
CustomMenuHeaderNumberOfSubEntries={
value=10,
},
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\CustomMenu\\HookHandler\\CommonUserInterface",
},
},
Hooks={
EditFormPreloadText="\\BlueSpice\\CustomMenu\\Hook\\EditFormPreloadText\\PreloadHeaderMenu::callback",
ArticleDeleteComplete="\\BlueSpice\\CustomMenu\\Hook\\ArticleDeleteComplete\\InvalidateHeaderMenu::callback",
PageSaveComplete="\\BlueSpice\\CustomMenu\\Hook\\PageSaveComplete\\InvalidateHeaderMenu::callback",
PageMoveComplete="\\BlueSpice\\CustomMenu\\Hook\\PageMoveComplete\\InvalidateHeaderMenu::callback",
LoadExtensionSchemaUpdates="\\BlueSpice\\CustomMenu\\Hook\\LoadExtensionSchemaUpdates\\AddMigrateTopBarMenu::callback",
BSUsageTrackerRegisterCollectors="\\BlueSpice\\CustomMenu\\Hook\\BSUsageTrackerRegisterCollectors\\NoOfCustomMegaMenus::callback",
OutputPageBodyAttributes="\\BlueSpice\\CustomMenu\\Hook\\OutputPageBodyAttributes\\AddOutputPageBodyClass::callback",
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
},
composer="bluespice/custommenu",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceCustomMenu",
},
BlueSpiceDashboards={
name="BlueSpiceDashboards",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceDashboards",
author={
"Robert Vogel","Stephan Muggli","Peter Böhm",},
descriptionmsg="bs-dashboards-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceDashboards={
className="\\BlueSpice\\Dashboards\\Extension",
extPath="/BlueSpiceDashboards",
},
},
PermissionRegistry={
["dashboards-viewspecialpage-userdashboard"]={
type="global",
roles={
"accountmanager","admin","author","commenter","editor","maintenanceadmin","reader","reviewer","structuremanager",},
},
},
},
},
GroupPermissions={
["*"]={
["dashboards-viewspecialpage-userdashboard"]=false,
},
user={
["dashboards-viewspecialpage-userdashboard"]=true,
},
sysop={
["dashboards-viewspecialpage-userdashboard"]=true,
},
},
AvailableRights={
"dashboards-viewspecialpage-userdashboard",},
SpecialPages={
AdminDashboard="SpecialAdminDashboard",
UserDashboard="SpecialUserDashboard",
},
APIModules={
["bs-dashboards-tasks"]="BSApiDashboardTasks",
["bs-dashboards-store"]="BSApiDashboardStore",
["bs-dashboards-widgets-tasks"]="BSApiDashboardWidgetsTasks",
},
DefaultUserOptions={
["bs-dashboards-userdashboardonlogo"]=false,
},
ExtensionMessagesFiles={
DashboardsAlias="languages/Dashboards.alias.php",
},
HookHandlers={
addDashboardUrls={
class="\\BlueSpice\\Dashboards\\HookHandler\\AddDashboardUrls",
},
},
Hooks={
GetPreferences="\\BlueSpice\\Dashboards\\Hook\\GetPreferences\\AddUserDashboardOnLogo::callback",
["SkinTemplateNavigation::Universal"]="addDashboardUrls",
BeforePageDisplay="\\BlueSpice\\Dashboards\\Hook\\BeforePageDisplay\\AddModules::callback",
BSDashboardsUserDashboardPortalConfig="\\BlueSpice\\Dashboards\\Hook\\UserDashboardPortalConfig\\AddConfig::callback",
BSDashboardsUserDashboardPortalPortlets="\\BlueSpice\\Dashboards\\Hook\\UserDashboardPortalPortlets\\AddPortlets::callback",
LoadExtensionSchemaUpdates={
"\\BlueSpice\\Dashboards\\Hook\\LoadExtensionSchemaUpdates\\AddDashboardConfigsTable::callback","\\BlueSpice\\Dashboards\\Hook\\LoadExtensionSchemaUpdates\\AddPostDatabaseUpdateMaintenance::callback",},
DeleteAccount="\\BlueSpice\\Dashboards\\Hook\\DeleteAccount\\DeleteUserDashboard::callback",
BSUsageTrackerRegisterCollectors={
"\\BlueSpice\\Dashboards\\Hook\\BSUsageTrackerRegisterCollectors\\AdminDashboardModified::callback","\\BlueSpice\\Dashboards\\Hook\\BSUsageTrackerRegisterCollectors\\UserDashboardModified::callback",},
},
composer="bluespice/dashboards",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceDashboards",
},
BlueSpiceDistributionConnector={
name="BlueSpiceDistributionConnector",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceDistributionConnector",
author={
"Robert Vogel","Leonid Verhovskij","Markus Glaser","Daniel Vogel","Dejan Savuljesku","Peter Boehm","Patric Wirth",},
descriptionmsg="bs-distributionconnector-extension-description",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceDistributionConnector={
className="\\BlueSpice\\DistributionConnector\\Extension",
extPath="/BlueSpiceDistributionConnector",
},
},
ConfigDefinitionRegistry={
DistributionConnectorPluggableAuthConfig="\\BlueSpice\\DistributionConnector\\ConfigDefinition\\PluggableAuth\\Config::getInstance",
DistributionConnectorEnableAutoLogin="\\BlueSpice\\DistributionConnector\\ConfigDefinition\\PluggableAuth\\EnableAutoLogin::getInstance",
DistributionConnectorEventBusEnableEventBus="\\BlueSpice\\DistributionConnector\\ConfigDefinition\\EventBus\\EnableEventBus::getInstance",
DistributionConnectorEventBusEventServices="\\BlueSpice\\DistributionConnector\\ConfigDefinition\\EventBus\\EventServices::getInstance",
DistributionConnectorEventBusEventServiceDefault="\\BlueSpice\\DistributionConnector\\ConfigDefinition\\EventBus\\EventServiceDefault::getInstance",
},
PermissionRegistry={
dpl_param_delete_rules={
type="global",
roles={
"admin","editor","maintenanceadmin",},
},
dpl_param_update_rules={
type="global",
roles={
"admin","editor","maintenanceadmin",},
},
duplicate={
type="global",
roles={
"admin","author","editor","maintenanceadmin",},
},
editwidgets={
type="global",
roles={
"admin","maintenanceadmin","structuremanager",},
},
generatepages={
type="global",
roles={
"admin","maintenanceadmin",},
},
nuke={
type="global",
roles={
"admin","maintenanceadmin","structuremanager",},
},
renameuser={
type="global",
roles={
"accountmanager","admin","maintenanceadmin",},
},
replacetext={
type="global",
roles={
"admin","maintenanceadmin","structuremanager",},
},
usermerge={
type="global",
roles={
"accountmanager","admin","maintenanceadmin",},
},
["gadgets-edit"]={
type="global",
roles={
"admin","maintenanceadmin",},
},
["gadgets-definition-edit"]={
type="global",
roles={
"admin","maintenanceadmin",},
},
},
SettingPathRegistry={
authentication="bs-distributionconnector-setting-path-authentication",
},
},
VisualEditor={
PluginModules={
"ext.bluespice.distribution.categoryTree.visualEditor",},
},
Workflows={
WorkflowDefinitions={
["user-approval"]="BlueSpiceDistributionConnector/workflow/UserApproval.bpmn",
["document-control"]="BlueSpiceDistributionConnector/workflow/DocumentControl.bpmn",
},
TriggerTypes={
["time-smw-prop"]={
factory="\\MediaWiki\\Extension\\Workflows\\Trigger\\TimeBasedTrigger::factory",
services={
"TitleFactory",},
},
},
TriggerEditors={
["time-smw-prop"]={
supports={
"time-smw-prop",},
module="ext.bluespice.distribution.workflows.trigger.editor",
class="bs.distributionConnector.workflows.trigger.TimeSMWProperty",
},
},
},
BlueSpiceExtendedStatistics={
SnapshotProviders={
["dc-pagehits"]={
class="\\BlueSpice\\DistributionConnector\\Statistics\\SnapshotProvider\\PageHits",
services={
"DBLoadBalancer","ExtendedStatisticsSnapshotStore",},
},
},
Reports={
["dc-pagehits"]={
class="\\BlueSpice\\DistributionConnector\\Statistics\\Report\\PageHits",
},
["dc-pagetrends"]={
class="\\BlueSpice\\DistributionConnector\\Statistics\\Report\\PageTrends",
},
["dc-pagehitsrelation"]={
class="\\BlueSpice\\DistributionConnector\\Statistics\\Report\\PageHitsRelation",
},
},
},
ContentDroplets={
Droplets={
gallery={
class="\\BlueSpice\\DistributionConnector\\ContentDroplets\\GalleryDroplet",
},
categorytree={
class="\\BlueSpice\\DistributionConnector\\ContentDroplets\\CategoryTreeDroplet",
},
["circled-number"]={
class="\\BlueSpice\\DistributionConnector\\ContentDroplets\\CircledNumberDroplet",
},
subpages={
class="\\BlueSpice\\DistributionConnector\\ContentDroplets\\SubpagesDroplet",
},
map={
class="\\BlueSpice\\DistributionConnector\\ContentDroplets\\MapDroplet",
},
buttonlink={
class="\\BlueSpice\\DistributionConnector\\ContentDroplets\\ButtonLinkDroplet",
},
pdflink={
class="\\BlueSpice\\DistributionConnector\\ContentDroplets\\PDFLinkDroplet",
},
},
},
MWStakeContentProvisioner={
ContentManifests={
DefaultContentProvisioner={
"extensions/BlueSpiceDistributionConnector/data/Content/ContentDropletsTemplates/manifest.json","extensions/BlueSpiceDistributionConnector/data/Content/Startpage_COMMON/manifest.json","extensions/BlueSpiceDistributionConnector/data/Content/Startpage_Intranet/manifest.json","extensions/BlueSpiceDistributionConnector/data/Content/Startpage_Team/manifest.json","extensions/BlueSpiceDistributionConnector/data/Content/FooterLinks/manifest.json",},
},
},
BlueSpiceDistributionConnector={
EchoEventsCompatibilityMapping={
},
},
},
callback="\\BlueSpice\\DistributionConnector\\Extension::onRegistration",
ExtensionMessagesFiles={
BlueSpiceDistributionConnectorCheckPermissions="languages/SpecialCheckPermissions.alias.php",
},
SpecialPages={
CheckPermissions="BlueSpice\\DistributionConnector\\Specials\\CheckPermissions",
},
config_prefix="bsg",
config={
DistributionConnectorEnableAutoLogin={
value=false,
descriptionmsg="bs-distributionconnector-pref-pluggableauth-enableautologin",
public=true,
},
DistributionConnectorPluggableAuthConfig={
value={
},
descriptionmsg="bs-distributionconnector-pref-pluggableauth-config",
public=true,
},
DistributionConnectorEventBusEnableEventBus={
value="TYPE_NONE",
descriptionmsg="bs-distributionconnector-pref-eventbus-enableeventbus",
public=true,
},
DistributionConnectorEventBusEventServices={
value={
eventbus={
url="http://localhost:3000/v1/events",
timeout=5,
},
},
descriptionmsg="bs-distributionconnector-pref-eventbus-eventservices",
public=true,
},
DistributionConnectorEventBusEventServiceDefault={
value="eventbus",
descriptionmsg="bs-distributionconnector-pref-eventbus-eventservicedefault",
public=true,
},
},
Hooks={
BeforePageDisplay={
"\\BlueSpice\\DistributionConnector\\Hook\\BeforePageDisplay\\AddResources::callback","\\BlueSpice\\DistributionConnector\\Hook\\BeforePageDisplay\\AddEmbedVideoServices::callback",},
OutputPageBodyAttributes="\\BlueSpice\\DistributionConnector\\Hook\\OutputPageBodyAttributes\\InitRcFilters::onOutputPageBodyAttributes",
BaseTemplateToolbox="BlueSpiceDistributionHooks::onBaseTemplateToolbox",
LoadExtensionSchemaUpdates={
"BlueSpice\\DistributionConnector\\Hook\\LoadExtensionSchemaUpdates\\AddTemplateUserPageStandardContent::callback","migrate-pluggable-auth-config","fix-pluggable-auth-group-sync","addVariablesPageProperties",},
["WikiExplorer::getFieldDefinitions"]="\\BlueSpice\\DistributionConnector\\Hook\\WikiExplorer\\AddHitCounterColumn::onGetFieldDefinitions",
["WikiExplorer::getColumnDefinitions"]="\\BlueSpice\\DistributionConnector\\Hook\\WikiExplorer\\AddHitCounterColumn::onGetColumnDefinitions",
["WikiExplorer::buildDataSets"]="\\BlueSpice\\DistributionConnector\\Hook\\WikiExplorer\\AddHitCounterColumn::onBuildDataSets",
UserLoggedIn="BlueSpice\\DistributionConnector\\Hook\\UserLoggedIn\\AddLoginNotification::onUserLoggedIn",
BSUserManagerRegisterModules="user-manager",
MWStakeCommonUIRegisterSkinSlotComponents="addGlobalAction",
["SkinTemplateNavigation::Universal"]="addNewPageLink",
ContentAlterParserOutput="addVariablesPageProperty",
BSUsageTrackerRegisterCollectors="BlueSpice\\DistributionConnector\\Hook\\BSUsageTrackerRegisterCollectors\\NoOfVariables::callback",
},
HookHandlers={
["user-manager"]={
class="\\BlueSpice\\DistributionConnector\\Hook\\AddInviteLink",
},
["migrate-pluggable-auth-config"]={
class="\\BlueSpice\\DistributionConnector\\Hook\\LoadExtensionSchemaUpdates\\MigratePluggableAuthConfig",
},
["fix-pluggable-auth-group-sync"]={
class="\\BlueSpice\\DistributionConnector\\Hook\\LoadExtensionSchemaUpdates\\FixPluggableAuthGroupSync",
},
addGlobalAction={
class="\\BlueSpice\\DistributionConnector\\Hook\\AddGlobalAction",
services={
"SpecialPageFactory",},
},
addNewPageLink={
class="\\BlueSpice\\DistributionConnector\\Hook\\SkinTemplateNavigation\\AddNewPageLink",
services={
"PermissionManager",},
},
addVariablesPageProperty={
class="BlueSpice\\DistributionConnector\\HookHandler\\AddVariablesPageProperty",
},
addVariablesPageProperties={
class="BlueSpice\\DistributionConnector\\Hook\\LoadExtensionSchemaUpdates\\AddVariablesPageProperties",
},
},
composer="bluespice/distributionconnector",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceDistributionConnector",
},
BlueSpiceEchoConnector={
name="BlueSpiceEchoConnector",
["license-name"]="GPL-3.0-only",
version="4.3.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceEchoConnector",
author={
"Sebastian Ulbricht","Robert Vogel","Dejan Savuljesku",},
descriptionmsg="bs-echoconnector-extension-description",
type="bluespice",
requires={
MediaWiki="&gt;= 1.38.0",
extensions={
BlueSpiceFoundation="&gt;= 4.1",
Echo="*",
},
},
attributes={
BlueSpiceFoundation={
NotificationRegistrationFunctions={
"\\BlueSpice\\EchoConnector\\Extension::registerNotifications",},
RunJobsTriggerHandlerRegistry={
["bs-echoconnector-send-digest"]="BlueSpice\\EchoConnector\\RunJobsTriggerHandler\\SendDigest::factory",
},
},
BlueSpiceEchoConnector={
ParamParsers={
},
NotificationIcons={
delete={
path="BlueSpiceEchoConnector/resources/images/delete.png",
},
},
},
BlueSpiceDiscovery={
AttentionIndicatorRegistry={
["notifications-notice"]="\\BlueSpice\\EchoConnector\\AttentionIndicator\\Notice::factory",
["notifications-alert"]="\\BlueSpice\\EchoConnector\\AttentionIndicator\\Alert::factory",
notifications="\\BlueSpice\\EchoConnector\\AttentionIndicator\\Notifications::factory",
},
},
},
callback="\\BlueSpice\\EchoConnector\\Extension::onRegistration",
HookHandlers={
skin={
class="\\BlueSpice\\EchoConnector\\HookHandler\\Skin",
},
update={
class="\\BlueSpice\\EchoConnector\\HookHandler\\Update",
},
["add-special-styles"]={
class="BlueSpice\\EchoConnector\\HookHandler\\AddSpecialStyles",
},
},
Hooks={
ArticleDeleteComplete="\\BlueSpice\\EchoConnector\\Hook\\ArticleDeleteComplete\\NotifyUsers::callback",
PageMoveComplete="\\BlueSpice\\EchoConnector\\Hook\\PageMoveComplete\\NotifyUsers::callback",
PageSaveComplete="\\BlueSpice\\EchoConnector\\Hook\\PageSaveComplete\\NotifyUsers::callback",
BSUserManagerAfterAddUser="\\BlueSpice\\EchoConnector\\Hook\\BSUserManagerAfterAddUser\\NotifyUsers::callback",
EchoGetNotificationTypes="\\BlueSpice\\EchoConnector\\Hook\\EchoGetNotificationTypes\\GetNotificationTypesForEvent::callback",
EchoGetBundleRules="\\BlueSpice\\EchoConnector\\Hook\\EchoGetBundleRules\\GetBundleRules::callback",
LocalUserCreated="\\BlueSpice\\EchoConnector\\Hook\\LocalUserCreated\\NotifyUsers::callback",
GetPreferences={
"\\BlueSpice\\EchoConnector\\Hook\\GetPreferences\\AddNotificationMatrix::callback","\\BlueSpice\\EchoConnector\\Hook\\GetPreferences\\HidePreferences::callback",},
["SkinTemplateNavigation::Universal"]="skin",
LoadExtensionSchemaUpdates="update",
BeforePageDisplay="add-special-styles",
},
config_prefix="bsg",
config={
EchoHtmlMailTemplatePath={
value="/templates",
path=true,
},
EchoHtmlMailTemplateNames={
value={
single="SingleMail",
digest="Digest",
primary_link="PrimaryLink",
secondary_link="SecondaryLink",
digest_list="DigestList",
},
},
UseJobQueueForNotifications={
value=false,
},
ForceJobQueueForLargeAudienceThreshold={
value=499,
},
EchoEmailFormatterClasses={
value={
["plain-text"]={
class="BlueSpice\\EchoConnector\\Formatter\\EchoPlainTextEmailFormatter",
},
["plain-text-digest"]={
class="BlueSpice\\EchoConnector\\Formatter\\EchoPlainTextDigestEmailFormatter",
},
html={
class="BlueSpice\\EchoConnector\\Formatter\\EchoHTMLEmailFormatter",
},
["html-digest"]={
class="BlueSpice\\EchoConnector\\Formatter\\EchoHtmlDigestEmailFormatter",
},
},
},
},
JobClasses={
sendNotification="BlueSpice\\EchoConnector\\Job\\SendNotification",
},
ServiceWiringFiles={
"ServiceWiring.php",},
composer="bluespice/echoconnector",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceEchoConnector",
},
BlueSpiceEmoticons={
name="BlueSpiceEmoticons",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceEmoticons",
author={
"Alex Wollangk","Marc Reymann","Sebastian Ulbricht","Mathias Scheer","Robert Vogel","Patric Wirth","Peter Böhm",},
descriptionmsg="bs-emoticons-desc",
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceEmoticons={
className="\\BlueSpice\\Emoticons\\Extension",
extPath="/BlueSpiceEmoticons",
},
},
},
},
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
Hooks={
["@note"]="With BlueSpice 4.5, emoticons are handeled by Extension:VisualEditorPlus. To avoid issues with Extension:CollabPads, we diable this functionality entirely. The extension can be archived with the next major release.",
["@OutputPageBeforeHTML"]="\\BlueSpice\\Emoticons\\Hook\\OutputPageBeforeHTML\\ReplaceEmoticons::callback",
},
composer="bluespice/emoticons",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceEmoticons",
},
BlueSpiceExpiry={
name="BlueSpiceExpiry",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceExpiry",
author={
"Sebastian Ulbricht","Markus Glaser",},
descriptionmsg="bs-expiry-extension-description",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceReminder="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceExpiry={
className="\\BlueSpice\\Expiry\\Extension",
extPath="/BlueSpiceExpiry",
package="BlueSpice Pro",
},
},
ConfigDefinitionRegistry={
ExpiryEnablePDFWatermark="\\BlueSpice\\Expiry\\ConfigDefinition\\EnablePDFWatermark::getInstance",
ExpiryEnablePageWatermark="\\BlueSpice\\Expiry\\ConfigDefinition\\EnablePageWatermark::getInstance",
ExpiryEnablePrintWatermark="\\BlueSpice\\Expiry\\ConfigDefinition\\EnablePrintWatermark::getInstance",
},
PermissionRegistry={
expirearticle={
type="namespace",
roles={
"admin","editor","maintenanceadmin",},
},
["expiry-delete"]={
type="namespace",
roles={
"admin","editor","maintenanceadmin",},
},
},
["@AlertProviderRegistry"]={
["bs-expiry-expired"]="\\BlueSpice\\Expiry\\AlertProvider\\ExpiryState::factory",
},
PageInfoElementRegistry={
["bs-expiry-expired"]="\\BlueSpice\\Expiry\\PageInfoElement\\Expired::factory",
},
RunJobsTriggerHandlerRegistry={
["bs-expiry-send-daily"]="\\BlueSpice\\Expiry\\RunJobsTriggerHandler\\SendNotification\\Daily::factory",
["bs-expiry-send-weekly"]="\\BlueSpice\\Expiry\\RunJobsTriggerHandler\\SendNotification\\Weekly::factory",
["bs-expiry-log-expirations"]="\\BlueSpice\\Expiry\\RunJobsTriggerHandler\\LogExpirations::factory",
},
},
BlueSpiceEchoConnector={
NotificationIcons={
expiry={
path="BlueSpiceExpiry/resources/images/bs-infobar-expired.png",
},
},
},
BlueSpiceReminder={
Registry={
expiry="\\BlueSpice\\Expiry\\Reminder\\Expiry::factory",
},
},
BlueSpiceSMWConnector={
ExtraPropertyRegistry={
expirationdate="BlueSpice\\Expiry\\SMWConnector\\PropertyValueProvider\\ExpirationDate::factory",
isexpired="BlueSpice\\Expiry\\SMWConnector\\PropertyValueProvider\\IsExpired::factory",
},
},
Notifications={
Events={
["bs-expiry-today"]={
spec={
class="\\BlueSpice\\Expiry\\Event\\ExpiryToday",
},
buckets={
"qm",},
},
["bs-expiry-one-week"]={
spec={
class="\\BlueSpice\\Expiry\\Event\\ExpiryInOneWeek",
},
buckets={
"qm",},
},
},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
GroupPermissions={
["*"]={
expirearticle=false,
["expiry-delete"]=false,
},
user={
expirearticle=true,
["expiry-delete"]=true,
},
sysop={
expirearticle=true,
["expiry-delete"]=true,
},
},
AvailableRights={
"expirearticle","expiry-delete",},
SpecialPages={
Expiry="SpecialExpiry",
},
APIModules={
["bs-expiry-tasks"]="ApiExpiryTasks",
["bs-expiry-store"]="ApiExpiryStore",
},
ExtensionMessagesFiles={
ExpiryAlias="languages/SpecialExpiry.alias.php",
},
config_prefix="bsg",
config={
ExpiryEnablePDFWatermark={
value=true,
descriptionmsg="bs-expiry-pref-enablepdfwatermark",
public=true,
},
ExpiryEnablePageWatermark={
value=true,
descriptionmsg="bs-expiry-pref-enablepagewatermark",
public=true,
},
ExpiryEnablePrintWatermark={
value=true,
descriptionmsg="bs-expiry-pref-enableprintwatermark",
public=true,
},
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\Expiry\\HookHandler\\CommonUserInterface",
},
["discovery-skin"]={
class="\\BlueSpice\\Expiry\\HookHandler\\DiscoverySkin",
},
["standard-dialogs"]={
class="\\BlueSpice\\Expiry\\HookHandler\\StandardDialogs",
},
addExpiryCreateEntry={
class="\\BlueSpice\\Expiry\\HookHandler\\AddExpiryCreateEntry",
},
},
Hooks={
["SkinTemplateNavigation::Universal"]="addExpiryCreateEntry",
BeforePageDisplay={
"\\BlueSpice\\Expiry\\Hook\\BeforePageDisplay\\AddResources::callback","\\BlueSpice\\Expiry\\Hook\\BeforePageDisplay\\AddPageWatermark::callback","\\BlueSpice\\Expiry\\Hook\\BeforePageDisplay\\AddPrintWatermark::callback",},
BSUEModulePDFgetPage="\\BlueSpice\\Expiry\\Hook\\BSUEModulePDFgetPage\\AddPDFWatermarkClass::callback",
BSUEModulePDFBeforeAddingStyleBlocks="\\BlueSpice\\Expiry\\Hook\\BSUEModulePDFBeforeAddingStyleBlocks\\AddPDFWatermarkStyles::callback",
wgQueryPages="ExpiryHooks::onQueryPages",
LoadExtensionSchemaUpdates="\\BlueSpice\\Expiry\\Hook\\LoadExtensionSchemaUpdates\\AddExpiryTable::callback",
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
BlueSpiceDiscoveryTemplateDataProviderAfterInit="discovery-skin",
StandardDialogsRegisterPageInfoPanelModules="standard-dialogs",
},
LogTypes={
"bs-expiry",},
LogActionsHandlers={
["bs-expiry/*"]="LogFormatter",
},
composer="bluespice/expiry",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceExpiry",
},
BlueSpiceExportTables={
name="BlueSpiceExportTables",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceExportTables",
author={
"Patric Wirth","Robert Vogel",},
descriptionmsg="bs-exporttables-extension-description",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceUEModuleTable2Excel="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceExportTables={
className="\\BlueSpice\\ExportTables\\Extension",
extPath="/BlueSpiceExportTables",
package="BlueSpice Pro",
status="beta",
},
},
},
BlueSpiceVisualEditorConnector={
PluginModules={
"ext.bluespice.exportTables.visualEditorPlugin",},
},
BlueSpiceExtendedStatistics={
PluginModules={
"ext.bluespice.exportTables.statistics",},
},
},
config_prefix="bsg",
config={
ExportTablesMenuTargetSelector={
value="#mw-content-text table.bs-exportable, .mw-datatable",
},
},
Hooks={
BeforePageDisplay="\\BlueSpice\\ExportTables\\Hook\\BeforePageDisplay\\AddResources::callback",
},
composer="bluespice/exporttables",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceExportTables",
},
BlueSpiceExtendedFilelist={
name="BlueSpiceExtendedFilelist",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceExtendedFilelist",
author={
"Dejan Savuljesku",},
descriptionmsg="bs-extendedfilelist-desc",
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceExtendedFilelist={
className="\\BlueSpice\\ExtendedFilelist\\Extension",
extPath="/BlueSpiceExtendedFilelist",
},
},
},
},
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
ExtensionMessagesFiles={
BlueSpiceExtendedFilelistAlias="BlueSpiceExtendedFilelist.alias.php",
},
Hooks={
ResourceLoaderRegisterModules="BlueSpiceExtendedFilelistHooks::onResourceLoaderRegisterModules",
SpecialPage_initList="BlueSpiceExtendedFilelistHooks::onSpecialPage_initList",
},
SpecialPages={
BlueSpiceExtendedFilelist="SpecialBlueSpiceExtendedFilelist",
},
config_prefix="bsg",
config={
EFLOverrideStandardFilelist={
value=false,
},
EFLPluginModules={
value={
},
},
},
composer="bluespice/extendedfilelist",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceExtendedFilelist",
},
BlueSpiceExtendedSearch={
name="BlueSpiceExtendedSearch",
["license-name"]="GPL-3.0-only",
version="4.4.0-alpha",
author={
"Robert Vogel","Dejan Savuljesku",},
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceExtendedSearch",
descriptionmsg="bs-extsearch-desc",
namemsg="bs-extsearch-extensionname",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceExtendedSearch={
className="BS\\ExtendedSearch\\Extension",
},
},
ConfigDefinitionRegistry={
ESExternalFilePaths="BS\\ExtendedSearch\\ConfigDefinition\\ExternalFilePaths::getInstance",
ESCompactAutocomplete="BS\\ExtendedSearch\\ConfigDefinition\\CompactAutocomplete::getInstance",
ESAutoSetLangFilter="BS\\ExtendedSearch\\ConfigDefinition\\AutoSetLanguageFilter::getInstance",
ExtendedSearchExternalFilePathsExcludes="\\BS\\ExtendedSearch\\ConfigDefinition\\ExternalFilePathsExcludes::getInstance",
},
AdminToolRegistry={
["bs-extended-search"]="BS\\ExtendedSearch\\AdminTool",
},
PermissionRegistry={
["extendedsearch-search-specialpage"]={
type="global",
roles={
"accountmanager","admin","author","bot","commenter","editor","maintenanceadmin","reader","reviewer","structuremanager",},
},
["extendedsearch-search-wikipage"]={
type="global",
roles={
"accountmanager","admin","author","bot","commenter","editor","maintenanceadmin","reader","reviewer","structuremanager",},
},
["extendedsearch-search-repofile"]={
type="global",
roles={
"accountmanager","admin","author","bot","commenter","editor","maintenanceadmin","reader","reviewer","structuremanager",},
},
["extendedsearch-search-externalfile"]={
type="global",
roles={
"accountmanager","admin","author","bot","commenter","editor","maintenanceadmin","reader","reviewer","structuremanager",},
},
},
TagRegistry={
["bs-tagsearch"]="BS\\ExtendedSearch\\Tag\\TagSearch",
},
JSConfigVars={
AutocompleteConfig="\\BS\\ExtendedSearch\\JSConfigVariable\\AutocompleteConfig::factory",
SourceIcons="\\BS\\ExtendedSearch\\JSConfigVariable\\SourceIcons::factory",
UseCompactAutocomplete="\\BS\\ExtendedSearch\\JSConfigVariable\\UseCompactAutocomplete::factory",
ESSimilarPages="\\BS\\ExtendedSearch\\JSConfigVariable\\ESSimilarPages::factory",
},
},
BlueSpiceVisualEditorConnector={
TagDefinitions={
"ext.bluespice.tagsearch.visualEditor",},
},
BlueSpiceExtendedSearch={
Sources={
wikipage={
class="BS\\ExtendedSearch\\Source\\WikiPages",
services={
"ObjectFactory",},
},
specialpage={
class="BS\\ExtendedSearch\\Source\\SpecialPages",
services={
"ObjectFactory",},
},
repofile={
class="BS\\ExtendedSearch\\Source\\RepoFiles",
services={
"ObjectFactory",},
},
externalfile={
class="BS\\ExtendedSearch\\Source\\ExternalFiles",
services={
"ObjectFactory",},
},
},
PluginRegistry={
},
DefaultResultStructure={
headerText="basename",
headerUri="uri",
secondaryInfos={
top={
items={
},
},
bottom={
items={
{
name="typetext",
},{
name="ctime",
},{
name="mtime",
},},
},
},
featured={
},
},
Autocomplete={
SuggestField="suggestions",
DisplayLimits={
normal=7,
top=1,
secondary=4,
},
},
SourceIcons={
wikipage="extensions/BlueSpiceExtendedSearch/resources/images/wikipage-icon.png",
specialpage="extensions/BlueSpiceExtendedSearch/resources/images/specialpage-icon.png",
default="extensions/BlueSpiceExtendedSearch/resources/images/default-icon.png",
},
Icons={
pdf="/extensions/BlueSpiceExtendedSearch/resources/images/file-icon/icon-pdf.png",
docx="/extensions/BlueSpiceExtendedSearch/resources/images/file-icon/icon-docx.png",
doc="/extensions/BlueSpiceExtendedSearch/resources/images/file-icon/icon-doc.png",
xls="/extensions/BlueSpiceExtendedSearch/resources/images/file-icon/icon-xls.png",
xlsx="/extensions/BlueSpiceExtendedSearch/resources/images/file-icon/icon-xlsx.png",
ppt="/extensions/BlueSpiceExtendedSearch/resources/images/file-icon/icon-ppt.png",
pptx="/extensions/BlueSpiceExtendedSearch/resources/images/file-icon/icon-pptx.png",
mp4="/extensions/BlueSpiceExtendedSearch/resources/images/file-icon/icon-mp4.png",
default="/extensions/BlueSpiceExtendedSearch/resources/images/file-icon/default.png",
redirect="/extensions/BlueSpiceExtendedSearch/resources/images/icon/redirect.png",
},
FieldsWithANDFilterEnabled={
fields={
"categories",},
},
SpellCheck={
enabled=true,
suggestField="suggestions",
replaceThreshold=0.01,
suggestThreshold=0.3,
},
SingleSelectFilters={
"page_language",},
ExternalIndexRegistry={
},
},
BlueSpiceTagCloud={
StoreRegistry={
searchstats="\\BS\\ExtendedSearch\\Data\\TagCloud\\Searchstats\\Store",
},
},
BlueSpiceWikiFarm={
PostInstanceCreationCommandFactories={
initbackend="BS\\ExtendedSearch\\WikiFarm\\CommandDescription\\InitBackend::factory",
rebuildindex="BS\\ExtendedSearch\\WikiFarm\\CommandDescription\\RebuildIndex::factory",
},
PreInstanceDeletionCommandFactories={
deleteindices="BS\\ExtendedSearch\\WikiFarm\\CommandDescription\\DeleteIndices::factory",
},
},
BlueSpicePrivacy={
Handlers={
"\\BS\\ExtendedSearch\\Privacy\\Handler",},
},
VisualEditor={
PluginModules={
"ext.bluespice.extendedsearch.tagsearch.visualEditor",},
},
BlueSpiceExtendedStatistics={
SnapshotProviders={
["es-searchstats"]={
class="\\BS\\ExtendedSearch\\Statistics\\SnapshotProvider\\SearchStats",
services={
"DBLoadBalancer",},
},
},
Reports={
["es-searchterms"]={
class="\\BS\\ExtendedSearch\\Statistics\\Report\\SearchTerms",
},
},
},
ContentDroplets={
Droplets={
search={
class="\\BS\\ExtendedSearch\\ContentDroplets\\SearchDroplet",
},
},
},
},
GroupPermissions={
["*"]={
["extendedsearch-search-specialpage"]=true,
["extendedsearch-search-wikipage"]=true,
["extendedsearch-search-repofile"]=true,
["extendedsearch-search-externalfile"]=true,
},
user={
["extendedsearch-search-specialpage"]=true,
["extendedsearch-search-wikipage"]=true,
["extendedsearch-search-repofile"]=true,
["extendedsearch-search-externalfile"]=true,
},
sysop={
["extendedsearch-search-specialpage"]=true,
["extendedsearch-search-wikipage"]=true,
["extendedsearch-search-repofile"]=true,
["extendedsearch-search-externalfile"]=true,
},
},
GrantPermissions={
basic={
["extendedsearch-search-specialpage"]=true,
["extendedsearch-search-wikipage"]=true,
["extendedsearch-search-repofile"]=true,
["extendedsearch-search-externalfile"]=true,
},
},
AvailableRights={
"extendedsearch-search-specialpage","extendedsearch-search-wikipage","extendedsearch-search-repofile","extendedsearch-search-externalfile",},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
ExtensionMessagesFiles={
BlueSpiceExtendedSearchSpecial="languages/BlueSpiceExtendedSearch.special.alias.php",
},
ExtensionFunctions={
"BS\\ExtendedSearch\\Setup::init",},
HookHandlers={
extendedsearchform={
class="BS\\ExtendedSearch\\HookHandler\\SkinSlotNavbarPrimarySearchForm",
},
},
Hooks={
BeforePageDisplay={
"BS\\ExtendedSearch\\Hook\\BeforePageDisplay\\AddResources::callback",},
LoadExtensionSchemaUpdates={
"BS\\ExtendedSearch\\Hook\\LoadExtensionSchemaUpdates\\AddRelevanceTable::callback","BS\\ExtendedSearch\\Hook\\LoadExtensionSchemaUpdates\\AddHistoryTable::callback","BS\\ExtendedSearch\\Hook\\LoadExtensionSchemaUpdates\\AddTraceTable::callback",},
GetPreferences="BS\\ExtendedSearch\\Hook\\GetPreferences\\AddUserPreferredNamespaces::callback",
BSUEModulePDFBeforeCreatePDF="\\BS\\ExtendedSearch\\Hook\\BSUEModulePDFBeforeCreatePDF\\RemoveTagSearch::callback",
["NamespaceManager::editNamespace"]="\\BS\\ExtendedSearch\\Hook\\NamespaceManagerEditNamespace\\ReindexNamespace::callback",
UserMergeAccountFields="\\BS\\ExtendedSearch\\Hook\\UserMergeAccountFields\\MergeExtendedSearchDBFields::callback",
MWStakeCommonUIRegisterSkinSlotComponents={
"extendedsearchform",},
MWStakeRunJobsTriggerRegisterHandlers="\\BS\\ExtendedSearch\\Hook\\MWStakeRunJobsTriggerRegisterHandlers\\RegisterExternalFileUpdater::callback",
},
SpecialPages={
BSSearchCenter="BS\\ExtendedSearch\\MediaWiki\\Specials\\SearchCenter",
BSSearchAdmin="BS\\ExtendedSearch\\MediaWiki\\Specials\\SearchAdmin",
},
APIModules={
["bs-extendedsearch-query"]="BS\\ExtendedSearch\\MediaWiki\\Api\\Query",
["bs-extendedsearch-stats"]="BS\\ExtendedSearch\\MediaWiki\\Api\\Stats",
["bs-extendedsearch-triggerupdate"]="BS\\ExtendedSearch\\MediaWiki\\Api\\TriggerUpdate",
["bs-extendedsearch-autocomplete"]="BS\\ExtendedSearch\\MediaWiki\\Api\\Autocomplete",
["bs-extendedsearch-resultrelevance"]="BS\\ExtendedSearch\\MediaWiki\\Api\\ResultRelevance",
["bs-extendedsearch-type-store"]="BS\\ExtendedSearch\\MediaWiki\\Api\\TypeStore",
},
config_prefix="bsg",
config={
ESBackendClass={
value="\\BS\\ExtendedSearch\\Backend",
},
ESBackendHost={
value="127.0.0.1",
},
ESBackendPort={
value="9200",
},
ESBackendTransport={
value="https",
},
ESBackendUsername={
value="",
},
ESBackendPassword={
value="",
},
ESEnableSearchHistoryTracking={
value=true,
},
ESExternalFilePaths={
descriptionmsg="bs-extendedsearch-external-file-paths-desc",
public=true,
value={
},
},
ExtendedSearchExternalFilePathsExcludes={
descriptionmsg="bs-extendedsearch-pref-external-file-paths-excludes",
public=true,
value={
},
},
ESCompactAutocomplete={
descriptionmsg="bs-extendedsearch-compact-ac-paths-desc",
public=true,
value=true,
},
ESSearchCenterDefaultFilters={
descriptionmsg="bs-extendedsearch-default-filters-desc",
public=true,
value={
"namespace_text","categories",},
},
ESAutoSetLangFilter={
descriptionmsg="bs-extendedsearch-auto-set-lang-filter-desc",
public=true,
value=false,
},
ESWildcardingOperators={
public=false,
value={
"+","|","*","(",")","~",},
},
ESWildcardingSeparators={
public=false,
value={
",",".",";","-","_",},
},
ESRecentBoostFactor={
description="Value must be between 0 and 1. If set to 1, very recent pages will almost double their score",
public=false,
value="0.5",
},
ESMatchPercentBoostFactor={
description="How much to boost the result based on the percent of its title taken up by the search term. Set to 0 to disable",
public=false,
value="0.5",
},
ESMatchPercentTitleField={
description="Field on which to base the match percent boosting. If empty, default title field of the source will be used",
public=false,
value="",
},
ESSourceConfig={
value={
wikipage={
skip_namespaces={
8,9,},
},
repofile={
extension_blacklist={
"mp4",},
max_size=20000000,
},
externalfile={
extension_blacklist={
"mp4",},
max_size=20000000,
},
},
public=false,
},
ESUseSharedUploads={
description="If `$wgUseSharedUploads` is set to true, this setting will allow to search for files in the shared upload directory",
value=false,
},
ESSharedUploadsIndexPrefix={
description="Prefix for the search index in the shared uploads wiki",
value=false,
},
TagSearchSearchFieldTemplatePath={
value="/resources/templates",
path=true,
},
ESAllowIndexingDocumentsWithoutContent={
value=true,
},
ESAutoRecognizeSubpages={
description="If true, search for subpages will automatically be recognized and filters adjusted",
value=true,
},
ESSearchInRawWikitext={
value=true,
},
ESLookupModifierRegExPatterns={
value={
"[0-9]{2}\\-[0-9]{2}\\-[0-9]{4}","[0-9]{4}\\-[0-9]{2}\\-[0-9]{2}","[0-9]{2}\\-[0-9]{4}\\-[0-9]{2}","[0-9]{2}\\/[0-9]{2}\\/[0-9]{4}","[0-9]{4}\\/[0-9]{2}\\/[0-9]{2}","[0-9]{2}\\/[0-9]{4}\\/[0-9]{2}","[0-9]{2}\\.[0-9]{2}\\.[0-9]{4}","[0-9]{4}\\.[0-9]{2}\\.[0-9]{2}","[0-9]{2}\\.[0-9]{4}\\.[0-9]{2}","[0-9]{2}\\\\[0-9]{2}\\\\[0-9]{4}","[0-9]{4}\\\\[0-9]{2}\\\\[0-9]{2}","[0-9]{2}\\\\[0-9]{4}\\\\[0-9]{2}","[0-9]{1}\\-[0-9]{2}\\-[0-9]{4}","[0-9]{4}\\-[0-9]{2}\\-[0-9]{1}","[0-9]{1}\\-[0-9]{4}\\-[0-9]{2}","[0-9]{4}\\-[0-9]{1}\\-[0-9]{2}","[0-9]{2}\\-[0-9]{4}\\-[0-9]{1}","[0-9]{2}\\-[0-9]{1}\\-[0-9]{4}","[0-9]{1}\\/[0-9]{2}\\/[0-9]{4}","[0-9]{4}\\/[0-9]{2}\\/[0-9]{1}","[0-9]{1}\\/[0-9]{4}\\/[0-9]{2}","[0-9]{4}\\/[0-9]{1}\\/[0-9]{2}","[0-9]{2}\\/[0-9]{4}\\/[0-9]{1}","[0-9]{2}\\/[0-9]{1}\\/[0-9]{4}","[0-9]{1}\\.[0-9]{2}\\.[0-9]{4}","[0-9]{4}\\.[0-9]{2}\\.[0-9]{1}","[0-9]{1}\\.[0-9]{4}\\.[0-9]{2}","[0-9]{4}\\.[0-9]{1}\\.[0-9]{2}","[0-9]{2}\\.[0-9]{4}\\.[0-9]{1}","[0-9]{2}\\.[0-9]{1}\\.[0-9]{4}","[0-9]{1}\\\\[0-9]{2}\\\\[0-9]{4}","[0-9]{4}\\\\[0-9]{2}\\\\[0-9]{1}","[0-9]{1}\\\\[0-9]{4}\\\\[0-9]{2}","[0-9]{4}\\\\[0-9]{1}\\\\[0-9]{2}","[0-9]{2}\\\\[0-9]{4}\\\\[0-9]{1}","[0-9]{2}\\\\[0-9]{1}\\\\[0-9]{4}","[0-9]{2}\\-[0-9]{2}\\-[0-9]{2}","[0-9]{2}\\/[0-9]{2}\\/[0-9]{2}","[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}","[0-9]{2}\\\\[0-9]{2}\\\\[0-9]{2}","[0-9]{1}\\-[0-9]{1}\\-[0-9]{4}","[0-9]{4}\\-[0-9]{1}\\-[0-9]{1}","[0-9]{1}\\-[0-9]{4}\\-[0-9]{1}","[0-9]{1}\\/[0-9]{1}\\/[0-9]{4}","[0-9]{4}\\/[0-9]{1}\\/[0-9]{1}","[0-9]{1}\\/[0-9]{4}\\/[0-9]{1}","[0-9]{1}\\.[0-9]{1}\\.[0-9]{4}","[0-9]{4}\\.[0-9]{1}\\.[0-9]{1}","[0-9]{1}\\.[0-9]{4}\\.[0-9]{1}","[0-9]{1}\\\\[0-9]{1}\\\\[0-9]{4}","[0-9]{4}\\\\[0-9]{1}\\\\[0-9]{1}","[0-9]{1}\\\\[0-9]{4}\\\\[0-9]{1}","[0-9]{1}\\-[0-9]{1}\\-[0-9]{2}","[0-9]{2}\\-[0-9]{1}\\-[0-9]{1}","[0-9]{1}\\-[0-9]{2}\\-[0-9]{1}","[0-9]{1}\\/[0-9]{1}\\/[0-9]{2}","[0-9]{2}\\/[0-9]{1}\\/[0-9]{1}","[0-9]{1}\\/[0-9]{2}\\/[0-9]{1}","[0-9]{1}\\.[0-9]{1}\\.[0-9]{2}","[0-9]{2}\\.[0-9]{1}\\.[0-9]{1}","[0-9]{1}\\.[0-9]{2}\\.[0-9]{1}","[0-9]{1}\\\\[0-9]{1}\\\\[0-9]{2}","[0-9]{2}\\\\[0-9]{1}\\\\[0-9]{1}","[0-9]{1}\\\\[0-9]{2}\\\\[0-9]{1}","[0-9]{2}\\-[0-9]{4}","[0-9]{2}\\/[0-9]{4}","[0-9]{2}\\.[0-9]{4}","[0-9]{2}\\\\[0-9]{4}","[0-9]{4}\\-[0-9]{2}","[0-9]{4}\\/[0-9]{2}","[0-9]{4}\\.[0-9]{2}","[0-9]{4}\\\\[0-9]{2}","[0-9]{2}\\-[0-9]{2}","[0-9]{2}\\/[0-9]{2}","[0-9]{2}\\.[0-9]{2}","[0-9]{2}\\\\[0-9]{2}",},
},
ESOfferOperatorSuggestion={
value=true,
},
ESEnableTypeFilter={
value=true,
},
ESSubpageMasterFilterPatterns={
description="List of regexes specifying pattern of page names on which to turn this feature on",
value={
},
},
ESSubpageMasterFilterUseRootOnly={
description="Whether to use the whole name of the current page or just the root part",
value=true,
},
ESDefaultSearchOperator={
value="AND",
},
ESIndexPrefix={
description="Which prefix to use on the index names. Will use `WikiMap::getCurrentWikiId()` if empty.",
value="",
},
},
callback="\\BS\\ExtendedSearch\\Setup::onRegistration",
JobClasses={
updateWikiPageIndex="BS\\ExtendedSearch\\Source\\Job\\UpdateWikiPage",
updateSpecialPageIndex="BS\\ExtendedSearch\\Source\\Job\\UpdateSpecialPage",
updateRepoFileIndex="BS\\ExtendedSearch\\Source\\Job\\UpdateRepoFile",
updateExternalFileIndex="BS\\ExtendedSearch\\Source\\Job\\UpdateExternalFile",
updateLinkedFileIndex="BS\\ExtendedSearch\\Source\\Job\\UpdateLinkedFile",
},
RestRoutes={
{
method="POST",
path="/bluespice/extendedsearch/track",
class="BS\\ExtendedSearch\\MediaWiki\\Rest\\InsertSearchTraceHandler",
services={
"BSExtendedSearchTracker",},
},{
method="DELETE",
path="/bluespice/extendedsearch/track",
class="BS\\ExtendedSearch\\MediaWiki\\Rest\\RemoveSearchTraceHandler",
services={
"BSExtendedSearchTracker",},
},{
path="/bluespice/extendedsearch/recentlyfound",
class="BS\\ExtendedSearch\\MediaWiki\\Rest\\RecentlyFoundHandler",
services={
"BSExtendedSearchTracker","LinkRenderer",},
},},
composer="bluespice/extendedsearch",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceExtendedSearch",
},
BlueSpiceExtendedStatistics={
name="BlueSpiceExtendedStatistics",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceExtendedStatistics",
author={
"Markus Glaser","Patric Wirth","Oleksandr Pinchuk",},
descriptionmsg="bs-statistics-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
platform={
php="&gt;= 7.2",
["ext-ctype"]="*",
["ext-dom"]="*",
["ext-gd"]="*",
["ext-iconv"]="*",
["ext-fileinfo"]="*",
["ext-libxml"]="*",
["ext-mbstring"]="*",
["ext-SimpleXML"]="*",
["ext-xml"]="*",
["ext-xmlreader"]="*",
["ext-xmlwriter"]="*",
["ext-zip"]="*",
["ext-zlib"]="*",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceExtendedStatistics={
className="\\BlueSpice\\ExtendedStatistics\\Extension",
extPath="/BlueSpiceExtendedStatistics",
},
},
ConfigDefinitionRegistry={
StatisticsExcludeUsers="\\BlueSpice\\ExtendedStatistics\\ConfigDefinition\\ExcludeUsers::getInstance",
StatisticsMaxNumberOfIntervals="\\BlueSpice\\ExtendedStatistics\\ConfigDefinition\\MaxNumberOfIntervals::getInstance",
},
PermissionRegistry={
["statistic-viewspecialpage"]={
type="global",
roles={
"admin","maintenanceadmin",},
},
["extendedstatistics-viewspecialpage-aggregated"]={
type="global",
roles={
"admin","maintenanceadmin",},
},
},
TagRegistry={
progress="\\BlueSpice\\ExtendedStatistics\\Tag\\Progress",
},
},
BlueSpiceExtendedStatistics={
SnapshotProviders={
},
Reports={
},
SnapshotStores={
database={
class="BlueSpice\\ExtendedStatistics\\SnapshotStore\\DatabaseStore",
services={
"DBLoadBalancer",},
},
},
DiagramRegistry={
BsDiagramNumberOfUsers="\\BsDiagramNumberOfUsers::factory",
BsDiagramNumberOfPages="\\BsDiagramNumberOfPages::factory",
BsDiagramNumberOfArticles="\\BsDiagramNumberOfArticles::factory",
BsDiagramNumberOfEdits="\\BsDiagramNumberOfEdits::factory",
BsDiagramEditsPerUser="\\BsDiagramEditsPerUser::factory",
BsDiagramSearches="\\BsDiagramSearches::factory",
},
PluginModules={
},
},
BlueSpiceVisualEditorConnector={
TagDefinitions={
"ext.bluespice.extendedstatistics.visualEditorTagDefinition",},
},
ContentDroplets={
Droplets={
progress={
class="BlueSpice\\ExtendedStatistics\\ContentDroplets\\ProgressDroplet",
},
},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
APIMetaModules={
["statistics-reports"]="BlueSpice\\ExtendedStatistics\\Api\\ApiQueryReports",
},
GroupPermissions={
["*"]={
["statistic-viewspecialpage"]=false,
["extendedstatistics-viewspecialpage-aggregated"]=false,
},
user={
["statistic-viewspecialpage"]=true,
["extendedstatistics-viewspecialpage-aggregated"]=false,
},
sysop={
["statistic-viewspecialpage"]=true,
["extendedstatistics-viewspecialpage-aggregated"]=true,
},
},
AvailableRights={
"statistic-viewspecialpage","extendedstatistics-viewspecialpage-aggregated",},
SpecialPages={
ExtendedStatistics="SpecialExtendedStatistics",
AggregatedStatistic="\\BlueSpice\\ExtendedStatistics\\Special\\AggregatedStatistic",
},
JobClasses={
updateCollectionIndex="\\BlueSpice\\ExtendedStatistics\\ExtendedSearch\\Job\\Snapshot",
},
APIModules={
["bs-statistics-search-options-store"]="BSApiStatisticsSearchOptionsStore",
["bs-statistics-available-diagrams-store"]="BSApiStatisticsAvailableDiagramsStore",
["bs-statistics-tasks"]="BSApiStatisticsTasks",
},
ExtensionMessagesFiles={
ExtendedStatisticsAlias="languages/ExtendedStatistics.alias.php",
},
Hooks={
LoadExtensionSchemaUpdates="\\BlueSpice\\ExtendedStatistics\\Hook\\LoadExtensionSchemaUpdates\\AddSnapshotTable::callback",
BSUsageTrackerRegisterCollectors="\\BlueSpice\\ExtendedStatistics\\Hook\\BSUsageTrackerRegisterCollectors\\AddStatisticsProgressTag::callback",
BSDashboardsAdminDashboardPortalConfig="\\BlueSpice\\ExtendedStatistics\\Hook\\BSDashboardsAdminDashboardPortalConfig\\AddConfigs::callback",
BSDashboardsAdminDashboardPortalPortlets="\\BlueSpice\\ExtendedStatistics\\Hook\\BSDashboardsAdminDashboardPortalPortlets\\AddPortlets::callback",
BSDashboardsUserDashboardPortalConfig="\\BlueSpice\\ExtendedStatistics\\Hook\\BSDashboardsUserDashboardPortalConfig\\AddConfigs::callback",
BSDashboardsUserDashboardPortalPortlets="\\BlueSpice\\ExtendedStatistics\\Hook\\BSDashboardsUserDashboardPortalPortlets\\AddPortlets::callback",
},
config_prefix="bsg",
config={
StatisticsExcludeUsers={
value={
"WikiSysop",},
descriptionmsg="bs-statistics-pref-excludeusers",
},
StatisticsMaxNumberOfIntervals={
value=366,
descriptionmsg="bs-statistics-pref-maxnumberofintervals",
},
StatisticsAvailableGrains={
value={
Y="bs-statistics-year",
m="bs-statistics-month",
W="bs-statistics-week",
d="bs-statistics-day",
},
descriptionmsg="bs-statistics-pref-AvailableGrains",
},
StatisticsSnapshotStoreType={
public=false,
value="database",
},
},
composer="bluespice/extendedstatistics",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceExtendedStatistics",
},
BlueSpiceFilterableTables={
name="BlueSpiceFilterableTables",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceFilterableTables",
author="Patric Wirth",
descriptionmsg="bs-filterabletables-extension-description",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceFilterableTables={
className="\\BlueSpice\\FilterableTables\\Extension",
extPath="/BlueSpiceFilterableTables",
package="BlueSpice Pro",
},
},
},
BlueSpiceVisualEditorConnector={
PluginModules={
"ext.bluespice.filterabletables.visualEditorPlugin",},
},
},
HookHandlers={
addPageProperty={
class="BlueSpice\\FilterableTables\\HookHandler\\AddPageProperty",
},
},
Hooks={
BeforePageDisplay="\\BlueSpice\\FilterableTables\\Hook\\BeforePageDisplay\\AddResources::callback",
BSUsageTrackerRegisterCollectors="BlueSpice\\FilterableTables\\Hook\\BSUsageTrackerRegisterCollectors\\NoOfFilterableTables::callback",
ContentAlterParserOutput="addPageProperty",
},
composer="bluespice/filterabletables",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceFilterableTables",
},
BlueSpiceFlaggedRevsConnector={
name="BlueSpiceFlaggedRevsConnector",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceFlaggedRevsConnector",
author={
"Patric Wirth","Robert Vogel",},
descriptionmsg="bs-flaggedrevsconnector-extension-description",
requires={
MediaWiki="&gt;= 1.37.0",
extensions={
BlueSpiceFoundation="&gt;= 4.0",
FlaggedRevs="*",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceFlaggedRevsConnector={
className="\\BlueSpice\\FlaggedRevsConnector\\Extension",
extPath="/BlueSpiceFlaggedRevsConnector",
package="BlueSpice Pro",
},
},
ConfigDefinitionRegistry={
FlaggedRevsConnectorDraftGroups="\\BlueSpice\\FlaggedRevsConnector\\ConfigDefinition\\DraftGroups::getInstance",
FlaggedRevsConnectorIndexStableOnly="\\BlueSpice\\FlaggedRevsConnector\\ConfigDefinition\\IndexingStableOnly::getInstance",
FlaggedRevsConnectorBookshelfShowStable="\\BlueSpice\\FlaggedRevsConnector\\ConfigDefinition\\BookshelfShowStable::getInstance",
FlaggedRevsConnectorBookshelfShowNoStable="\\BlueSpice\\FlaggedRevsConnector\\ConfigDefinition\\BookshelfShowNoStable::getInstance",
FlaggedRevsConnectorBookshelfShowNoFR="\\BlueSpice\\FlaggedRevsConnector\\ConfigDefinition\\BookshelfShowNoFR::getInstance",
FlaggedRevsConnectorUEModulePDFShowFRTag="\\BlueSpice\\FlaggedRevsConnector\\ConfigDefinition\\UEModulePDFShowFRTag::getInstance",
FlaggedRevsConnectorFlaggedRevsHandleIncludes="\\BlueSpice\\FlaggedRevsConnector\\ConfigDefinition\\HandleIncludes::getInstance",
},
PageInfoElementRegistry={
["bs-frc-versionswitch"]="\\BlueSpice\\FlaggedRevsConnector\\PageInfoElement\\VersionSwitch::factory",
["bs-frc-pagestatus-dropdown"]="\\BlueSpice\\FlaggedRevsConnector\\PageInfoElement\\PageStatusDropdown::factory",
},
PermissionRegistry={
autoreview={
type="global",
roles={
"bot","maintenanceadmin",},
},
autoreviewrestore={
type="global",
roles={
"bot","maintenanceadmin",},
},
movestable={
type="global",
roles={
"admin","editor","maintenanceadmin","reviewer","structuremanager",},
},
review={
type="global",
roles={
"admin","maintenanceadmin","reviewer",},
},
stablesettings={
type="global",
roles={
"admin","maintenanceadmin","reader",},
},
unreviewedpages={
type="global",
roles={
"admin","editor","maintenanceadmin","reviewer",},
},
validate={
type="global",
roles={
"admin","maintenanceadmin","reviewer",},
},
},
PermissionLockdownRegistry={
["flaggedrevsconnector-draft"]="\\BlueSpice\\FlaggedRevsConnector\\Permission\\Lockdown\\Module\\Draft::getInstance",
},
NotificationRegistrationFunctions={
"\\BlueSpice\\FlaggedRevsConnector\\Notifications\\Registrator::registerNotifications",},
AlertProviderRegistry={
["bs-flaggedrevsconnector-revisionstate"]="\\BlueSpice\\FlaggedRevsConnector\\AlertProvider\\RevisionState::factory",
},
AdminToolRegistry={
["bs-qm-overview"]="BlueSpice\\FlaggedRevsConnector\\AdminTool\\QMOverview",
},
RendererRegistry={
["pageheader-lastedit"]="\\BlueSpice\\FlaggedRevsConnector\\Renderer\\PageHeader\\LastEdit::factory",
},
LessVarsRegistry={
["bs-frc-unmarked-color"]="#ff8080",
["bs-frc-stable-color"]="#38c748",
["bs-frc-draft-color"]="#e49c00",
},
},
BlueSpicePrivacy={
Handlers={
"\\BlueSpice\\FlaggedRevsConnector\\Privacy\\Handler",},
},
BlueSpiceSMWConnector={
ExtraPropertyRegistry={
docstatefields="\\BlueSpice\\FlaggedRevsConnector\\DocumentStatePropertyValueProvider::factory",
docsversionfields="\\BlueSpice\\FlaggedRevsConnector\\DocumentVersionPropertyValueProvider::factory",
approvaldatefields="\\BlueSpice\\FlaggedRevsConnector\\ApprovalDatePropertyValueProvider::factory",
approvaluserfields="\\BlueSpice\\FlaggedRevsConnector\\ApprovalUserPropertyValueProvider::factory",
},
},
BlueSpiceReview={
ReviewTypeRegistry={
flagging="BlueSpice\\FlaggedRevsConnector\\Review\\Type\\Flagging::factory",
},
},
Workflows={
LogicObjects={
ActivityRegistry={
approve_revision={
class="\\BlueSpice\\FlaggedRevsConnector\\Workflows\\Activity\\ApprovePageActivity",
services={
"BSFlaggedRevsConnectorUtils","RevisionStore","BSUtilityFactory","UserFactory","BSSecondaryDataUpdater",},
},
},
},
PropertyValidators={
["valid-reviewer"]={
class="\\BlueSpice\\FlaggedRevsConnector\\Workflows\\PropertyValidator\\ValidReviewer",
services={
"UserFactory","PermissionManager",},
},
},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
callback="\\BlueSpice\\FlaggedRevsConnector\\Extension::onRegistration",
GroupPermissions={
sysop={
review=true,
validate=true,
autoreview=true,
autoreviewrestore=true,
unreviewedpages=true,
stablesettings=true,
movestable=true,
},
},
SpecialPages={
QMOverview="\\BlueSpice\\FlaggedRevsConnector\\Special\\QMOverview",
},
APIModules={
["bs-flaggedpages-store"]="\\BlueSpice\\FlaggedRevsConnector\\Api\\Store\\FlaggedPages",
},
ExtensionMessagesFiles={
BlueSpiceQMOverviewAdminAlias="languages/SpecialQMOverview.alias.php",
},
config_prefix="bsg",
config={
FlaggedRevsConnectorautoDeleteWorkflow={
value=true,
descriptionmsg="bs-flaggedrevsconnector-pref-autodeleteworkflow",
public=true,
},
FlaggedRevsConnectorDraftGroups={
value={
"user",},
descriptionmsg="bs-flaggedrevsconnector-pref-draftgroups",
public=true,
},
FlaggedRevsConnectorIndexStableOnly={
value=false,
descriptionmsg="bs-flaggedrevsconnector-pref-indexingstableonly",
public=true,
},
FlaggedRevsConnectorBookshelfShowStable={
value=true,
descriptionmsg="bs-flaggedrevsconnector-pref-bookshelfshowstable",
public=true,
},
FlaggedRevsConnectorBookshelfShowNoStable={
value=true,
descriptionmsg="bs-flaggedrevsconnector-pref-bookshelfshownostable",
public=true,
},
FlaggedRevsConnectorBookshelfShowNoFR={
value=true,
descriptionmsg="bs-flaggedrevsconnector-pref-bookshelfshownofr",
public=true,
},
FlaggedRevsConnectorUEModulePDFShowFRTag={
value=true,
descriptionmsg="bs-flaggedrevsconnector-pref-uemodulepdfshowfrtag",
public=true,
},
FlaggedRevsConnectorFlaggedPagesStore={
value="BlueSpice\\FlaggedRevsConnector\\Data\\FlaggedPages\\Store",
public=false,
},
FlaggedRevsConnectorPageApprovedReminderDelay={
public=false,
value=168,
},
FlaggedRevsConnectorFlaggedRevsHandleIncludes={
value=2,
descriptionmsg="bs-flaggedrevsconnector-pref-handleincludes",
public=true,
},
FlaggedRevsConnectorStabilizeSMWPropertyValues={
public=false,
value=true,
},
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\FlaggedRevsConnector\\HookHandler\\CommonUserInterface",
},
getStableFile={
class="\\BlueSpice\\FlaggedRevsConnector\\HookHandler\\GetStableFile",
services={
"BSFlaggedRevsConnectorUtils","RevisionStore",},
},
changePendingActionText={
class="\\BlueSpice\\FlaggedRevsConnector\\HookHandler\\SkinTemplateNavigation\\ChangePendingActionText",
},
removeFlaggedRevsContentActions={
class="\\BlueSpice\\FlaggedRevsConnector\\HookHandler\\SkinTemplateNavigation\\RemoveFlaggedRevsContentActions",
},
},
Hooks={
["MessageCache::get"]="\\BlueSpice\\FlaggedRevsConnector\\Hook\\MessageCacheGet\\ApplyBusinessVocabulary::callback",
ArticleViewHeader="FRCUEModulePDF::onArticleViewHeader",
PageHistoryLineEnding="FRCHistoryView::onPageHistoryLineEnding",
checkPageIsReviewable="FRCReview::onCheckPageIsReviewable",
FlaggedRevsRevisionReviewFormAfterDoSubmit={
"FRCReview::onFlaggedRevsRevisionReviewFormAfterDoSubmit","\\BlueSpice\\FlaggedRevsConnector\\Hook\\FlaggedRevsRevisionReviewFormAfterDoSubmit\\UpdateSearchIndexAfterSetStable::callback","\\BlueSpice\\FlaggedRevsConnector\\Hook\\FlaggedRevsRevisionReviewFormAfterDoSubmit\\SendReadConfirmationOnApprove::callback",},
ChameleonSkinTemplateOutputPageBeforeExec={
"\\BlueSpice\\FlaggedRevsConnector\\Hook\\ChameleonSkinTemplateOutputPageBeforeExec\\AddFlyout::callback",},
["SkinTemplateNavigation::Universal"]={
"changePendingActionText","removeFlaggedRevsContentActions",},
ImagePageFileHistoryLine={
"BlueSpice\\FlaggedRevsConnector\\Hook\\ImagePageFileHistoryLine\\HideDraftVersions::callback",},
BeforePageDisplay={
"\\BlueSpice\\FlaggedRevsConnector\\Hook\\BeforePageDisplay\\AddResources::callback","\\BlueSpice\\FlaggedRevsConnector\\Hook\\BeforePageDisplay\\ChangeRevisionForEdit::callback","\\BlueSpice\\FlaggedRevsConnector\\Hook\\BeforePageDisplay\\HideFileDraftResources::callback","\\BlueSpice\\FlaggedRevsConnector\\Hook\\BeforePageDisplay\\ChangeRevisionForEdit::callback","\\BlueSpice\\FlaggedRevsConnector\\Hook\\BeforePageDisplay\\HideWarningBoxWithPendingChanges::callback",},
["SMW::RevisionGuard::IsApprovedRevision"]="\\BlueSpice\\FlaggedRevsConnector\\Hook\\SMWRevisionGuard\\IsApprovedFlaggedRevision::callback",
["SMW::RevisionGuard::ChangeRevision"]="\\BlueSpice\\FlaggedRevsConnector\\Hook\\SMWRevisionGuard\\ChangeFlaggedRevision::callback",
["SMW::RevisionGuard::ChangeRevisionID"]="\\BlueSpice\\FlaggedRevsConnector\\Hook\\SMWRevisionGuard\\ChangeFlaggedRevisionId::callback",
LoadExtensionSchemaUpdates="\\BlueSpice\\FlaggedRevsConnector\\Hook\\LoadExtensionSchemaUpdates\\AddRemoveTMPGroupMaintenanceScript::callback",
ImgAuthBeforeStream="\\BlueSpice\\FlaggedRevsConnector\\Hook\\ImgAuthBeforeStream\\LockdownDraft::callback",
BlueSpiceEchoConnectorUserLocatorValidUsers="\\BlueSpice\\FlaggedRevsConnector\\Hook\\BlueSpiceEchoConnectorUserLocatorValidUsers\\LockdownNotifications::callback",
BSExtendedSearchWikipageFetchRevision="\\BlueSpice\\FlaggedRevsConnector\\Hook\\BSExtendedSearchWikipageFetchRevision\\GetStableRevision::callback",
BSExtendedSearchRepoFileGetRepoFile="\\BlueSpice\\FlaggedRevsConnector\\Hook\\BSExtendedSearchRepoFileGetRepoFile\\GetStableFile::callback",
EditPageGetCheckboxesDefinition="\\BlueSpice\\FlaggedRevsConnector\\Hook\\EditPageGetCheckboxesDefinition\\ReplaceVisualEditorAutoReview::callback",
PageSaveComplete="\\BlueSpice\\FlaggedRevsConnector\\Hook\\PageSaveComplete\\AutoReviewAfterVisualEditorEdit::callback",
SpecialPage_initList="\\BlueSpice\\FlaggedRevsConnector\\Hook\\SpecialPageInitList\\RemoveDefaultFRPages::callback",
BeforeParserFetchTemplateAndtitle={
"BlueSpice\\FlaggedRevsConnector\\Hook\\BeforeParserFetchTemplateAndTitle\\SetTransclusionVersion::callback",},
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
DrawioGetFile="getStableFile",
},
composer="bluespice/flaggedrevsconnector",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceFlaggedRevsConnector",
},
BlueSpiceFoundation={
name="BlueSpiceFoundation",
["license-name"]="GPL-3.0-only",
version="4.5.0-alpha",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceFoundation",
descriptionmsg="bluespicefoundation-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
ExtJSBase="&gt;= 3.0.0",
OOJSPlus="&gt;= 2.0.0",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceFoundation={
extPath="/BlueSpiceFoundation",
},
},
ConfigDefinitionRegistry={
Logo="\\BlueSpice\\ConfigDefinition\\Logo::getInstance",
FileExtensions="\\BlueSpice\\ConfigDefinition\\FileExtensions::getInstance",
ImageExtensions="\\BlueSpice\\ConfigDefinition\\ImageExtensions::getInstance",
Favicon="\\BlueSpice\\ConfigDefinition\\Favicon::getInstance",
},
DynamicFileRegistry={
userprofileimage="\\BlueSpice\\DynamicFileDispatcher\\UserProfileImage",
groupimage="\\BlueSpice\\DynamicFileDispatcher\\GroupImage",
articlepreviewimage="\\BlueSpice\\DynamicFileDispatcher\\ArticlePreviewImage",
},
EntityRegistry={
},
GraphicalListRegistry={
},
ExtendedSiteToolRegistry={
},
AdminToolRegistry={
},
PageInfoElementRegistry={
},
PageHeaderBeforeContentRegistry={
},
TagRegistry={
},
PermissionRegistry={
},
RoleRegistry={
admin="\\BlueSpice\\Permission\\Role\\Admin::factory",
editor="\\BlueSpice\\Permission\\Role\\Editor::factory",
reader="\\BlueSpice\\Permission\\Role\\Reader::factory",
author="\\BlueSpice\\Permission\\Role\\Author::factory",
reviewer="\\BlueSpice\\Permission\\Role\\Reviewer::factory",
accountmanager="\\BlueSpice\\Permission\\Role\\AccountManager::factory",
structuremanager="\\BlueSpice\\Permission\\Role\\StructureManager::factory",
maintenanceadmin="\\BlueSpice\\Permission\\Role\\MaintenanceAdmin::factory",
commenter="\\BlueSpice\\Permission\\Role\\Commenter::factory",
accountselfcreate="\\BlueSpice\\Permission\\Role\\AccountSelfCreate::factory",
autocreateaccount="\\BlueSpice\\Permission\\Role\\AutoCreateAccount::factory",
bot="\\BlueSpice\\Permission\\Role\\Bot::factory",
},
RendererRegistry={
list="\\BlueSpice\\Renderer\\SimpleList::factory",
linklist="\\BlueSpice\\Renderer\\LinkList::factory",
userimage="\\BlueSpice\\Renderer\\UserImage::factory",
groupimage="\\BlueSpice\\Renderer\\GroupImage::factory",
entity="\\BlueSpice\\Renderer\\Entity::factory",
},
SkinDataRendererRegistry={
bs_navigation_site="\\BlueSpice\\Renderer\\TreeNavigation",
bs_navigation_globalactions_general="\\BlueSpice\\Renderer\\SimpleList",
bs_navigation_globalactions_admin="\\BlueSpice\\Renderer\\SimpleList",
},
SettingPathRegistry={
feature="bs-setting-path-feature",
extension="bs-setting-path-extension",
package="bs-setting-path-package",
system="bs-setting-path-system",
dataanalysis="bs-setting-path-dataanalysis",
editor="bs-setting-path-editor",
search="bs-setting-path-search",
personalisation="bs-setting-path-personalisation",
skinning="bs-setting-path-skinning",
customizing="bs-setting-path-customizing",
contentstructuring="bs-setting-path-contentstructuring",
communication="bs-setting-path-communication",
administration="bs-setting-path-administration",
qualityassurance="bs-setting-path-qualityassurance",
export="bs-setting-path-export",
},
RunJobsTriggerHandlerRegistry={
},
AlertProviderRegistry={
["bs-readonly-warning"]="\\BlueSpice\\AlertProvider\\ReadOnlyWarning::factory",
["bs-testsystem-warning"]="\\BlueSpice\\AlertProvider\\TestsystemWarning::factory",
},
LessVarsRegistry={
},
TargetCacheRegistry={
title="\\BlueSpice\\TargetCache\\Title",
},
TargetCacheTitleRegistry={
pageprops="\\BlueSpice\\TargetCacheHandler",
},
PermissionLockdownRegistry={
namespaces="\\BlueSpice\\Permission\\Lockdown\\Module\\Namespaces::getInstance",
groups="\\BlueSpice\\Permission\\Lockdown\\Module\\Groups::getInstance",
},
PermissionLockdownGroupModuleRegistry={
},
TaskRegistry={
["wikipage-setlanguagelinks"]="\\BlueSpice\\Task\\WikiPage\\SetLanguageLinks::factory",
["wikipage-setcategories"]="\\BlueSpice\\Task\\WikiPage\\SetCategories::factory",
["wikipage-addcategories"]="\\BlueSpice\\Task\\WikiPage\\AddCategories::factory",
["wikipage-removecategories"]="\\BlueSpice\\Task\\WikiPage\\RemoveCategories::factory",
},
TemplateHanderRegistry={
mustache="\\BlueSpice\\Template\\Mustache::factory",
},
LoadPlaceholders={
CRUDGrid="extensions/BlueSpiceFoundation/resources/templates/loadPlaceholder",
ExtJSGeneric="extensions/BlueSpiceFoundation/resources/templates/loadPlaceholder",
},
JSConfigVars={
},
SecondaryDataUpdateRegistry={
},
},
BlueSpicePrivacy={
CookieConsentNativeMWCookies={
notificationFlag={
group="necessary",
addPrefix=true,
},
},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
SpecialPages={
SpecialCredits="\\BlueSpice\\Special\\Credits",
WikiAdmin="SpecialWikiAdmin",
},
APIModules={
["bs-filebackend-store"]="BSApiFileBackendStore",
["bs-user-store"]="BSApiUserStore",
["bs-category-store"]="BSApiCategoryStore",
["bs-adminuser-store"]="BSApiAdminUserStore",
["bs-group-store"]="BSApiGroupStore",
["bs-interwiki-store"]="BSApiInterwikiStore",
["bs-wikipage-tasks"]="BSApiWikiPageTasks",
["bs-wikipage-store"]="BSApiWikiPageStore",
["bs-wikisubpage-treestore"]="BSApiWikiSubPageTreeStore",
["bs-titlequery-store"]="BSApiTitleQueryStore",
["bs-ping-tasks"]="BSApiPingTasks",
["bs-upload-license-store"]="BSApiUploadLicenseStore",
["bs-category-treestore"]="BSApiCategoryTreeStore",
["bs-watchlist-store"]="BlueSpice\\Api\\Store\\Watchlist",
["bs-recentchanges-store"]="BlueSpice\\Api\\Store\\RecentChanges",
["bs-task"]="\\BlueSpice\\Api\\Task",
["bs-js-var-config"]="\\BlueSpice\\Api\\JSConfigVarsApi",
["bs-templatelinks-store"]="\\BlueSpice\\Api\\Store\\Templatelinks",
["bs-categorylinks-store"]="\\BlueSpice\\Api\\Store\\Categorylinks",
["bs-linker"]="\\BlueSpice\\Api\\Linker",
},
GroupPermissions={
["*"]={
wikiadmin=false,
editor=false,
},
user={
wikiadmin=false,
editor=false,
},
sysop={
wikiadmin=true,
editor=false,
},
},
AvailableRights={
"wikiadmin","editor",},
ExtensionMessagesFiles={
CreditsAlias="languages/BlueSpice.Credits.alias.php",
WikiAdminAlias="languages/BlueSpice.WikiAdmin.alias.php",
},
HookHandlers={
mediawikiservices={
class="\\BlueSpice\\HookHandler\\MediaWikiServices",
},
["bs-ue-module-pdf-integration"]={
class="\\BlueSpice\\HookHandler\\PDFExportHandler",
},
},
Hooks={
SetupAfterCache={
"\\BlueSpice\\Hook\\SetupAfterCache\\AddParamDefinitions::callback",},
SoftwareInfo="BlueSpice\\Hook\\SoftwareInfo\\AddBlueSpice::callback",
BeforePageDisplay={
"\\BlueSpice\\Hook\\BeforePageDisplay\\AddResources::callback","\\BlueSpice\\Hook\\BeforePageDisplay\\AddLoadingIndicator::callback",},
HtmlPageLinkRendererEnd={
"BlueSpice\\Hook\\HtmlPageLinkRendererEnd\\AddDataUserName::callback","BlueSpice\\Hook\\HtmlPageLinkRendererEnd\\AddDataTitle::callback",},
LinkerMakeMediaLinkFile="\\BlueSpice\\Hook\\LinkerMakeMediaLinkFile\\AddDataAttributes::callback",
ThumbnailBeforeProduceHTML="\\BlueSpice\\Hook\\ThumbnailBeforeProduceHTML\\AddDataAttributes::callback",
MakeGlobalVariablesScript={
"\\BlueSpice\\Hook\\MakeGlobalVariablesScript\\AddTaskAPIPermissions::callback","\\BlueSpice\\Hook\\MakeGlobalVariablesScript\\AddDeferredNotifications::callback",},
LoadExtensionSchemaUpdates={
"BlueSpice\\Hook\\LoadExtensionSchemaUpdates\\AddBlueSpice3SettingsAndMigrationMaintenanceScript::callback","BlueSpice\\Hook\\LoadExtensionSchemaUpdates\\AddBlueSpiceUserPropertiesMigrationMaintenanceScript::callback","BlueSpice\\Hook\\LoadExtensionSchemaUpdates\\AddBlueSpiceCleanUpDeletedUsersBlocksMaintenanceScript::callback",},
ParserFirstCallInit={
"BlueSpice\\Hook\\ParserFirstCallInit\\AddTags::callback",},
ExtensionTypes="\\BlueSpice\\Hook\\ExtensionTypes\\AddBlueSpice::callback",
PageSaveComplete={
"\\BlueSpice\\Hook\\PageSaveComplete\\InvalidateArticleHelper::callback","\\BlueSpice\\Hook\\PageSaveComplete\\InvalidateTargetCacheTitle::callback",},
ArticleDeleteComplete="\\BlueSpice\\Hook\\ArticleDeleteComplete\\InvalidateTargetCacheTitle::callback",
PageMoveComplete="\\BlueSpice\\Hook\\PageMoveComplete\\InvalidateTargetCacheTitle::callback",
ResourceLoaderGetConfigVars={
"\\BlueSpice\\Hook\\ResourceLoaderGetConfigVars\\AddVersion::callback","\\BlueSpice\\Hook\\ResourceLoaderGetConfigVars\\AddBSGConfig::callback","\\BlueSpice\\Hook\\ResourceLoaderGetConfigVars\\AddGraphicalListRegistry::callback","\\BlueSpice\\Hook\\ResourceLoaderGetConfigVars\\AddExtendedSiteToolsRegistry::callback","\\BlueSpice\\Hook\\ResourceLoaderGetConfigVars\\AddAssetsPaths::callback","\\BlueSpice\\Hook\\ResourceLoaderGetConfigVars\\AddPingVars::callback",},
getUserPermissionsErrors={
"\\BlueSpice\\Hook\\GetUserPermissionsErrors\\ApplyLockdown::callback",},
SearchableNamespaces={
"BlueSpice\\Hook\\SearchableNamespaces\\ApplySearchableNamespacesLockdown::callback",},
SearchGetNearMatchComplete={
"BlueSpice\\Hook\\SearchGetNearMatchComplete\\ApplyNearMatchLockdown::callback",},
BeforeParserFetchTemplateAndTitle={
"BlueSpice\\Hook\\BeforeParserFetchTemplateAndTitle\\CheckTransclusionPermissions::callback",},
TitleReadWhitelist="\\BlueSpice\\Hook\\TitleReadWhitelist\\AddFooterLinks::callback",
MediaWikiServices="mediawikiservices",
BSUEModulePDFBeforeAddingContent="bs-ue-module-pdf-integration",
},
config_prefix="bsg",
config={
PermissionConfig={
value={
},
},
DefaultUserImage={
value="resources/bluespice/images/bs-user-default-image.png",
path=true,
},
DefaultAnonImage={
value="resources/bluespice/images/bs-user-anon-image.png",
path=true,
},
DefaultGroupImage={
value="resources/bluespice/images/bs-group-default-image.png",
path=true,
},
UIPermissionBlacklist={
value={
"reupload","reupload-shared","minoredit","deletedhistory","editinterface","importupload","patrol","autopatrol","proxyunbannable","trackback","unwatchedpages","autoconfirmed","upload_by_url","ipblock-exempt","blockemail","purge","emailconfirmed","nominornewtalk",},
},
MaintenanceUserName={
value="BSMaintenance",
},
RunJobsTriggerHandlerOptions={
value={
["*"]={
basetime={
1,0,0,},
["once-a-week-day"]="sunday",
},
},
},
CreditsProgrammers={
value={
"Markus Glaser","Radovan Kubani","Sebastian Ulbricht","Marc Reymann","Mathias Scheer","Thomas Lorenz","Tobias Weichart","Robert Vogel","Erwin Forster","Karl Waldmannstetter","Daniel Lynge","Tobias Davids","Patric Wirth","Stephan Muggli","Stefan Widmann","Jan Göttlich","Benedikt Hofmann","Daniel Vogel","Leonid Verhovskij","Gerhard Diller","Mannfred Dennerlein","Dejan Savuljesku","Josef Konrad","Philipp Pirzer","Peter Böhm","Gökhan Geyik","Oleksandr Pinchuck","Dmitry Shevliakov","Jenya Punchenko",},
},
CreditsDesignAndTesting={
value={
"Anja Ebersbach","Richard Heigl","Nathalie Köpff","Michael Rödl","Michael Scherm","Dardan Diugan","Christina Glaser","Christian Graf","Angelika Müller","Karl Skodnik","Astrid Scheffler","Sabine Gürtler","Thomas Schnakenberg","Sabrina Dürr","Tobias Kornprobst","Luisa Roth","Ljubica Sireta","David Schweiger","Florian Bäckmann","Alexander Ziegltrum","Margit Link-Rodrigue",},
},
CreditsContributors={
value={
"Aaron Schulz","Acamicamacaraca","Alangi Derick","addshore","Albert221","Amir Sarabadani","Ammar","Ammarpad","amritsreekumar","Antoine Musso","Aryeh Gregor","Aude","Basil Hershberger","Bill Pirkle","Brad Jorsch","Chad Horohoe","Christian Aistleitner","DannyS712","David Sn","Demon","Derick Alangi","DrishyaR","Florian","Florianschmidtwelzow","Fomafix","Frederic Mohr","Gergő Tisza","Guycn2","hexmode","Holger Knust","idakuch","James D. Forrester","Jayprakash12345","Jforrester","jhsoby","Justin Du","Kunal Mehta","Legoktm","libraryupgrader","MarcoAurelio","Mark A. Hershberger","Max Semenik","MaxSem","MtDu","Nikita Rana","OmkarJ","Ori Livneh","Paladox","Phantom42","Prateek Saxena","Purodha","QChris","Rafid Aslam","Raimond Spekking","Raymond","RazeSoldier","Reedy","rlot","Rohitt Vashishtha","Siebrand Mazeland","Subin Siby","TGC","Tulsi Bhagat","Umherirrender","Yuki Shira","Yuriy Shnitkovskiy","withoutaname","Zoranzoki21",},
},
CreditsTranslation={
value={
"Siebrand Mazeland","Raimond Spekking","Stephan Muggli",},
},
LessVars={
value={
},
},
ExtensionAttributeRegistryOverrides={
description={
"Key is the full extension attribute name, e.g. `BlueSpiceFoundationLessVarsRegistry`","Value is a array that supports three keys:","`set`: Contains an associative array that completely replaces the original value of the attribute.","`merge`: Contains an associative array the will be merged with the original value of the attribute. Will not be evaluated if `set` is defined.","`remove`: Contains a indexed array of keys that should be removed from the original value of the attribute. Will not be evaluated if `set` is defined.",},
value={
},
},
PingOnInit={
descriptionmsg="bs-ping-on-init-desc",
public=true,
value=false,
},
HttpRequestDefaultOptions={
description={
"Default connection options for all HTTP requests made via HttpRequestFactory",},
public=false,
value={
},
},
UseRealNameForUserLinks={
description="Replace the user name with the real name in user links",
public=true,
value=true,
},
},
ConfigRegistry={
bsg="BlueSpice\\Config::newInstance",
},
callback="\\BlueSpice\\Foundation::onRegistry",
composer="bluespice/foundation",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceFoundation",
},
BlueSpiceGroupManager={
name="BlueSpiceGroupManager",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceGroupManager",
author={
"Markus Glaser","Sebastian Ulbricht",},
descriptionmsg="bs-groupmanager-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceGroupManager={
className="\\BlueSpice\\GroupManager\\Extension",
extPath="/BlueSpiceGroupManager",
},
},
PermissionRegistry={
["groupmanager-viewspecialpage"]={
type="global",
roles={
"accountmanager","admin","maintenanceadmin",},
},
},
AdminToolRegistry={
["bs-group-manager"]="BlueSpice\\GroupManager\\AdminTool",
},
},
},
GroupPermissions={
["*"]={
["groupmanager-viewspecialpage"]=false,
},
user={
["groupmanager-viewspecialpage"]=false,
},
sysop={
["groupmanager-viewspecialpage"]=true,
},
},
AvailableRights={
"groupmanager-viewspecialpage",},
SpecialPages={
GroupManager="SpecialGroupManager",
},
LogTypes={
"bs-group-manager",},
FilterLogTypes={
["bs-group-manager"]=true,
},
LogActionsHandlers={
["bs-group-manager/*"]="LogFormatter",
},
APIModules={
["bs-groupmanager"]="BSApiTasksGroupManager",
},
ExtensionMessagesFiles={
SpecialGroupManagerAlias="includes/specials/SpecialGroupManager.alias.php",
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\GroupManager\\HookHandler\\CommonUserInterface",
},
registerDynamicConfig={
class="\\BlueSpice\\GroupManager\\Hook\\RegisterDynamicConfig",
},
},
Hooks={
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
LoadExtensionSchemaUpdates={
"\\BlueSpice\\GroupManager\\Hook\\LoadExtensionSchemaUpdates\\MigrateGmSettings::callback","\\BlueSpice\\GroupManager\\Hook\\LoadExtensionSchemaUpdates\\AddCleanUpUserGroupTableMaintenanceScript::callback",},
MWStakeDynamicConfigRegisterConfigs="registerDynamicConfig",
},
callback="mwsInitComponents",
composer="bluespice/groupmanager",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceGroupManager",
},
BlueSpiceHideTitle={
name="BlueSpiceHideTitle",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceHideTitle",
author={
"Markus Glaser","Peter Boehm",},
descriptionmsg="bs-hidetitle-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceHideTitle={
className="\\BlueSpice\\HideTitle\\Extension",
extPath="/BlueSpiceHideTitle",
},
},
},
BlueSpiceVisualEditorConnector={
PluginModules={
"ext.bluespice.hideTitle.visualEditorPlugin",},
},
BlueSpiceHideTitle={
CssSelectorModules={
default={
class="\\BlueSpice\\HideTitle\\DefaultCssSelectorModule",
},
},
},
},
ExtensionMessagesFiles={
HideTitleMagic="languages/HideTitle.i18n.magic.php",
},
Hooks={
BeforePageDisplay="\\BlueSpice\\HideTitle\\Hook\\BeforePageDisplay\\AddModules::callback",
GetDoubleUnderscoreIDs="\\BlueSpice\\HideTitle\\Hook\\GetDoubleUnderscoreIDs\\AddHideTitle::callback",
BSUsageTrackerRegisterCollectors="\\BlueSpice\\HideTitle\\Hook\\BSUsageTrackerRegisterCollectors\\AddHideTitleTag::callback",
OutputPageBodyAttributes="\\BlueSpice\\HideTitle\\Hook\\OutputPageBodyAttributes\\HideTitleBodyClass::onOutputPageBodyAttributes",
},
composer="bluespice/hidetitle",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceHideTitle",
},
BlueSpiceInsertCategory={
name="BlueSpiceInsertCategory",
["license-name"]="GPL-3.0-only",
version="4.3.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceInsertCategory",
author={
"Markus Glaser","Sebastian Ulbricht","Stefan Widmann",},
descriptionmsg="bs-insertcategory-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceInsertCategory={
className="\\BlueSpice\\InsertCategory\\Extension",
extPath="/BlueSpiceInsertCategory",
},
},
ConfigDefinitionRegistry={
InsertCategoryWithParents="\\BlueSpice\\InsertCategory\\ConfigDefinition\\WithParents::getInstance",
InsertCategoryUploadPanelIntegration="\\BlueSpice\\InsertCategory\\ConfigDefinition\\UploadPanelIntegration::getInstance",
},
},
BlueSpiceDiscovery={
MetaItemProviderRegistry={
categories={
class="\\BlueSpice\\InsertCategory\\MetaItemProvider\\Categories",
},
},
},
},
config_prefix="bsg",
config={
InsertCategoryWithParents={
value=false,
descriptionmsg="bs-insertcategory-pref-withparents",
},
InsertCategoryUploadPanelIntegration={
value=false,
descriptionmsg="bs-insertcategory-pref-uploadpanelintegration",
},
},
HookHandlers={
addInsertCategoryAction={
class="\\BlueSpice\\InsertCategory\\HookHandler\\AddInsertCategoryAction",
},
},
Hooks={
["SkinTemplateNavigation::Universal"]="addInsertCategoryAction",
BeforePageDisplay="\\BlueSpice\\InsertCategory\\Hook\\BeforePageDisplay\\AddResources::callback",
},
composer="bluespice/insertcategory",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceInsertCategory",
},
BlueSpiceInsertFile={
name="BlueSpiceInsertFile",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceInsertFile",
author={
"Markus Glaser","Sebastian Ulbricht","Robert Vogel",},
descriptionmsg="bs-insertfile-desc",
type="bluespice",
["license-name"]="GPL-3.0-only",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceInsertFile={
className="\\BlueSpice\\InsertFile\\Extension",
extPath="/BlueSpiceInsertFile",
},
},
},
BlueSpiceVisualEditorConnector={
PluginModules={
"ext.bluespice.insertFile.visualEditorPlugin",},
},
},
APIModules={
["bs-insertfile-license-store"]="BSApiInsertFileLicenseStore",
},
composer="bluespice/insertfile",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceInsertFile",
},
BlueSpiceInsertLink={
name="BlueSpiceInsertLink",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceInsertLink",
author={
"Markus Glaser","Sebastian Ulbricht","Patric Wirth",},
descriptionmsg="bs-insertlink-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceVisualEditorConnector="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceInsertLink={
className="\\BlueSpice\\InsertLink\\Extension",
extPath="/BlueSpiceInsertLink",
},
},
ConfigDefinitionRegistry={
InsertLinkAllowUnMapped="\\BlueSpice\\InsertLink\\ConfigDefinition\\AllowUnMapped::getInstance",
InsertLinkFilesystemMap="\\BlueSpice\\InsertLink\\ConfigDefinition\\FilesystemMap::getInstance",
},
},
BlueSpiceVisualEditorConnector={
PluginModules={
"ext.bluespice.insertlink.visualEditorPlugin",},
},
},
ExtensionMessagesFiles={
InsertLinkAlias="languages/InsertLink.alias.php",
},
SpecialPages={
InsertLinkFileChooserJNLP="SpecialInsertLinkFileChooserJNLP",
},
Hooks={
BeforePageDisplay="\\BlueSpice\\InsertLink\\Hook\\BeforePageDisplay\\AddConfigs::callback",
},
config_prefix="bsg",
config={
InsertLinkEnableJava={
value=false,
},
InsertLinkFilesystemMap={
value={
},
},
InsertLinkAllowUnMapped={
value=true,
},
},
composer="bluespice/insertlink",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceInsertLink",
},
BlueSpiceInsertTemplate={
name="BlueSpiceInsertTemplate",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceInsertTemplate",
author={
"Josef Konrad","Robert Vogel",},
descriptionmsg="bs-insertTemplate-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceInsertTemplate={
className="\\BlueSpice\\InsertTemplate\\Extension",
extPath="/BlueSpiceInsertTemplate",
},
},
},
},
config_prefix="bsg",
config={
InsertTemplateFavorites={
value={
},
},
},
APIModules={
["bs-inserttemplate-store"]="BSApiInsertTemplateTemplateStore",
},
composer="bluespice/inserttemplate",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceInsertTemplate",
},
BlueSpiceInstanceStatus={
name="BlueSpiceInstanceStatus",
version="4.3.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[http://www.hallowelt.com Hallo Welt! GmbH]",},
url="http://www.bluespice.com",
descriptionmsg="bs-instancestatus-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
},
ExtensionMessagesFiles={
BlueSpiceInstanceStatusAlias="languages/InstanceStatus.alias.php",
},
attributes={
BlueSpiceInstanceStatus={
PluginModules={
"ext.bs.instancestatus.overview",},
InstanceStatusProvider={
bluespiceversion={
class="BlueSpice\\InstanceStatus\\InstanceStatusProvider\\BlueSpiceVersion",
services={
"ConfigFactory",},
},
created={
class="BlueSpice\\InstanceStatus\\InstanceStatusProvider\\Created",
services={
"DBLoadBalancer","ContentLanguage",},
},
lastupdate={
class="BlueSpice\\InstanceStatus\\InstanceStatusProvider\\LastUpdate",
services={
"DBLoadBalancer","ContentLanguage",},
},
salescontact={
class="BlueSpice\\InstanceStatus\\InstanceStatusProvider\\SalesContact",
services={
"ConfigFactory",},
},
},
},
},
SpecialPages={
InstanceStatus={
class="BlueSpice\\InstanceStatus\\Special\\InstanceStatus",
services={
"ObjectFactory",},
},
},
config_prefix="bsg",
config={
InstanceStatusBSContactLink={
value="https://bluespice.com/contact/",
},
},
Hooks={
MWStakeCommonUIRegisterSkinSlotComponents="addGlobalAction",
},
HookHandlers={
addGlobalAction={
class="BlueSpice\\InstanceStatus\\Hook\\AddGlobalAction",
services={
"SpecialPageFactory",},
},
},
composer="bluespice/instancestatus",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceInstanceStatus",
},
BlueSpiceInterWikiLinks={
name="BlueSpiceInterWikiLinks",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceInterWikiLinks",
author={
"Markus Glaser","Sebastian Ulbricht","Leonid Verhovskij",},
descriptionmsg="bs-interwikilinks-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceInterWikiLinks={
className="\\BlueSpice\\InterWikiLinks\\Extension",
extPath="/BlueSpiceInterWikiLinks",
},
},
PermissionRegistry={
["interwikilinks-viewspecialpage"]={
type="global",
roles={
"admin","editor","maintenanceadmin",},
},
},
AdminToolRegistry={
["bs-interwikilinks-manager"]="BlueSpice\\InterWikiLinks\\AdminTool",
},
},
},
GroupPermissions={
["*"]={
["interwikilinks-viewspecialpage"]=false,
},
user={
["interwikilinks-viewspecialpage"]=false,
},
sysop={
["interwikilinks-viewspecialpage"]=true,
},
},
AvailableRights={
"interwikilinks-viewspecialpage",},
SpecialPages={
InterWikiLinks="SpecialInterWikiLinks",
},
APIModules={
["bs-interwikilinks-tasks"]="BSApiTasksInterWikiLinksManager",
},
ExtensionMessagesFiles={
InterWikiLinksAlias="includes/specials/SpecialInterWikiLinks.alias.php",
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\InterWikiLinks\\HookHandler\\CommonUserInterface",
},
},
Hooks={
BeforePageDisplay="\\BlueSpice\\InterWikiLinks\\Hook\\BeforePageDisplay\\AddResources::callback",
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
},
composer="bluespice/interwikilinks",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceInterWikiLinks",
},
BlueSpiceInterwikiSearch={
name="BlueSpiceInterwikiSearch",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"Dejan Savuljesku &lt;savuljesku@hallowelt.com&gt;",},
url="http://www.bluespice.com",
descriptionmsg="bs-interwikisearch-desc",
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceInterwikiSearch={
className="\\BlueSpice\\InterwikiSearch\\Extension",
extPath="/BlueSpiceInterwikiSearch",
status="beta",
package="BlueSpice Pro",
configDefinitions={
InterwikiSearchSearchInOtherWikis="\\BlueSpice\\InterwikiSearch\\ConfigDefinition\\SearchInOtherWikis::getInstance",
InterwikiSearchSilentOnError="\\BlueSpice\\InterwikiSearch\\ConfigDefinition\\SilentOnError::getInstance",
},
},
},
},
},
requires={
MediaWiki="&gt;= 1.39.0",
},
config_prefix="bsg",
config={
InterwikiSearchSources={
value={
},
},
InterwikiSearchSearchInOtherWikis={
value=true,
descriptionmsg="bs-interwikisearch-pref-searchinotherwikis",
public=true,
},
InterwikiSearchSilentOnError={
value=false,
descriptionmsg="bs-interwikisearch-pref-silentonerror",
public=true,
},
},
Hooks={
BeforePageDisplay="BlueSpice\\InterwikiSearch\\Hook\\BeforePageDisplay\\AddModules::callback",
},
composer="bluespice/interwikisearch",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceInterwikiSearch",
},
BlueSpiceMultiUpload={
name="BlueSpiceMultiUpload",
version="4.2.0-alpha",
author={
"Robert Vogel","Leonid Verhovskij",},
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceMultiUpload",
descriptionmsg="bs-multiupload-desc",
["license-name"]="GPL-3.0-only",
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceMultiUpload={
className="\\BlueSpice\\MultiUpload\\Extension",
extPath="/BlueSpiceMultiUpload",
},
},
},
},
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
Hooks={
BeforePageDisplay="\\BlueSpice\\MultiUpload\\Hook\\BeforePageDisplay\\AddResources::callback",
BeforePageDisplayMobile="BlueSpiceMultiUploadHooks::onBeforePageDisplayMobile",
MobileMenu="BlueSpiceMultiUploadHooks::onMobileMenu",
ParserFirstCallInit="BlueSpice\\MultiUpload\\Hook\\ParserFirstCallInit\\AddTags::callback",
},
config_prefix="bsg",
config={
MultiUploadIntegrateWithUploadLink={
value=true,
},
},
composer="bluespice/multiupload",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceMultiUpload",
},
BlueSpiceNSFileRepoConnector={
name="BlueSpiceNSFileRepoConnector",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
author="[mailto:vogel@hallowelt.com Robert Vogel (Hallo Welt! GmbH)]",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceNSFileRepoConnector",
descriptionmsg="bs-nsfrc-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
NSFileRepo="&gt;= 2.0.0",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceNSFileRepoConnector={
className="\\BlueSpice\\NSFileRepoConnector\\Extension",
extPath="/BlueSpiceNSFileRepoConnector",
},
},
},
BlueSpiceVisualEditorConnector={
PluginModules={
"ext.bluespice.NSFRC.uploadDialogIntegration",},
},
},
ExtensionFunctions={
"NSFileRepoConnectorHooks::setup",},
APIModules={
["bs-nsfilerepo-connector"]="BSApiNSFileRepoConnector",
["bs-nsfrc-tasks"]="BSApiNSFileRepoConnector",
},
Hooks={
BeforePageDisplay="\\BlueSpice\\NSFileRepoConnector\\Hook\\BeforePageDisplay\\AddResources::callback",
BSApiExtJSStoreBaseBeforePostProcessData="NSFileRepoConnectorHooks::onBSApiExtJSStoreBaseBeforePostProcessData",
BSApiExtJSStoreBaseAfterFilterData="NSFileRepoConnectorHooks::onBSApiExtJSStoreBaseAfterFilterData",
WebDAVUrlProviderGetUrl="NSFileRepoConnectorHooks::onWebDAVUrlProviderGetUrl",
MakeGlobalVariablesScript="NSFileRepoConnectorHooks::onMakeGlobalVariablesScript",
BSUEModulePDFFindFiles="NSFileRepoConnectorHooks::onBSUEModulePDFFindFiles",
BSImportFilesMakeTitle="NSFileRepoConnectorHooks::onBSImportFilesMakeTitle",
BSExportFilesBeforeSave="NSFileRepoConnectorHooks::onBSExportFilesBeforeSave",
BSExtendedSearchSearchOptionsAssembleSearchOptions="NSFRCBSExtendedSearchSearchOptionsAssembleSearchOptions::handle",
WebDAVGetFilenameFromUrl="NSFileRepoConnectorHooks::onWebDAVGetFilenameFromUrl",
},
composer="bluespice/nsfilerepoconnector",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceNSFileRepoConnector",
},
BlueSpiceNamespaceCSS={
name="BlueSpiceNamespaceCSS",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:NamespaceCss",
author={
"Robert Vogel","Tobias Weichart","Patric Wirth",},
descriptionmsg="bs-namespacecss-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.36.0",
extensions={
BlueSpiceFoundation="&gt;= 4.1",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceNamespaceCSS={
className="\\BlueSpice\\NamespaceCSS\\Extension",
extPath="/BlueSpiceNamespaceCSS",
},
},
AdminToolRegistry={
["bs-namespacecss-manager"]="\\BlueSpice\\NamespaceCSS\\AdminTool",
},
},
},
ExtensionMessagesFiles={
BlueSpiceNamespaceCSSManagerAlias="languages/SpecialNamespaceCSSManager.alias.php",
},
SpecialPages={
BlueSpiceNamespaceCSSManager="\\BlueSpice\\NamespaceCSS\\Special\\Manager",
},
APIModules={
["bs-namespacecss-store"]="\\BlueSpice\\NamespaceCSS\\Api\\Store\\NamespaceCSS",
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\NamespaceCSS\\HookHandler\\CommonUserInterface",
},
},
Hooks={
BeforePageDisplay="\\BlueSpice\\NamespaceCSS\\Hook\\BeforePageDisplay\\AddResources::callback",
LoadExtensionSchemaUpdates="\\BlueSpice\\NamespaceCSS\\Hook\\LoadExtensionSchemaUpdates\\AddMoveToDotPostDatabaseMaintenance::callback",
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
},
config_prefix="bsg",
config={
NamespaceCSSExcludeNamespaces={
value={
-2,},
},
},
composer="bluespice/namespacecss",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceNamespaceCSS",
},
BlueSpiceNamespaceManager={
name="BlueSpiceNamespaceManager",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceNamespaceManager",
author={
"Sebastian Ulbricht","Stefan Widmann","Robert Vogel",},
descriptionmsg="bs-namespacemanager-desc",
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceNamespaceManager={
className="\\BlueSpice\\NamespaceManager\\Extension",
extPath="/BlueSpiceNamespaceManager",
},
},
AdminToolRegistry={
["bs-namespace-manager"]="BlueSpice\\NamespaceManager\\AdminTool",
},
PermissionRegistry={
["namespacemanager-viewspecialpage"]={
type="namespace",
roles={
"admin","maintenanceadmin","structuremanager",},
},
},
},
},
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
LogTypes={
"bs-namespace-manager",},
FilterLogTypes={
["bs-namespace-manager"]=true,
},
LogActionsHandlers={
["bs-namespace-manager/*"]="LogFormatter",
},
APIModules={
["bs-namespace-store"]="BSApiNamespaceStore",
["bs-namespace-tasks"]="BSApiNamespaceTasks",
},
SpecialPages={
NamespaceManager="SpecialNamespaceManager",
},
ExtensionMessagesFiles={
NamespaceManagerAlias="includes/specials/SpecialNamespaceManager.alias.php",
},
config_prefix="bsg",
config={
NamespaceManagerNsOffset={
value=2999,
},
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\NamespaceManager\\HookHandler\\CommonUserInterface",
},
registerDynamicConfig={
class="\\BlueSpice\\NamespaceManager\\Hook\\RegisterDynamicConfig",
services={
"HookContainer",},
},
persistNamespaceFlags={
class="BlueSpice\\NamespaceManager\\Hook\\NamespaceManagerBeforePersistSettings\\PersistNamespaceFlags",
},
},
Hooks={
LoadExtensionSchemaUpdates={
"\\BlueSpice\\NamespaceManager\\Hook\\LoadExtensionSchemaUpdates\\MigrateLegacySettings::callback",},
["NamespaceManager::editNamespace"]={
"\\BlueSpice\\NamespaceManager\\Hook\\NamespaceManagerEditNamespace\\SetContentFlag::callback","\\BlueSpice\\NamespaceManager\\Hook\\NamespaceManagerEditNamespace\\SetSubPagesFlag::callback",},
NamespaceManagerBeforePersistSettings="persistNamespaceFlags",
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
MWStakeDynamicConfigRegisterConfigs="registerDynamicConfig",
},
GroupPermissions={
sysop={
["namespacemanager-viewspecialpage"]=true,
},
},
AvailableRights={
"namespacemanager-viewspecialpage",},
callback="mwsInitComponents",
composer="bluespice/namespacemanager",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceNamespaceManager",
},
BlueSpicePageAccess={
name="BlueSpicePageAccess",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpicePageAccess",
author="Marc Reymann",
descriptionmsg="bs-pageaccess-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpicePageAccess={
className="\\BlueSpice\\PageAccess\\Extension",
extPath="/BlueSpicePageAccess",
},
},
TagRegistry={
pageaccess="\\BlueSpice\\PageAccess\\Tag\\PageAccess",
},
AlertProviderRegistry={
["bs-pageaccess-accessstate"]="\\BlueSpice\\PageAccess\\AlertProvider\\AccessState::factory",
},
PermissionRegistry={
["pageaccess-viewspecialpage"]={
type="global",
roles={
"admin","maintenanceadmin","structuremanager",},
},
},
PermissionLockdownRegistry={
["pageaccess-blockactionsontagpageaccess"]="\\BlueSpice\\PageAccess\\Permission\\Lockdown\\Module\\BlockActionsOnTagPageAccess::getInstance",
},
},
BlueSpiceVisualEditorConnector={
TagDefinitions={
"ext.bluespice.pageaccess.visualEditorTagDefinition",},
},
ContentDroplets={
Droplets={
["page-access"]={
class="\\BlueSpice\\PageAccess\\ContentDroplets\\AccessDroplet",
},
},
},
},
GroupPermissions={
["*"]={
["pageaccess-viewspecialpage"]=false,
},
user={
["pageaccess-viewspecialpage"]=true,
},
sysop={
["pageaccess-viewspecialpage"]=true,
},
},
AvailableRights={
"pageaccess-viewspecialpage",},
SpecialPages={
PageAccess="SpecialPageAccess",
},
APIModules={
["bs-pageaccess-store"]="BSApiPageAccessStore",
},
LogTypes={
"bs-pageaccess",},
FilterLogTypes={
["bs-pageaccess"]=true,
},
LogActionsHandlers={
["bs-pageaccess/*"]="LogFormatter",
},
ExtensionMessagesFiles={
BlueSpicePageAccessAlias="includes/specials/SpecialPageAccess.alias.php",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
Hooks={
PageContentSave="\\BlueSpice\\PageAccess\\Hook\\PageContentSave\\EditPageAccess::callback",
BSUsageTrackerRegisterCollectors="\\BlueSpice\\PageAccess\\Hook\\BSUsageTrackerRegisterCollectors\\AddPageAccessTag::callback",
},
config_prefix="bsg",
config={
PageAccessBlockableActions={
value={
"read","edit","delete","move",},
},
},
composer="bluespice/pageaccess",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpicePageAccess",
},
BlueSpicePageAssignments={
name="BlueSpicePageAssignments",
author={
"Robert Vogel","Patric Wirth","Leonid Verhovskij",},
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpicePageAssignments",
type="bluespice",
version="4.5",
descriptionmsg="bs-pageassignments-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpicePageAssignments={
className="\\BlueSpice\\PageAssignments\\Extension",
extPath="/BlueSpicePageAssignments",
},
},
ConfigDefinitionRegistry={
PageAssignmentsLockdownGroups="\\BlueSpice\\PageAssignments\\ConfigDefinition\\LockdownGroups::getInstance",
},
TargetCacheTitleRegistry={
["pageassignments-everyone-blacklist"]="\\BlueSpice\\TargetCacheHandler",
},
AdminToolRegistry={
["bs-pageassignments-manager"]="BlueSpice\\PageAssignments\\AdminTool",
},
PermissionRegistry={
pageassignable={
type="namespace",
roles={
"reader","admin","author","editor","maintenanceadmin","reviewer",},
},
pageassignments={
type="namespace",
roles={
"admin","maintenanceadmin","reviewer",},
},
},
RendererRegistry={
assignment="\\BlueSpice\\PageAssignments\\Renderer\\Assignment::factory",
["assignment-user"]="\\BlueSpice\\PageAssignments\\Renderer\\User::factory",
["pageheader-assignments"]="\\BlueSpice\\PageAssignments\\Renderer\\PageHeaderAssignments::factory",
["pageheader-assignments-base"]="\\BlueSpice\\PageAssignments\\Renderer\\PageHeaderAssignmentBase::factory",
["pageheader-assignments-user"]="\\BlueSpice\\PageAssignments\\Renderer\\PageHeaderAssignmentUser::factory",
},
LessVarsRegistry={
["bs-pageassignments-icon-specialeveryone-color"]="@bs-color-tertiary",
},
PermissionLockdownRegistry={
["pageassignments-secure"]="\\BlueSpice\\PageAssignments\\Permission\\Lockdown\\Module\\Secure::getInstance",
},
PermissionLockdownGroupModuleRegistry={
pageassignments="\\BlueSpice\\PageAssignments\\Permission\\Lockdown\\Module\\Groups\\PageAssignment::getInstance",
},
PageHeaderBeforeContentRegistry={
["pageheader-assignments"]="\\BlueSpice\\PageAssignments\\Renderer\\PageHeaderAssignments::factory",
},
},
BlueSpicePageAssignments={
TargetRegistry={
title="\\BlueSpice\\PageAssignments\\TitleTarget",
},
TypeRegistry={
group="\\BlueSpice\\PageAssignments\\Assignable\\Group",
user="\\BlueSpice\\PageAssignments\\Assignable\\User",
specialeveryone="\\BlueSpice\\PageAssignments\\Assignable\\Everyone",
},
},
BlueSpicePrivacy={
Handlers={
"\\BlueSpice\\PageAssignments\\Privacy\\Handler",},
},
BlueSpiceSMWConnector={
ExtraPropertyRegistry={
pageassignment="\\BlueSpice\\PageAssignments\\PageAssignmentsPropertyValueProvider::factory",
},
},
BlueSpiceExtendedStatistics={
SnapshotProviders={
["pa-assignedpages"]={
class="\\BlueSpice\\PageAssignments\\Statistics\\SnapshotProvider\\AssignedPages",
services={
"DBLoadBalancer",},
},
},
Reports={
["pa-assignedpages"]={
class="\\BlueSpice\\PageAssignments\\Statistics\\Report\\AssignedPages",
},
},
},
Notifications={
ManualSubscriberProviderSets={
["pa-assigned-pages"]={
class="\\BlueSpice\\PageAssignments\\Notifications\\SubscriberProviderSet\\Assigned",
services={
"DBLoadBalancer","BSPageAssignmentsAssignmentFactory","UserGroupManager",},
},
},
Events={
["bs-pa-assignment-add"]={
spec={
class="\\BlueSpice\\PageAssignments\\Event\\AssignmentAddEvent",
},
buckets={
"personal",},
},
["bs-pa-assignment-remove"]={
spec={
class="\\BlueSpice\\PageAssignments\\Event\\AssignmentRemoveEvent",
},
buckets={
"personal",},
},
},
},
BlueSpiceBookshelf={
CreateNewBookModules={
"ext.pageassignments.bookshelf.createNewBook",},
},
},
GroupPermissions={
["*"]={
pageassignable=false,
pageassignments=false,
},
user={
pageassignable=true,
pageassignments=false,
},
sysop={
pageassignable=true,
pageassignments=true,
},
},
AvailableRights={
"pageassignable","pageassignments",},
DefaultUserOptions={
["echo-subscriptions-web-bs-pageassignments-action-cat"]=true,
["echo-subscriptions-email-bs-pageassignments-action-cat"]=true,
},
SpecialPages={
PageAssignments="SpecialPageAssignments",
ManagePageAssignments="SpecialManagePageAssignments",
},
LogTypes={
"bs-pageassignments",},
FilterLogTypes={
["bs-pageassignments"]=true,
},
LogActionsHandlers={
["bs-pageassignments/*"]="LogFormatter",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
APIModules={
["bs-pageassignable-store"]="\\BlueSpice\\PageAssignments\\Api\\Store\\Assignable",
["bs-pageassignment-store"]="\\BlueSpice\\PageAssignments\\Api\\Store\\Page",
["bs-mypageassignment-store"]="BSApiMyPageAssignmentStore",
["bs-pageassignment-tasks"]="\\BlueSpice\\PageAssignments\\Api\\Task\\PageAssignments",
},
ExtensionMessagesFiles={
PageAssignmentsAlias="languages/PageAssignments.alias.php",
},
config_prefix="bsg",
config={
PageAssignmentsLockdownGroups={
value={
"user",},
descriptionmsg="bs-pageassignments-pref-lockdowngroups",
public=true,
},
PageAssignmentsActivatedTypes={
value={
"user","group",},
},
PageAssignmentsUseAdditionalPermissions={
value=false,
},
PageAssignmentsSecureEnabledNamespaces={
value={
},
},
PageAssignmentsSecureRemoveRightList={
value={
"edit",},
},
PageAssignmentsTarget={
value="title",
},
PageAssignmentsPageHeaderLimit={
value=3,
},
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\PageAssignments\\HookHandler\\CommonUserInterface",
},
["discovery-skin"]={
class="\\BlueSpice\\PageAssignments\\HookHandler\\DiscoverySkin",
},
["standard-dialogs"]={
class="\\BlueSpice\\PageAssignments\\HookHandler\\StandardDialogs",
},
addMyPageAssignments={
class="\\BlueSpice\\PageAssignments\\HookHandler\\SkinTemplateNavigation\\AddMyPageAssignments",
},
addPageAssignmentsEntry={
class="\\BlueSpice\\PageAssignments\\HookHandler\\SkinTemplateNavigation\\AddPageAssignmentsEntry",
},
writeNamespaceConfiguration={
class="\\BlueSpice\\PageAssignments\\Hook\\WriteNamespaceConfiguration",
},
["bs-books-overview-page-actions"]={
class="\\BlueSpice\\PageAssignments\\HookHandler\\BSBookshelf",
},
},
Hooks={
LoadExtensionSchemaUpdates={
"\\BlueSpice\\PageAssignments\\Hook\\LoadExtensionSchemaUpdates\\AddPageAssignmentsTable::callback","\\BlueSpice\\PageAssignments\\Hook\\LoadExtensionSchemaUpdates\\AddMigrateRespEditorsUpdateMaintenance::callback",},
["SkinTemplateNavigation::Universal"]={
"addMyPageAssignments","addPageAssignmentsEntry",},
BeforePageDisplay={
"\\BlueSpice\\PageAssignments\\Hook\\BeforePageDisplay\\AddResources::callback","\\BlueSpice\\PageAssignments\\Hook\\BeforePageDisplay\\AddWikiExplorerResources::callback",},
PageMoveComplete="\\BlueSpice\\PageAssignments\\Hook\\PageMoveComplete\\MoveAssignments::callback",
ArticleDeleteComplete={
"PageAssignmentsHooks::onArticleDeleteComplete",},
BSBookshelfBookManager="PageAssignmentsBookmakerHooks::onBSBookshelfBookManager",
BSBookshelfManagerGetBookDataRow="PageAssignmentsBookmakerHooks::onBSBookshelfManagerGetBookDataRow",
BSUEModulePDFcollectMetaData="PageAssignmentsBookmakerHooks::onBSUEModulePDFcollectMetaData",
["WikiExplorer::getFieldDefinitions"]="PageAssignmentsWikiExplorerHooks::onWikiExplorerGetFieldDefinitions",
["WikiExplorer::getColumnDefinitions"]="PageAssignmentsWikiExplorerHooks::onWikiExplorerGetColumnDefinitions",
["WikiExplorer::queryPagesWithFilter"]="PageAssignmentsWikiExplorerHooks::onWikiExplorerQueryPagesWithFilter",
["WikiExplorer::buildDataSets"]="PageAssignmentsWikiExplorerHooks::onWikiExplorerBuildDataSets",
BSDashboardsUserDashboardPortalConfig="PageAssignmentsDashboardHooks::onBSDashboardsUserDashboardPortalConfig",
BSDashboardsUserDashboardPortalPortlets="PageAssignmentsDashboardHooks::onBSDashboardsUserDashboardPortalPortlets",
BSUsageTrackerRegisterCollectors="\\BlueSpice\\PageAssignments\\Hook\\BSUsageTrackerRegisterCollectors\\AddPageAssignmentsPagesTag::callback",
BSUserManagerAfterDeleteUser="PageAssignmentsHooks::onBSUserManagerAfterDeleteUser",
BSGroupManagerGroupNameChanged="PageAssignmentsHooks::onBSGroupManagerGroupNameChanged",
BSGroupManagerGroupDeleted="PageAssignmentsHooks::onBSGroupManagerGroupDeleted",
["NamespaceManager::getMetaFields"]="\\BlueSpice\\PageAssignments\\Hook\\NamespaceManagerGetMetaFields\\RegisterMetaFields::callback",
BSApiNamespaceStoreMakeData="\\BlueSpice\\PageAssignments\\Hook\\BSApiNamespaceStoreMakeData\\AddData::callback",
["NamespaceManager::editNamespace"]="\\BlueSpice\\PageAssignments\\Hook\\NamespaceManagerEditNamespace\\SetValues::callback",
NamespaceManagerBeforePersistSettings="writeNamespaceConfiguration",
MergeAccountFromTo="\\BlueSpice\\PageAssignments\\Hook\\MergeAccountFromTo\\MergePageAssignmentsDBFields::callback",
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
BlueSpiceDiscoveryTemplateDataProviderAfterInit="discovery-skin",
StandardDialogsRegisterPageInfoPanelModules="standard-dialogs",
BSBookshelfBooksOverviewBeforeSetBookActions="bs-books-overview-page-actions",
},
composer="bluespice/pageassignments",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpicePageAssignments",
},
BlueSpicePageFormsConnector={
name="BlueSpicePageFormsConnector",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpicePageFormsConnector",
author="Dejan Savuljesku",
descriptionmsg="bs-pageformsconnector-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
PageForms="&gt;= 5.4",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpicePageFormsConnector={
className="\\BlueSpice\\PageFormsConnector\\Extension",
extPath="/BlueSpicePageFormsConnector",
},
},
},
BlueSpiceSaferEdit={
EnvironmentCheckers={
formedit="\\BlueSpice\\PageFormsConnector\\SaferEdit\\EnvironmentChecker\\FormEdit::factory",
},
},
BlueSpiceDiscovery={
BreadcrumbDataProviderRegistry={
["form-edit"]={
class="BlueSpice\\PageFormsConnector\\BreadcrumbDataProvider\\FormEditProvider",
},
},
},
},
Hooks={
BeforePageDisplay="\\BlueSpice\\PageFormsConnector\\Hook\\BeforePageDisplay\\AddModuleStyles::callback",
},
composer="bluespice/pageformsconnector",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpicePageFormsConnector",
},
BlueSpicePageTemplates={
name="BlueSpicePageTemplates",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpicePageTemplates",
author={
"Markus Glaser","Stephan Muggli",},
descriptionmsg="bs-pagetemplates-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpicePageTemplates={
className="\\BlueSpice\\PageTemplates\\Extension",
extPath="/BlueSpicePageTemplates",
},
},
ConfigDefinitionRegistry={
PageTemplatesForceNamespace="\\BlueSpice\\PageTemplates\\ConfigDefinition\\PageTemplatesForceNamespace::getInstance",
PageTemplatesHideDefaults="\\BlueSpice\\PageTemplates\\ConfigDefinition\\PageTemplatesHideDefaults::getInstance",
PageTemplatesHideIfNotInTargetNs="\\BlueSpice\\PageTemplates\\ConfigDefinition\\PageTemplatesHideIfNotInTargetNs::getInstance",
},
TagRegistry={
pagetemplates="\\BlueSpice\\PageTemplates\\Tag\\PageTemplates",
},
AdminToolRegistry={
["bs-pagetemplates"]="BlueSpice\\PageTemplates\\AdminTool",
},
PermissionRegistry={
["pagetemplatesadmin-viewspecialpage"]={
type="global",
roles={
"admin","maintenanceadmin","structuremanager",},
},
},
},
MWStakeContentProvisioner={
ContentManifests={
DefaultContentProvisioner={
"extensions/BlueSpicePageTemplates/data/Content/PageTemplates/manifest.json",},
DefaultPageTemplates={
"extensions/BlueSpicePageTemplates/data/Content/PageTemplates/manifest.json",},
},
ContentProvisioners={
DefaultPageTemplates={
class="\\BlueSpice\\PageTemplates\\ContentProvisioner\\PageTemplatesProvisioner",
args={
"DefaultPageTemplates",},
services={
"ContentLanguage","LanguageFallback","TitleFactory","DBLoadBalancer",},
},
},
},
},
GroupPermissions={
["*"]={
["pagetemplatesadmin-viewspecialpage"]=false,
},
user={
["pagetemplatesadmin-viewspecialpage"]=false,
},
sysop={
["pagetemplatesadmin-viewspecialpage"]=true,
},
},
AvailableRights={
"pagetemplatesadmin-viewspecialpage",},
APIModules={
["bs-pagetemplates-store"]="BSApiPageTemplatesStore",
["bs-pagetemplates-tasks"]="BSApiPageTemplatesTasks",
["bs-pagetemplate-tags-store"]="BSApiPageTemplateTagsStore",
},
ExtensionMessagesFiles={
PageTemplatesAdminAlias="includes/specials/SpecialPageTemplatesAdmin.alias.php",
},
config_prefix="bsg",
config={
PageTemplatesExcludeNs={
value={
-2,-1,6,7,8,9,10,11,14,15,},
},
PageTemplatesForceNamespace={
value=false,
descriptionmsg="bs-pagetemplates-pref-forcenamespace",
public=true,
},
PageTemplatesHideIfNotInTargetNs={
value=true,
descriptionmsg="bs-pagetemplates-pref-hideifnotintargetns",
public=true,
},
PageTemplatesHideDefaults={
value=false,
descriptionmsg="bs-pagetemplates-pref-hidedefaults",
public=true,
},
},
SpecialPages={
PageTemplatesAdmin="SpecialPageTemplatesAdmin",
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\PageTemplates\\HookHandler\\CommonUserInterface",
},
addPreloadForActions={
class="\\BlueSpice\\PageTemplates\\HookHandler\\AddPreloadForActions",
},
writeNamespaceConfiguration={
class="\\BlueSpice\\PageTemplates\\Hook\\WriteNamespaceConfiguration",
},
},
Hooks={
BeforePageDisplay={
"common-user-interface",},
BSUEModulePDFBeforeAddingStyleBlocks="\\BlueSpice\\PageTemplates\\Hook\\BSUEModulePDFBeforeAddingStyleBlocks\\AddStandardTemplatesStyles::callback",
LoadExtensionSchemaUpdates={
"\\BlueSpice\\PageTemplates\\Hook\\LoadExtensionSchemaUpdates\\AddPageTemplateTable::callback",},
BSUsageTrackerRegisterCollectors="\\BlueSpice\\PageTemplates\\Hook\\BSUsageTrackerRegisterCollectors\\AddPageTemplatesTag::callback",
["NamespaceManager::getMetaFields"]="BlueSpice\\PageTemplates\\Hook\\NamespaceManagerGetMetaFields\\RegisterMetaField::callback",
BSApiNamespaceStoreMakeData="BlueSpice\\PageTemplates\\Hook\\BSApiNamespaceStoreMakeData\\AddData::callback",
["NamespaceManager::editNamespace"]="BlueSpice\\PageTemplates\\Hook\\NamespaceManagerEditNamespace\\SetPageTemplateValues::callback",
NamespaceManagerBeforePersistSettings="writeNamespaceConfiguration",
HtmlPageLinkRendererBegin="\\BlueSpice\\PageTemplates\\Extension::onHtmlPageLinkRendererBegin",
MessagesPreLoad="\\BlueSpice\\PageTemplates\\Extension::onMessagesPreLoad",
MediaWikiPerformAction="\\BlueSpice\\PageTemplates\\Hook\\MediaWikiPerformAction\\PreventEditMode::callback",
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
["SkinTemplateNavigation::Universal"]="addPreloadForActions",
},
composer="bluespice/pagetemplates",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpicePageTemplates",
},
BlueSpicePageVersion={
name="BlueSpicePageVersion",
version="2.27.1-alpha",
["license-name"]="GPL-2.0-or-later",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://bluespice.com",
descriptionmsg="bs-pageversion-desc",
type="variable",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionFunctions={
"BS\\PageVersion\\Setup::init",},
ExtensionMessagesFiles={
BlueSpicePageVersionMagic="BlueSpicePageVersion.i18n.magic.php",
},
composer="mediawiki/blue-spice-page-version",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpicePageVersion",
},
BlueSpicePagesVisited={
name="BlueSpicePagesVisited",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpicePagesVisited",
author={
"Robert Vogel","Stephan Muggli","Dejan Savuljesku",},
descriptionmsg="bs-pagesvisited-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceWhoIsOnline="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpicePagesVisited={
className="\\BlueSpice\\PagesVisited\\Extension",
extPath="/BlueSpicePagesVisited",
},
},
TagRegistry={
pagesvisited="\\BlueSpice\\PagesVisited\\Tag\\PagesVisited",
},
RendererRegistry={
["pagesvisited-pagelist"]="\\BlueSpice\\PagesVisited\\Renderer\\PageList::factory",
},
},
BlueSpiceVisualEditorConnector={
TagDefinitions={
"ext.bluespice.pagesvisited.visualEditorTagDefinition",},
},
BlueSpiceUserSidebar={
Widgets={
PAGESVISITED={
callback="\\BlueSpice\\PagesVisited\\Panel\\PagesVisited::factory",
default=true,
},
},
WidgetRegistry={
PAGESVISITED="\\BlueSpice\\PagesVisited\\UserSidebar\\Widget\\PagesVisited::factory",
},
},
ContentDroplets={
Droplets={
["pages-visited"]={
class="\\BlueSpice\\PagesVisited\\ContentDroplets\\VisitedDroplet",
},
},
},
},
Hooks={
BSUsageTrackerRegisterCollectors="\\BlueSpice\\PagesVisited\\Extension::onBSUsageTrackerRegisterCollectors",
},
composer="bluespice/pagesvisited",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpicePagesVisited",
},
BlueSpicePermissionManager={
name="BlueSpicePermissionManager",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpicePermissionManager",
author="Dejan Savuljesku &lt;savuljesku@hallowelt.com&gt;",
descriptionmsg="bs-permissionmanager-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpicePermissionManager={
className="BlueSpice\\PermissionManager\\Extension",
extPath="/BlueSpicePermissionManager",
},
},
ConfigDefinitionRegistry={
PermissionManagerMaxBackups="\\BlueSpice\\PermissionManager\\ConfigDefinition\\PermissionManagerMaxBackups::getInstance",
PermissionManagerActivePreset="\\BlueSpice\\PermissionManager\\ConfigDefinition\\PermissionManagerActivePresetConfig::getInstance",
},
AdminToolRegistry={
["bs-permission-manager"]="BlueSpice\\PermissionManager\\AdminTool",
},
PermissionRegistry={
["permissionmanager-viewspecialpage"]={
type="namespace",
roles={
"admin","maintenanceadmin",},
},
},
PermissionLockdownRegistry={
["special-pages"]="\\BlueSpice\\PermissionManager\\Lockdown\\SpecialPages::getInstance",
},
},
BlueSpicePermissionManager={
PermissionPresets={
public="BlueSpice\\PermissionManager\\Preset\\PublicWiki::factory",
protected="BlueSpice\\PermissionManager\\Preset\\ProtectedWiki::factory",
private="BlueSpice\\PermissionManager\\Preset\\PrivateWiki::factory",
custom="BlueSpice\\PermissionManager\\Preset\\CustomPreset::factory",
},
},
},
AvailableRights={
"permissionmanager-viewspecialpage",},
GroupPermissions={
["*"]={
["permissionmanager-viewspecialpage"]=false,
},
user={
["permissionmanager-viewspecialpage"]=false,
},
bureaucrat={
["permissionmanager-viewspecialpage"]=false,
},
sysop={
["permissionmanager-viewspecialpage"]=true,
},
},
APIModules={
["bs-permissionmanager-tasks"]="BlueSpice\\PermissionManager\\Api\\ApiPermissionManager",
["bs-role-permission-store"]="BlueSpice\\PermissionManager\\Api\\RolePermissionsStore",
},
LogTypes={
"bs-permission-manager",},
FilterLogTypes={
["bs-permission-manager"]=true,
},
LogActionsHandlers={
["bs-permission-manager/*"]="LogFormatter",
},
SpecialPages={
PermissionManager="BlueSpice\\PermissionManager\\Special\\SpecialPermissionManager",
},
ExtensionMessagesFiles={
PermissionManagerAlias="PermissionManager.alias.php",
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\PermissionManager\\HookHandler\\CommonUserInterface",
},
registerDynamicConfig={
class="\\BlueSpice\\PermissionManager\\Hook\\RegisterDynamicConfig",
},
},
Hooks={
BSGroupManagerGroupDeleted="\\BlueSpice\\PermissionManager\\Hook\\BSGroupManagerGroupDeleted\\UnassignRoles::callback",
BSGroupManagerGroupNameChanged={
"\\BlueSpice\\PermissionManager\\Hook\\BSGroupManagerGroupNameChanged\\ChangeGroupRoleAssignments::callback",},
LoadExtensionSchemaUpdates={
"\\BlueSpice\\PermissionManager\\Hook\\LoadExtensionSchemaUpdates\\MigratePmSettings::callback",},
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
MWStakeDynamicConfigRegisterConfigs="registerDynamicConfig",
},
ServiceWiringFiles={
"ServiceWiring.php",},
config_prefix="bsg",
config={
PermissionManagerMaxBackups={
value=50,
descriptionmsg="bs-permissionmanager-pref-max-backups",
public=true,
},
PermissionManagerActivePreset={
value="custom",
},
PermissionManagerAllowedPresets={
value={
"public","protected","private","custom",},
},
},
callback="BlueSpice\\PermissionManager\\Extension::onCallback",
composer="bluespice/permissionmanager",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpicePermissionManager",
},
BlueSpicePlayer={
name="BlueSpicePlayer",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpicePlayer",
author={
"Tobias Weichart","Markus Glaser",},
descriptionmsg="bs-player-extension-description",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpicePlayer={
className="\\BlueSpice\\Player\\Extension",
extPath="/BlueSpicePlayer",
package="BlueSpice Pro",
},
},
TagRegistry={
showtime="BlueSpice\\Player\\Tag\\ShowTime",
},
},
},
DefaultUserOptions={
["bs-showtime-pref-autostart"]=false,
},
config_prefix="bsg",
config={
ShowtimePrefWidth={
value=320,
descriptionmsg="bs-player-config-prefwidth",
},
ShowtimePrefHeight={
value=240,
descriptionmsg="bs-player-config-prefheight",
},
},
Hooks={
GetPreferences="\\BlueSpice\\Player\\Hook\\GetPreferences\\Autostart::callback",
},
composer="bluespice/player",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpicePlayer",
},
BlueSpicePrivacy={
name="BlueSpicePrivacy",
author={
"Dejan Savuljesku &lt;savuljesku@hallowelt.com&gt;",},
["license-name"]="GPL-3.0-only",
descriptionmsg="bs-privacy-desc",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpicePrivacy",
type="bluespice",
version="4.2.0-alpha",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
AuthManagerAutoConfig={
secondaryauth={
ConsentSecondaryAuthenticationProvider={
class="\\BlueSpice\\Privacy\\Auth\\Provider\\ConsentSecondaryAuthenticationProvider",
},
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpicePrivacy={
className="\\BlueSpice\\Privacy\\Extension",
extPath="/BlueSpicePrivacy",
},
},
ConfigDefinitionRegistry={
PrivacyCookieAcceptMandatory="\\BlueSpice\\Privacy\\ConfigDefinition\\CookieAcceptMandatory::getInstance",
PrivacyPrivacyPolicyMandatory="\\BlueSpice\\Privacy\\ConfigDefinition\\PrivacyPolicyMandatory::getInstance",
PrivacyPrivacyPolicyOnLogin="\\BlueSpice\\Privacy\\ConfigDefinition\\PrivacyPolicyOnLogin::getInstance",
},
PermissionRegistry={
["bs-privacy-admin"]={
type="global",
roles={
"admin","accountmanager",},
},
},
AdminToolRegistry={
["bs-privacy-admin"]="BlueSpice\\Privacy\\AdminTool",
},
AlertProviderRegistry={
["bs-privacy-alert"]="\\BlueSpice\\Privacy\\AlertProvider\\MissingPrivacyPages::factory",
},
},
BlueSpicePrivacy={
Modules={
anonymization={
class="\\BlueSpice\\Privacy\\Module\\Anonymization",
},
deletion={
class="\\BlueSpice\\Privacy\\Module\\Deletion",
},
transparency={
class="\\BlueSpice\\Privacy\\Module\\Transparency",
},
consent={
class="\\BlueSpice\\Privacy\\Module\\Consent",
},
},
Handlers={
"\\BlueSpice\\Privacy\\Handler\\Anonymize","\\BlueSpice\\Privacy\\Handler\\Delete","\\BlueSpice\\Privacy\\Handler\\ExportData",},
CookieConsentProviders={
["native-mw"]="\\BlueSpice\\Privacy\\CookieConsentProvider\\NativeMW::factory",
onetrust="\\BlueSpice\\Privacy\\CookieConsentProvider\\OneTrust::factory",
},
CookieConsentNativeMWCookieGroups={
necessary={
label="bs-privacy-cookie-consent-group-necessary-label",
desc="bs-privacy-cookie-consent-group-necessary-desc",
type="always-on",
},
convenience={
label="bs-privacy-cookie-convenience-group-label",
desc="bs-privacy-cookie-convenience-group-desc",
type="opt-in",
},
},
CookieConsentNativeMWCookies={
["_session"]={
group="necessary",
addPrefix=true,
},
["mwuser-sessionId"]={
group="necessary",
addPrefix=true,
},
UserID={
group="necessary",
addPrefix=true,
},
UserName={
group="necessary",
addPrefix=true,
},
VEE={
group="convenience",
addPrefix=false,
},
UseDC={
group="necessary",
addPrefix=false,
},
UseCDNCache={
group="necessary",
addPrefix=false,
},
forceHTTPS={
group="necessary",
addPrefix=false,
},
},
},
Notifications={
Events={
["bs-privacy-anonymization-done"]={
spec={
class="\\BlueSpice\\Privacy\\Event\\AnonymizationDone",
},
buckets={
"personal",},
},
["bs-privacy-anonymization-rejected"]={
spec={
class="\\BlueSpice\\Privacy\\Event\\AnonymizationRejected",
},
buckets={
"personal",},
},
["bs-privacy-deletion-rejected"]={
spec={
class="\\BlueSpice\\Privacy\\Event\\DeletionRejected",
},
buckets={
"personal",},
},
["bs-privacy-deletion-failed"]={
spec={
class="\\BlueSpice\\Privacy\\Event\\DeletionFailed",
},
buckets={
"personal",},
},
["bs-privacy-request-submitted"]={
spec={
class="\\BlueSpice\\Privacy\\Event\\RequestSubmitted",
services={
"SpecialPageFactory","GroupPermissionsLookup","DBLoadBalancer","UserFactory",},
},
buckets={
"personal",},
},
},
},
},
AvailableRights={
"bs-privacy-admin",},
APIModules={
["bs-privacy"]="\\BlueSpice\\Privacy\\Api\\PrivacyApi",
["bs-privacy-get-requests"]="\\BlueSpice\\Privacy\\Api\\GetRequests",
["bs-privacy-get-all-consents"]="\\BlueSpice\\Privacy\\Api\\GetAllConsents",
},
ExtensionMessagesFiles={
BlueSpicePrivacyAliases="languages/BlueSpicePrivacy.alias.php",
},
SpecialPages={
PrivacyCenter="\\BlueSpice\\Privacy\\Special\\PrivacyCenter",
PrivacyAdmin="\\BlueSpice\\Privacy\\Special\\PrivacyAdmin",
PrivacyPages={
class="\\BlueSpice\\Privacy\\Special\\PrivacyPages",
args={
"PrivacyPages",},
},
PrivacyConsent="\\BlueSpice\\Privacy\\Special\\PrivacyConsent",
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\Privacy\\HookHandler\\CommonUserInterface",
},
addPrivacyUrls={
class="\\BlueSpice\\Privacy\\HookHandler\\AddPrivacyUrls",
},
addCookieConsent={
class="\\BlueSpice\\Privacy\\HookHandler\\AddCookieConsent",
services={
"MainConfig","ConfigFactory",},
},
redirectToConsent={
class="\\BlueSpice\\Privacy\\Hook\\OutputPageParserOutput\\RedirectToConsent",
services={
"SpecialPageFactory","ConfigFactory","TitleFactory",},
},
},
Hooks={
["SkinTemplateNavigation::Universal"]="addPrivacyUrls",
LoadExtensionSchemaUpdates={
"\\BlueSpice\\Privacy\\Hook\\LoadExtensionSchemaUpdates\\AddPrivacyRequestTable::callback",},
GetPreferences={
"\\BlueSpice\\Privacy\\Hook\\GetPreferences\\AddConsentPrefs::callback",},
BeforePageDisplay="addCookieConsent",
TitleReadWhitelist="\\BlueSpice\\Privacy\\Hook\\TitleReadWhitelist\\AddWhitelistPages::callback",
WebResponseSetCookie="\\BlueSpice\\Privacy\\Hook\\WebResponseSetCookie\\BlockCookie::callback",
OutputPageParserOutput="redirectToConsent",
SpecialPageBeforeExecute="\\BlueSpice\\Privacy\\Hook\\SpecialPageBeforeExecute\\RedirectToConsent::callback",
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
},
callback="\\BlueSpice\\Privacy\\Extension::onCallback",
config_prefix="bsg",
config={
PrivacyEnableRequests={
value=true,
},
PrivacyDeleteUsername={
value="DeletedUser",
},
PrivacyRequestDeadline={
value=30,
},
PrivacyConsentTypes={
value={
["privacy-policy"]="bs-privacy-prefs-consent-privacy-policy",
["terms-of-service"]="bs-privacy-prefs-consent-tos",
},
},
PrivacyCookieConsentProvider={
value="native-mw",
description="Cookie consent provider to be used. One of the keys of BlueSpicePrivacyCookieConsentProviders attribute. Can be a provider key or an array containing the \"name\" and \"config\" properties",
},
PrivacyCookieAcceptMandatory={
value=true,
description="If true, will grey-out the screen and prevent user from doing anything until cookies are accepted",
},
PrivacyPrivacyPolicyMandatory={
value=false,
description="If true, user will be forced to consent to privacy policy and terms of service before accessing any other page",
},
PrivacyPrivacyPolicyOnLogin={
value=true,
description="If true, accepting of privacy policy will be included in the login process",
},
PrivacyTermsOfServiceLink={
value="",
},
PrivacyPrivacyPolicyLink={
value="",
},
},
LogTypes={
"bs-privacy",},
LogNames={
["bs-privacy"]="bs-privacy",
},
LogHeaders={
["bs-privacy"]="bs-privacy-header",
},
LogActionsHandlers={
["bs-privacy/*"]="LogFormatter",
},
composer="bluespice/privacy",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpicePrivacy",
},
BlueSpiceProDistributionConnector={
name="BlueSpiceProDistributionConnector",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceProDistributionConnector",
descriptionmsg="bs-prodistributionconnector-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
MWStakeContentProvisioner={
ContentManifests={
DefaultContentProvisioner={
"extensions/BlueSpiceProDistributionConnector/data/Content/PageTemplates/manifest.json","extensions/BlueSpiceProDistributionConnector/data/Content/ContentDropletsTemplates/manifest.json",},
DefaultPageTemplates={
"extensions/BlueSpiceProDistributionConnector/data/Content/PageTemplates/manifest.json",},
},
},
ContentDroplets={
Droplets={
["pro-con-list"]={
class="\\BlueSpice\\ProDistributionConnector\\ContentDroplets\\ProConListDroplet",
},
["modal-dialog"]={
class="\\BlueSpice\\ProDistributionConnector\\ContentDroplets\\ModalDialogDroplet",
},
decision={
class="\\BlueSpice\\ProDistributionConnector\\ContentDroplets\\DecisionDroplet",
},
},
},
BlueSpiceInstanceStatus={
InstanceStatusProvider={
numberofusers={
class="BlueSpice\\ProDistributionConnector\\InstanceStatusProvider\\NumberOfUsers",
services={
"BlueSpiceUserCounter",},
},
},
},
BlueSpiceFoundation={
JSConfigVars={
BlueSpiceUserLimit="\\BlueSpice\\ProDistributionConnector\\JSConfigVariable\\UserLimit::factory",
},
ConfigDefinitionRegistry={
LicenseKey="BlueSpice\\ProDistributionConnector\\ConfigDefinition\\LicenseKey::getInstance",
OAuth2PublicKey="BlueSpice\\ProDistributionConnector\\ConfigDefinition\\OAuth2PublicKey::getInstance",
OAuth2PrivateKey="BlueSpice\\ProDistributionConnector\\ConfigDefinition\\OAuth2PrivateKey::getInstance",
},
},
VisualEditor={
PluginModules={
"ext.prodistributionconnector.droplet.pdfembed",},
},
},
callback="\\BlueSpice\\ProDistributionConnector\\Extension::onRegistration",
HookHandlers={
["pdfexport-convert-math-svg-to-png"]={
factory="BlueSpice\\ProDistributionConnector\\HookHandler\\PdfExportConvertMathSVGtoPNG::factory",
services={
"MediaHandlerFactory",},
},
applyUserQuota={
class="\\BlueSpice\\ProDistributionConnector\\HookHandler\\ApplyUserQuota",
services={
"BlueSpiceUserCounter",},
},
},
AuthManagerAutoConfig={
preauth={
UserLimitedAuthenticationProvider={
class="BlueSpice\\ProDistributionConnector\\UserLimitedAuthenticationProvider",
sort=25,
},
},
},
Hooks={
BSUEModulePDFFindFiles="pdfexport-convert-math-svg-to-png",
BSUsageTrackerRegisterCollectors="BlueSpice\\ProDistributionConnector\\Hook\\BSUsageTrackerRegisterCollectors\\NumberOfNamespaces::callback",
BeforePageDisplay="applyUserQuota",
UnblockUser="applyUserQuota",
},
config_prefix="bsg",
config={
UserLimitWhitelist={
value={
"BSMaintenance","WikiSysop","MediaWiki default","DynamicPageList3 extension","Mediawiki default","Maintenance script","BlueSpice default",},
description="Contains user names that do not count towards the user limit",
},
LicenseKey={
value=nil,
description="License key for BlueSpice edition",
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
composer="bluespice/prodistributionconnector",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceProDistributionConnector",
},
BlueSpiceQrCode={
name="BlueSpiceQrCode",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"Josef Konrad",},
descriptionmsg="bs-qr-code-extension-description",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceQrCode",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceQrCode={
className="\\BlueSpice\\QrCode\\Extension",
extPath="/BlueSpiceQrCode",
package="BlueSpice Pro",
},
},
TagRegistry={
qrcode="\\BlueSpice\\QrCode\\Tag\\QrCode",
},
DynamicFileRegistry={
qrcode="\\BlueSpice\\QrCode\\DynamicFileDispatcher\\QrCode",
},
},
BlueSpiceVisualEditorConnector={
TagDefinitions={
"ext.bluespice.qrCode.visualEditor",},
},
ContentDroplets={
Droplets={
["qr-code"]={
class="\\BlueSpice\\QrCode\\ContentDroplet\\QrCodeDroplet",
},
},
},
},
HookHandlers={
skin={
class="\\BlueSpice\\QrCode\\HookHandler\\Skin",
},
["discovery-skin"]={
class="\\BlueSpice\\QrCode\\HookHandler\\BlueSpiceDiscovery",
},
export={
class="\\BlueSpice\\QrCode\\Hook\\BSUEModulePDFFindFiles\\AddQrCode",
services={
"UrlUtils",},
},
},
Hooks={
BeforePageDisplay={
"\\BlueSpice\\QrCode\\Hook\\BeforePageDisplay\\AddRessources::callback",},
["SkinTemplateNavigation::Universal"]={
"skin",},
BlueSpiceDiscoveryTemplateDataProviderAfterInit={
"discovery-skin",},
SetupAfterCache="\\BlueSpice\\QrCode\\Hook\\SetupAfterCache\\AddFileRepo::callback",
BSUEModulePDFFindFiles={
"export",},
},
APIModules={
["bs-qr-code"]="\\BlueSpice\\QrCode\\Api\\QrCodeApi",
},
composer="bluespice/qrcode",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceQrCode",
},
BlueSpiceRSSFeeder={
name="BlueSpiceRSSFeeder",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceRSSFeeder",
author="Sebastian Ulbricht",
descriptionmsg="bs-rssfeeder-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceRSSFeeder={
className="\\BlueSpice\\RSSFeeder\\Extension",
extPath="/BlueSpiceRSSFeeder",
},
},
ConfigDefinitionRegistry={
RSSUrlWhitelist="BlueSpice\\RSSFeeder\\ConfigDefinition\\URLWhitelist::getInstance",
RSSUrlNumberOfAllowedRedirects="BlueSpice\\RSSFeeder\\ConfigDefinition\\MaxRedirects::getInstance",
},
},
BlueSpiceRSSFeeder={
Feeds={
recentchanges="BlueSpice\\RSSFeeder\\RSSFeed\\RecentChanges::factory",
followOwn="BlueSpice\\RSSFeeder\\RSSFeed\\FollowOwn::factory",
followPage="BlueSpice\\RSSFeeder\\RSSFeed\\FollowPage::factory",
namespace="BlueSpice\\RSSFeeder\\RSSFeed\\NamespaceFeed::factory",
category="BlueSpice\\RSSFeeder\\RSSFeed\\Category::factory",
watchlist="BlueSpice\\RSSFeeder\\RSSFeed\\Watchlist::factory",
},
},
},
SpecialPages={
RSSFeeder="SpecialRSSFeeder",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
APIModules={
["bs-rssfeeder-tasks"]="BSApiTasksRSSFeeder",
["bs-rss-standards-pages-store"]="ApiRSSStandardsPagesStore",
},
ExtensionMessagesFiles={
BlueSpiceRSSFeederAlias="languages/SpecialRSSFeeder.alias.php",
},
config_prefix="bsg",
config={
RSSUrlNumberOfAllowedRedirects={
value=0,
},
RSSUrlWhitelist={
value={
},
},
},
Hooks={
TitleReadWhitelist="\\BlueSpice\\RSSFeeder\\Hook\\TitleReadWhitelist\\AddRSSFeeder::callback",
BSDashboardsAdminDashboardPortalPortlets="\\BlueSpice\\RSSFeeder\\Hook\\BSDashboardsAdminDashboardPortalPortlets\\AddPortlets::callback",
BSDashboardsAdminDashboardPortalConfig="\\BlueSpice\\RSSFeeder\\Hook\\BSDashboardsAdminDashboardPortalConfig\\AddConfigs::callback",
BSDashboardsUserDashboardPortalPortlets="\\BlueSpice\\RSSFeeder\\Hook\\BSDashboardsUserDashboardPortalPortlets\\AddPortlets::callback",
BSDashboardsUserDashboardPortalConfig="\\BlueSpice\\RSSFeeder\\Hook\\BSDashboardsUserDashboardPortalConfig\\AddConfigs::callback",
},
composer="bluespice/rssfeeder",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceRSSFeeder",
},
BlueSpiceRating={
name="BlueSpiceRating",
version="4.5",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceRating",
author="Patric Wirth",
descriptionmsg="bs-rating-extension-description",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceRating={
className="\\BlueSpice\\Rating\\Extension",
extPath="/BlueSpiceRating",
package="BlueSpice Pro",
},
},
PermissionRegistry={
["rating-archive"]={
type="namespace",
roles={
"admin","editor","maintenanceadmin",},
},
["rating-read"]={
type="namespace",
roles={
"admin","commenter","editor","maintenanceadmin","reader",},
},
["rating-viewspecialpage"]={
type="global",
roles={
"admin","editor","maintenanceadmin","reader",},
},
["rating-write"]={
type="namespace",
roles={
"author","commenter","editor","maintenanceadmin",},
},
},
},
BlueSpiceRating={
RatingRegistry={
article="\\BlueSpice\\Rating\\RatingConfig\\Article",
articlelike="\\BlueSpice\\Rating\\RatingConfig\\ArticleLike",
},
},
BlueSpicePrivacy={
Handlers={
"\\BlueSpice\\Rating\\Privacy\\Handler",},
},
BlueSpiceDiscovery={
MetaItemProviderRegistry={
recommendations={
class="\\BlueSpice\\Rating\\MetaItemProvider\\RecommendationProvider",
},
rating={
class="\\BlueSpice\\Rating\\MetaItemProvider\\RatingProvider",
},
},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
SpecialPages={
Rating="\\BlueSpice\\Rating\\Special\\Rating",
Recommendations="\\BlueSpice\\Rating\\Special\\Recommendations",
},
APIModules={
["bs-rating-tasks"]="\\BlueSpice\\Rating\\Api\\Task\\Rating",
["bs-ratingarticle-store"]="\\BlueSpice\\Rating\\Api\\Store\\Article",
["bs-ratingarticlelike-store"]="\\BlueSpice\\Rating\\Api\\Store\\ArticleLike",
},
ExtensionMessagesFiles={
BlueSpiceRatingMagic="languages/Rating.i18n.magic.php",
BlueSpiceRatingSpecialRatingAlias="languages/SpecialRating.alias.php",
BlueSpiceRatingSpecialRecommendationsAlias="languages/SpecialRecommendations.alias.php",
},
AvailableRights={
"rating-read","rating-write","rating-archive","rating-viewspecialpage",},
GroupPermissions={
["*"]={
["rating-read"]=true,
["rating-write"]=false,
["rating-archive"]=false,
["rating-viewspecialpage"]=false,
},
user={
["rating-read"]=true,
["rating-write"]=true,
["rating-archive"]=false,
["rating-viewspecialpage"]=true,
},
sysop={
["rating-read"]=true,
["rating-write"]=true,
["rating-archive"]=true,
["rating-viewspecialpage"]=true,
},
},
config_prefix="bsg",
config={
RatingArticleEnabledNamespaces={
value={
},
},
RatingArticleLikeEnabledNamespaces={
value={
},
},
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\Rating\\HookHandler\\CommonUserInterface",
},
writeNamespaceConfiguration={
class="\\BlueSpice\\Rating\\Hook\\WriteNamespaceConfiguration",
},
},
Hooks={
LoadExtensionSchemaUpdates={
"\\BlueSpice\\Rating\\Hook\\LoadExtensionSchemaUpdates\\AddRatingDatabase::callback","\\BlueSpice\\Rating\\Hook\\LoadExtensionSchemaUpdates\\AddRatingRemoveArchivedMaintenanceScript::callback","\\BlueSpice\\Rating\\Hook\\LoadExtensionSchemaUpdates\\AddRatingSetDefaultSubTypeMaintenanceScript::callback","\\BlueSpice\\Rating\\Hook\\LoadExtensionSchemaUpdates\\AddBSRatingRemoveDuplicateEntriesMaintenanceScript::callback","\\BlueSpice\\Rating\\Hook\\LoadExtensionSchemaUpdates\\AddRatingMigrateRatedCommentsScript::callback",},
BeforePageDisplay="\\BlueSpice\\Rating\\Hook\\BeforePageDisplay\\AddResources::callback",
BSMigrateSettingsFromDeviatingNames="\\BlueSpice\\Rating\\Extension::onBSMigrateSettingsFromDeviatingNames",
["NamespaceManager::getMetaFields"]="BlueSpice\\Rating\\Hook\\NamespaceManagerGetMetaFields\\RegisterMetaFields::callback",
BSApiNamespaceStoreMakeData="BlueSpice\\Rating\\Hook\\BSApiNamespaceStoreMakeData\\AddData::callback",
["NamespaceManager::editNamespace"]="BlueSpice\\Rating\\Hook\\NamespaceManagerEditNamespace\\SetRatingValues::callback",
NamespaceManagerBeforePersistSettings="writeNamespaceConfiguration",
GetDoubleUnderscoreIDs="\\BlueSpice\\Rating\\Hook\\GetDoubleUnderscoreIDs\\AddNoRating::callback",
BSMigrateSettingsSetNewSettings="\\BlueSpice\\Rating\\Hook\\BSMigrateSettingsSetNewSettings\\SetGlobals::callback",
UserMergeAccountFields="\\BlueSpice\\Rating\\Hook\\UserMergeAccountFields\\MergeRatingDBFields::callback",
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
},
composer="bluespice/rating",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceRating",
},
BlueSpiceReadConfirmation={
name="BlueSpiceReadConfirmation",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"Robert Vogel","Leonid Verhovskij",},
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceReadConfirmation",
descriptionmsg="bs-readconfirmation-desc",
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceReadConfirmation={
className="\\BlueSpice\\ReadConfirmation\\Extension",
extPath="/BlueSpiceReadConfirmation",
package="BlueSpice Pro",
},
},
PermissionRegistry={
readconfirmationremind={
type="global",
roles={
"admin","maintenanceadmin",},
},
readconfirmationviewconfirmations={
type="global",
roles={
"admin","maintenanceadmin","structureadmin",},
},
},
RunJobsTriggerHandlerRegistry={
["bs-readconfirmation-autonotifier"]="BlueSpice\\ReadConfirmation\\RunJobsTriggerHandler\\AutomaticReadConfirmationNotifier::factory",
},
},
BlueSpicePrivacy={
Handlers={
"\\BlueSpice\\ReadConfirmation\\Privacy\\Handler",},
},
BlueSpiceDiscovery={
AttentionIndicatorRegistry={
readconfirmation="\\BlueSpice\\ReadConfirmation\\AttentionIndicator\\ReadConfirmation::factory",
},
},
UnifiedTaskOverview={
AttentionIndicatorCollectionRegistry={
"readconfirmation",},
},
Notifications={
Events={
["bs-rc-request"]={
spec={
class="\\BlueSpice\\ReadConfirmation\\Event\\ConfirmationRequestEvent",
},
buckets={
"personal",},
},
["bs-rc-remind"]={
spec={
class="\\BlueSpice\\ReadConfirmation\\Event\\ConfirmationRemindEvent",
},
buckets={
"personal",},
},
},
},
},
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpicePageAssignments="&gt;= 4.3",
},
},
ExtensionFunctions={
"BlueSpice\\ReadConfirmation\\TriggerRegistration::addNotificationTrigger",},
APIModules={
["bs-readconfirmation-tasks"]="BSApiReadConfirmationTasks",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
Hooks={
BSApiExtJSStoreBaseBeforePostProcessData="ReadConfirmationPageAssignmentHooks::onBSApiExtJSStoreBaseBeforePostProcessData",
BSPageStoreDataProviderBeforeAppendRow="ReadConfirmationPageAssignmentHooks::onBSPageStoreDataProviderBeforeAppendRow",
BSPageAssignmentsManager="ReadConfirmationPageAssignmentHooks::onBSPageAssignmentsSpecialPages",
BSPageAssignmentsOverview="ReadConfirmationPageAssignmentHooks::onBSPageAssignmentsSpecialPages",
LoadExtensionSchemaUpdates="\\BlueSpice\\ReadConfirmation\\Hook\\LoadExtensionSchemaUpdates\\AddReadConfirmationDatabase::callback",
BeforePageDisplay={
"\\BlueSpice\\ReadConfirmation\\Hook\\BeforePageDisplay\\AddManagePageAssignmentsIntegration::callback","\\BlueSpice\\ReadConfirmation\\Hook\\BeforePageDisplay\\AddResources::callback",},
PageSaveComplete="ReadConfirmationHooks::onPageSaveComplete",
["NamespaceManager::getMetaFields"]="ReadConfirmationHooks::onNamespaceManager_getMetaFields",
["NamespaceManager::editNamespace"]="ReadConfirmationHooks::onNamespaceManager_editNamespace",
BSApiNamespaceStoreMakeData="ReadConfirmationHooks::onBSApiNamespaceStoreMakeData",
UserMergeAccountFields="\\BlueSpice\\ReadConfirmation\\Hook\\UserMergeAccountFields\\MergeReadConfirmationDBFields::callback",
UnifiedTaskOverviewGetTaskDescriptors="addUTOReadConfirmations",
["SkinTemplateNavigation::Universal"]="skin",
NamespaceManagerBeforePersistSettings="writeNamespaceConfiguration",
StandardDialogsRegisterPageInfoPanelModules="standard-dialogs",
},
HookHandlers={
addUTOReadConfirmations={
factory="\\BlueSpice\\ReadConfirmation\\HookHandler\\UnifiedTaskOverview::factory",
services={
"DBLoadBalancer","UserGroupManager","BSReadConfirmationMechanismFactory","MainConfig",},
},
skin={
class="\\BlueSpice\\ReadConfirmation\\HookHandler\\Skin",
},
writeNamespaceConfiguration={
class="\\BlueSpice\\ReadConfirmation\\Hook\\WriteNamespaceConfiguration",
},
["standard-dialogs"]={
class="\\BlueSpice\\ReadConfirmation\\HookHandler\\StandardDialogs",
},
},
RestRoutes={
{
path="/readconfirmation/{pageId}",
method="GET",
class="\\BlueSpice\\ReadConfirmation\\Rest\\GetReadConfirmations",
services={
"BSReadConfirmationMechanismFactory","BSPageAssignmentsAssignmentFactory","TitleFactory","UserFactory","PermissionManager",},
},},
LogTypes={
"bs-readconfirmation",},
FilterLogTypes={
["bs-readconfirmation"]=true,
},
LogActionsHandlers={
["bs-readconfirmation/*"]="LogFormatter",
["bs-readconfirmation/confirm"]="\\BlueSpice\\ReadConfirmation\\Logging\\ConfirmFormatter",
},
GroupPermissions={
sysop={
readconfirmationremind=true,
readconfirmationviewconfirmations=true,
},
},
AvailableRights={
"readconfirmationremind","readconfirmationviewconfirmations",},
config_prefix="bsgReadConfirmation",
config={
Mechanism={
value="BlueSpice\\ReadConfirmation\\Mechanism\\NonMinorEdit::factory",
},
PageApprovedReminderDelay={
value=168,
},
},
composer="bluespice/readconfirmation",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceReadConfirmation",
},
BlueSpiceReaders={
name="BlueSpiceReaders",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceReaders",
author={
"Stephan Muggli","Leonid Verhovskij","Dejan Savuljesku",},
descriptionmsg="bs-readers-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceReaders={
className="\\BlueSpice\\Readers\\Extension",
extPath="/BlueSpiceReaders",
},
},
ConfigDefinitionRegistry={
ReadersNumOfReaders="\\BlueSpice\\Readers\\ConfigDefinition\\ReadersNumOfReaders::getInstance",
},
PermissionRegistry={
viewreaders={
type="global",
roles={
"admin","maintenanceadmin",},
},
viewrevisionreaders={
type="global",
roles={
},
},
},
},
BlueSpicePrivacy={
Handlers={
"\\BlueSpice\\Readers\\Privacy\\Handler",},
},
},
GroupPermissions={
["*"]={
viewreaders=false,
viewrevisionreaders=false,
},
user={
viewreaders=false,
viewrevisionreaders=false,
},
sysop={
viewreaders=true,
viewrevisionreaders=false,
},
},
AvailableRights={
"viewreaders","viewrevisionreaders",},
SpecialPages={
Readers="\\BlueSpice\\Readers\\Special\\Readers",
RevisionReaders="\\BlueSpice\\Readers\\Special\\RevisionReaders",
},
JobClasses={
BlueSpiceReadersInsertTrace="\\BlueSpice\\Readers\\Job\\InsertTrace",
},
APIModules={
["bs-readers-data-store"]="BSApiReadersDataStore",
["bs-readers-users-store"]="BSApiReadersUsersStore",
["bs-readers-page-readers-store"]="\\BlueSpice\\Readers\\Api\\Store\\PageReaders",
["bs-readers-revision-readers-store"]="\\BlueSpice\\Readers\\Api\\Store\\RevisionReaders",
["bs-readers-tasks"]="\\BlueSpice\\Readers\\Api\\Task\\PageReaders",
},
ExtensionMessagesFiles={
ReadersAlias="languages/SpecialReaders.alias.php",
},
config_prefix="bsg",
config={
ReadersNumOfReaders={
value=10,
descriptionmsg="bs-readers-pref-numofreaders",
public=true,
},
ReadersNamespaceBlacklist={
description="Defaults to NS_FILE, NS_FILE_TALK, NS_MEDIAWIKI, NS_MEDIAWIKI_TALK, NS_CATEGORY, NS_CATEGORY_TALK",
value={
6,7,8,9,14,15,},
public=false,
},
ReadersCleanData={
description="Set to 'true' if you want to remove old entries from the database",
value=false,
},
ReadersCleanDataTTL={
description="How many days each readers entry will be available in the database (365 days * 3 = 1095 days or 3 years)",
value=1095,
},
},
HookHandlers={
["standard-dialogs"]={
class="\\BlueSpice\\Readers\\HookHandler\\StandardDialogs",
},
addReaders={
class="\\BlueSpice\\Readers\\HookHandler\\AddReaders",
},
},
Hooks={
LoadExtensionSchemaUpdates={
"\\BlueSpice\\Readers\\Hook\\LoadExtensionSchemaUpdates\\AddReadersTable::callback",},
BeforePageDisplay={
"\\BlueSpice\\Readers\\Hook\\BeforePageDisplay\\AddResources::callback",},
["SkinTemplateNavigation::Universal"]="addReaders",
UserMergeAccountFields="\\BlueSpice\\Readers\\Hook\\UserMergeAccountFields\\MergeReadersDBFields::callback",
StandardDialogsRegisterPageInfoPanelModules="standard-dialogs",
},
composer="bluespice/readers",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceReaders",
},
BlueSpiceReminder={
name="BlueSpiceReminder",
version="4.5",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceReminder",
author={
"Sebastian Ulbricht","Stephan Muggli","Tobias Weichart","Markus Glaser","Peter Böhm",},
descriptionmsg="bs-reminder-extension-description",
["license-name"]="GPL-3.0-only",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceReminder={
className="\\BlueSpice\\Reminder\\Extension",
extPath="/BlueSpiceReminder",
package="BlueSpice Pro",
},
},
PermissionRegistry={
remindereditall={
type="global",
roles={
"admin","maintenanceadmin",},
},
},
RunJobsTriggerHandlerRegistry={
["bs-reminder-send-daily"]="BlueSpice\\Reminder\\RunJobsTriggerHandler\\SendTodayReminderNotification::factory",
["bs-reminder-send-weekly"]="BlueSpice\\Reminder\\RunJobsTriggerHandler\\SendInOneWeekReminderNotification::factory",
},
AdminToolRegistry={
["bs-reminder-manager"]="BlueSpice\\Reminder\\AdminTool",
},
},
BlueSpiceEchoConnector={
NotificationIcons={
reminder={
path="BlueSpiceReminder/resources/images/userbar-icon-reminder.png",
},
},
},
BlueSpicePrivacy={
Handlers={
"\\BlueSpice\\Reminder\\Privacy\\Handler",},
},
BlueSpiceReminder={
Registry={
page="\\BlueSpice\\Reminder\\Reminder\\Page::factory",
},
},
BlueSpiceDiscovery={
AttentionIndicatorRegistry={
reminder="\\BlueSpice\\Reminder\\AttentionIndicator\\Reminder::factory",
},
},
Workflows={
LogicObjects={
ActivityRegistry={
set_reminder={
class="\\BlueSpice\\Reminder\\Activity\\SetReminderActivity",
services={
"TitleFactory","UserFactory","DBLoadBalancer",},
},
},
},
EditorPluginModules={
"ext.bluespice.reminder.workflows.editor.customElements",},
},
Notifications={
Events={
["bs-reminder-today"]={
spec={
class="\\BlueSpice\\Reminder\\Event\\ReminderToday",
},
buckets={
"personal",},
},
["bs-reminder-one-week"]={
spec={
class="\\BlueSpice\\Reminder\\Event\\ReminderInOneWeek",
},
buckets={
"personal",},
},
},
},
},
GroupPermissions={
["*"]={
remindereditall=false,
},
user={
remindereditall=false,
},
sysop={
remindereditall=true,
},
},
AvailableRights={
"remindereditall",},
SpecialPages={
Reminder="SpecialReminder",
},
APIModules={
["bs-reminder-store"]="ApiReminderStore",
["bs-reminder-tasks"]="ApiReminderTasks",
},
ExtensionMessagesFiles={
ReminderAlias="languages/SpecialReminder.alias.php",
},
DefaultUserOptions={
["bs-reminder-oncreate"]=false,
["bs-reminder-forns"]="",
["bs-reminder-period"]=6,
["echo-subscriptions-web-notification-bs-reminder-cat"]=1,
["echo-subscriptions-email-notification-bs-reminder-cat"]=1,
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\Reminder\\HookHandler\\CommonUserInterface",
},
["discovery-skin"]={
class="\\BlueSpice\\Reminder\\HookHandler\\DiscoverySkin",
},
["standard-dialogs"]={
class="\\BlueSpice\\Reminder\\HookHandler\\StandardDialogs",
},
addReminderUrl={
class="\\BlueSpice\\Reminder\\HookHandler\\SkinTemplateNavigation\\AddReminderUrl",
},
addReminderEntry={
class="\\BlueSpice\\Reminder\\HookHandler\\SkinTemplateNavigation\\AddReminderEntry",
},
},
Hooks={
LoadExtensionSchemaUpdates="\\BlueSpice\\Reminder\\Hook\\LoadExtensionSchemaUpdates\\AddReminderTable::callback",
GetPreferences={
"\\BlueSpice\\Reminder\\Hook\\GetPreferences\\AddDefaultReminderPeriod::callback","\\BlueSpice\\Reminder\\Hook\\GetPreferences\\AddSetReminderOnCreate::callback","\\BlueSpice\\Reminder\\Hook\\GetPreferences\\AddDisableReminderForNS::callback",},
["SkinTemplateNavigation::Universal"]={
"addReminderUrl","addReminderEntry",},
BeforePageDisplay="\\BlueSpice\\Reminder\\Hook\\BeforePageDisplay\\AddResources::callback",
PageSaveComplete="\\BlueSpice\\Reminder\\Hook\\PageSaveComplete\\SetReminderOnCreate::callback",
BSUserManagerAfterDeleteUser="\\BlueSpice\\Reminder\\Hook\\BSUserManagerAfterDeleteUser\\DeleteReminders::callback",
UserMergeAccountFields="\\BlueSpice\\Reminder\\Hook\\UserMergeAccountFields\\MergeReminderDBFields::callback",
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
BlueSpiceDiscoveryTemplateDataProviderAfterInit="discovery-skin",
StandardDialogsRegisterPageInfoPanelModules="standard-dialogs",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
composer="bluespice/reminder",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceReminder",
},
BlueSpiceSMWConnector={
name="BlueSpiceSMWConnector",
descriptionmsg="bs-bssmwconnector-desc",
["license-name"]="GPL-3.0-only",
type="bluespice",
version="4.2.0-alpha",
author={
"Robert Vogel","Leonid Verhovskij",},
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceSMWConnector",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceExtendedSearch={
PluginRegistry={
smw={
class="BlueSpice\\SMWConnector\\ExtendedSearch\\SMWData",
},
},
},
BlueSpiceFoundation={
Extensions={
BlueSpiceSMWConnector={
className="\\BlueSpice\\SMWConnector\\Extension",
extPath="/BlueSpiceSMWConnector",
package="BlueSpice Pro",
},
},
TagRegistry={
dataquery="\\BlueSpice\\SMWConnector\\Tag\\DataQuery",
decisionOverview="\\BlueSpice\\SMWConnector\\Tag\\DecisionOverview",
},
PermissionRegistry={
createclass={
type="global",
roles={
"admin","author","editor","maintenanceadmin",},
},
editrestrictedfields={
type="global",
roles={
"admin","editor","maintenanceadmin",},
},
geocode={
type="global",
roles={
"admin","author","editor","maintenanceadmin",},
},
["smw-admin"]={
type="global",
roles={
"admin","maintenanceadmin",},
},
viewedittab={
type="global",
roles={
"admin","editor","maintenanceadmin","structuremanager",},
},
},
},
BlueSpiceSmartList={
ModeRegistry={
dataquery={
class="BlueSpice\\SMWConnector\\SmartListMode\\DataQueryMode",
},
},
},
BlueSpiceBookshelfUI={
MassAddHandlerRegistry={
smwproperty="BSSMWPropertyPageProvider::factory",
},
},
BlueSpiceSMWConnector={
ExtraPropertyRegistry={
usermentions="BlueSpice\\SMWConnector\\PropertyValueProvider\\UserMentions::factory",
},
AsyncAskHandlers={
grid="\\BlueSpice\\SMWConnector\\AsyncAskHandler\\Grid::factory",
tree="\\BlueSpice\\SMWConnector\\AsyncAskHandler\\Tree::factory",
},
},
BlueSpiceDiscovery={
BreadcrumbDataProviderRegistry={
["special-browse"]={
class="BlueSpice\\SMWConnector\\BreadcrumbDataProvider\\SpecialBrowseProvider",
},
["special-ask"]={
class="BlueSpice\\SMWConnector\\BreadcrumbDataProvider\\SpecialAskProvider",
services={
"SpecialPageFactory",},
},
},
TitleActionPrimaryActionModifier={
["form-edit"]={
class="BlueSpice\\SMWConnector\\TitleActionModifier",
},
},
},
VisualEditor={
PluginModules={
"ext.BSSMWConnector.DataQuery.visualEditor","ext.BSSMWConnector.decisionOverview.visualEditor",},
},
ContentDroplets={
Droplets={
dataquery={
class="\\BlueSpice\\SMWConnector\\ContentDroplets\\DataQueryDroplet",
},
decisionOverview={
class="\\BlueSpice\\SMWConnector\\ContentDroplets\\DecisionOverviewDroplet",
},
},
},
BlueSpicePrivacy={
Handlers={
"\\BlueSpice\\SMWConnector\\Privacy\\Handler",},
},
},
GroupPermissions={
sysop={
["smw-admin"]=true,
["smw-patternedit"]=true,
["smw-pageedit"]=true,
geocode=true,
editrestrictedfields=true,
},
["*"]={
viewedittab=true,
},
user={
createclass=true,
},
},
APIModules={
["bs-smw-connector-smw-property-store"]="ApiSMWPropertyStore",
["bs-smw-connector-ask-store"]="\\BlueSpice\\SMWConnector\\Api\\Store\\Ask",
["bs-smw-connector-tree-ask-store"]="\\BlueSpice\\SMWConnector\\Api\\Store\\TreeAsk",
},
ExtensionMessagesFiles={
BlueSpiceSMWConnectorMagic="BlueSpiceSMWConnector.magic.php",
},
ExtensionFunctions={
"BlueSpice\\SMWConnector\\Extension::setup",},
HookHandlers={
["discovery-skin"]={
class="\\BlueSpice\\SMWConnector\\HookHandler\\DiscoverySkin",
},
forceLinksUpdate={
class="\\BlueSpice\\SMWConnector\\HookHandler\\ForceLinksUpdates",
},
writeNamespaceConfiguration={
class="\\BlueSpice\\SMWConnector\\Hook\\WriteNamespaceConfiguration",
},
integrateSMWDataIntoSearch={
class="\\BlueSpice\\SMWConnector\\Hook\\IntegrateSMWDataIntoSearch",
},
},
Hooks={
SetupAfterCache="BlueSpice\\SMWConnector\\PropertyValueProvidersRegistration::addExtensions",
BeforePageDisplay={
"BSSMWConnectorHooks::onBeforePageDisplay","BlueSpice\\SMWConnector\\Hook\\BeforePageDisplay\\AddModules::callback",},
["PageForms::FormPrinterSetup"]={
"BlueSpice\\SMWConnector\\Hook\\PFFormPrinterSetup\\RegisterInputTypes::callback",},
BSBookshelfExportTag="BSSMWConnectorHooks::onBSBookshelfExportTag",
["NamespaceManager::getMetaFields"]="BSSMWCNamespaceManager::onGetMetaFields",
BSApiNamespaceStoreMakeData="BSSMWCNamespaceManager::onGetNamespaceData",
["NamespaceManager::editNamespace"]="BSSMWCNamespaceManager::onEditNamespace",
NamespaceManagerBeforePersistSettings="writeNamespaceConfiguration",
BSPageTemplatesBeforeRender="BSSMWCPageTemplates::onBSPageTemplatesBeforeRender",
PageSaveComplete="BSSMWConnectorHooks::onPageSaveComplete",
["SMW::Store::AfterQueryResultLookupComplete"]="BlueSpice\\SMWConnector\\Hook\\SMWStoreAfterQueryResultLookupComplete\\ApplySecurityTrimming::callback",
BSUEModulePDFcollectMetaData="BlueSpice\\SMWConnector\\Hook\\BSUEModulePDFcollectMetaData\\AddSemanitcMetaData::callback",
ParserFirstCallInit="BlueSpice\\SMWConnector\\Hook\\ParserFirstCallInit\\AsyncAsk::callback",
BlueSpiceDiscoveryTemplateDataProviderAfterInit="discovery-skin",
RevisionDataUpdates="forceLinksUpdate",
},
config_prefix="bsg",
config={
UEModulePDFsmwProperties={
value={
},
},
ESSMWPropertyFilter={
description="Which SMW properties to offer as filters. List of regex-es. Properties are matched against the names as written in ES filter list",
value={
type="blacklist",
props={
},
},
},
},
composer="bluespice/smwconnector",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceSMWConnector",
},
BlueSpiceSaferEdit={
name="BlueSpiceSaferEdit",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceSaferEdit",
author={
"Markus Glaser ","Tobias Weichart",},
descriptionmsg="bs-saferedit-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceSaferEdit={
className="\\BlueSpice\\SaferEdit\\Extension",
extPath="/BlueSpiceSaferEdit",
},
},
ConfigDefinitionRegistry={
SaferEditInterval="\\BlueSpice\\SaferEdit\\ConfigDefinition\\Interval::getInstance",
SaferEditShowNameOfEditingUser="\\BlueSpice\\SaferEdit\\ConfigDefinition\\ShowNameOfEditingUser::getInstance",
},
AlertProviderRegistry={
["bs-saferedit-warning"]="\\BlueSpice\\SaferEdit\\AlertProvider\\EditWarning::factory",
},
},
BlueSpicePrivacy={
Handlers={
"\\BlueSpice\\SaferEdit\\Privacy\\Handler",},
},
BlueSpiceSaferEdit={
EnvironmentCheckers={
standardEdit="\\BlueSpice\\SaferEdit\\EnvironmentChecker\\StandardEdit::factory",
},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
config_prefix="bsg",
config={
SaferEditInterval={
value=10,
descriptionmsg="bs-saferedit-pref-interval",
},
SaferEditShowNameOfEditingUser={
value=true,
descriptionmsg="bs-saferedit-pref-shownameofeditinguser",
},
},
Hooks={
LoadExtensionSchemaUpdates="\\BlueSpice\\SaferEdit\\Hook\\LoadExtensionSchemaUpdates\\AddSaferEditTable::callback",
BeforePageDisplay="\\BlueSpice\\SaferEdit\\Hook\\BeforePageDisplay\\AddModules::callback",
BsAdapterAjaxPingResult={
"\\BlueSpice\\SaferEdit\\Hook\\BsAdapterAjaxPingResult\\HandleSaferEditIsSomeoneEditing::callback","\\BlueSpice\\SaferEdit\\Hook\\BsAdapterAjaxPingResult\\HandleSaferEditSave::callback",},
PageSaveComplete="\\BlueSpice\\SaferEdit\\Hook\\PageSaveComplete\\ClearSaferEdit::callback",
["EditPage::showEditForm:initial"]="\\BlueSpice\\SaferEdit\\Hook\\EditPage_showEditForm_initial\\SetEditSection::callback",
MergeAccountFromTo="\\BlueSpice\\SaferEdit\\Hook\\MergeAccountFromTo\\MergeSaferEditDBFields::callback",
},
composer="bluespice/saferedit",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceSaferEdit",
},
BlueSpiceSignHere={
name="BlueSpiceSignHere",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"Robert Vogel",},
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceSignHere",
descriptionmsg="bs-signhere-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceSignHere={
className="\\BlueSpice\\SignHere\\Extension",
extPath="/BlueSpiceSignHere",
},
},
},
BlueSpiceVisualEditorConnector={
TagDefinitions={
"ext.bluespice.signhere.visualEditorTagDefinition",},
},
ContentDroplets={
Droplets={
["sign-here"]={
class="\\BlueSpice\\SignHere\\ContentDroplets\\SignHereDroplet",
},
},
},
},
Hooks={
ParserFirstCallInit="BlueSpice\\SignHere\\Hook\\ParserFirstCallInit::handle",
},
composer="bluespice/signhere",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceSignHere",
},
BlueSpiceSmartList={
name="BlueSpiceSmartList",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:SmartList",
author={
"Markus Glaser","Robert Vogel","Patric Wirth","Stephan Muggli","Leonid Verhovskij",},
descriptionmsg="bs-smartlist-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceSmartList={
className="SmartList",
extPath="/BlueSpiceSmartList",
},
},
TagRegistry={
newbies="BlueSpice\\SmartList\\Tag\\Newbies",
toplist="BlueSpice\\SmartList\\Tag\\Toplist",
smartlist="BlueSpice\\SmartList\\Tag\\SmartList",
userlist="BlueSpice\\SmartList\\Tag\\Userlist",
recentchanges="BlueSpice\\SmartList\\Tag\\RecentChanges",
whatlinkshere="BlueSpice\\SmartList\\Tag\\Whatlinkshere",
},
},
VisualEditor={
PluginModules={
"ext.bluespice.smartList.visualEditor","ext.bluespice.smartList.newbies.visualEditor","ext.bluespice.smartList.toplist.visualEditor",},
},
BlueSpiceUserSidebar={
WidgetRegistry={
YOUREDITS="\\BlueSpice\\SmartList\\UserSidebar\\Widget\\YourEdits::factory",
},
},
ContentDroplets={
Droplets={
whatlinkshere={
class="\\BlueSpice\\SmartList\\ContentDroplets\\WhatLinksHereDroplet",
},
["recent-changes"]={
class="\\BlueSpice\\SmartList\\ContentDroplets\\RecentChangesDroplet",
},
toplist={
class="\\BlueSpice\\SmartList\\ContentDroplets\\TopListDroplet",
},
newbies={
class="\\BlueSpice\\SmartList\\ContentDroplets\\NewbiesDroplet",
},
userlist={
class="\\BlueSpice\\SmartList\\ContentDroplets\\UserlistDroplet",
},
},
},
BlueSpiceSmartList={
ModeRegistry={
whatlinkshere={
class="BlueSpice\\SmartList\\Mode\\WhatLinksHereMode",
services={
"PermissionManager","DBLoadBalancer","TitleFactory",},
},
recentchanges={
class="BlueSpice\\SmartList\\Mode\\RecentChangesMode",
services={
"PermissionManager","DBLoadBalancer","TitleFactory",},
},
toplist={
class="BlueSpice\\SmartList\\Mode\\ToplistMode",
services={
"PermissionManager","DBLoadBalancer","TitleFactory",},
},
newbies={
class="BlueSpice\\SmartList\\Mode\\NewbiesMode",
services={
"DBLoadBalancer","UserFactory","TitleFactory",},
},
userlist={
class="BlueSpice\\SmartList\\Mode\\UserlistMode",
services={
"TitleFactory",},
},
},
},
},
APIModules={
["bs-smartlist-tasks"]="BSApiTasksSmartList",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
Hooks={
BSUsageTrackerRegisterCollectors="\\BlueSpice\\SmartList\\Hook\\BSUsageTrackerRegisterCollectors\\AddSmartlistTag::callback",
BSDashboardsAdminDashboardPortalPortlets="\\BlueSpice\\SmartList\\Hook\\BSDashboardsAdminDashboardPortalPortlets\\AddPortlets::callback",
BSDashboardsAdminDashboardPortalConfig="\\BlueSpice\\SmartList\\Hook\\BSDashboardsAdminDashboardPortalConfig\\AddConfigs::callback",
BSDashboardsUserDashboardPortalPortlets="\\BlueSpice\\SmartList\\Hook\\BSDashboardsUserDashboardPortalPortlets\\AddPortlets::callback",
BSDashboardsUserDashboardPortalConfig="\\BlueSpice\\SmartList\\Hook\\BSDashboardsUserDashboardPortalConfig\\AddConfigs::callback",
},
composer="bluespice/smartlist",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceSmartList",
},
BlueSpiceSocial={
name="BlueSpiceSocial",
version="4.5",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceSocial",
author="Patric Wirth",
descriptionmsg="bs-social-desc",
requires={
MediaWiki="&gt;= 1.37.0",
extensions={
BlueSpiceFoundation="&gt;= 4.1",
BlueSpiceExtendedSearch="&gt;= 4.4",
},
platform={
php="&gt;= 7.0",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceSocial={
className="\\BlueSpice\\Social\\Extension",
extPath="/BlueSpiceSocial",
status="beta",
package="BlueSpiceSocial",
},
},
PermissionRegistry={
["social-deleteothers"]={
type="namespace",
roles={
"admin","maintenanceadmin",},
},
["social-editothers"]={
type="namespace",
roles={
"admin","maintenanceadmin",},
},
["social-source"]={
type="namespace",
roles={
"maintenanceadmin",},
},
},
RendererRegistry={
entitylist="\\BlueSpice\\Social\\Renderer\\EntityList::factory",
entitylistmenu="\\BlueSpice\\Social\\Renderer\\EntityList\\Menu::factory",
entitylistmore="\\BlueSpice\\Social\\Renderer\\EntityList\\More::factory",
entitylistheadline="\\BlueSpice\\Social\\Renderer\\EntityList\\Headline::factory",
socialentity="\\BlueSpice\\Social\\Renderer\\Entity::factory",
socialentitytext="\\BlueSpice\\Social\\Renderer\\Entity\\Text::factory",
socialentitypage="\\BlueSpice\\Social\\Renderer\\Entity\\Page::factory",
entityactions="\\BlueSpice\\Social\\Renderer\\EntityActions::factory",
},
TagRegistry={
timeline="\\BlueSpice\\Social\\Tag\\Timeline",
socialentity="\\BlueSpice\\Social\\Tag\\SocialEntity",
},
TaskRegistry={
["social-entitylist-reload"]="\\BlueSpice\\Social\\Task\\EntityList\\Reload::factory",
},
PermissionLockdownRegistry={
["social-sourcetitle"]="\\BlueSpice\\Social\\Permission\\Lockdown\\Module\\SourceTitle::getInstance",
["social-readpermissioncheckhandover"]="\\BlueSpice\\Social\\Permission\\Lockdown\\Module\\ReadPermissionCheckHandOver::getInstance",
},
ConfigDefinitionRegistry={
SocialMainLinksTimeline="\\BlueSpice\\Social\\ConfigDefinition\\MainLinksTimeline::getInstance",
},
},
BlueSpiceExtendedSearch={
Sources={
socialentity={
class="\\BlueSpice\\Social\\ExtendedSearch\\Entities",
services={
"ObjectFactory",},
},
},
},
BlueSpicePrivacy={
Handlers={
"\\BlueSpice\\Social\\Privacy\\Handler",},
},
Notifications={
Events={
["bs-social-event"]={
spec={
class="\\BlueSpice\\Social\\Event\\SocialEvent",
services={
"DBLoadBalancer","UserFactory","GroupPermissionsLookup","BSEntityFactory",},
},
buckets={
"content-high-freq",},
},
["bs-social-text-event"]={
spec={
class="\\BlueSpice\\Social\\Event\\SocialTextEvent",
services={
"DBLoadBalancer","UserFactory","GroupPermissionsLookup","BSEntityFactory",},
},
buckets={
"content-high-freq",},
},
},
},
},
callback="\\BlueSpice\\Social\\Extension::onRegistration",
ServiceWiringFiles={
"includes/ServiceWiring.php",},
GroupPermissions={
["*"]={
["social-deleteothers"]=false,
["social-editothers"]=false,
["social-source"]=false,
},
user={
["social-deleteothers"]=false,
["social-editothers"]=false,
["social-source"]=false,
},
sysop={
["social-deleteothers"]=true,
["social-editothers"]=true,
["social-source"]=true,
},
},
AvailableRights={
"social-deleteothers","social-editothers","social-source",},
APIModules={
["bs-social-tasks"]="\\BlueSpice\\Social\\Api\\Task\\Entities",
["bs-socialtitlequery-store"]="\\BlueSpice\\Social\\Api\\Store\\TitleQuery",
["bs-socialentity-store"]="\\BlueSpice\\Social\\Api\\Store\\Entity",
},
SpecialPages={
Timeline="\\BlueSpice\\Social\\Special\\Timeline",
Activities="\\BlueSpice\\Social\\Special\\Activities",
},
ExtensionMessagesFiles={
SocialAlias="languages/Social.alias.php",
},
JobClasses={
updateEntityIndex="\\BlueSpice\\Social\\ExtendedSearch\\Job\\Entity",
socialentityupdate="\\BlueSpice\\Social\\Job\\Update",
socialentitychangeowner="\\BlueSpice\\Social\\Job\\ChangeOwner",
socialentityarchive="\\BlueSpice\\Social\\Job\\Archive",
privacyDeleteEntity="\\BlueSpice\\Social\\Privacy\\Job\\DeleteEntity",
},
config_prefix="bsg",
config={
SocialUseRenderCache={
value=true,
},
SocialRenderCacheEntityBlacklist={
value={
},
},
SocialCanHaveChildrenBlacklist={
value={
},
},
SocialMainLinksTimeline={
value=false,
public=true,
descriptionmsg="bs-social-config-mainlinks-timeline-label",
},
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\Social\\HookHandler\\CommonUserInterface",
services={
"ConfigFactory",},
},
notifyUsers={
class="\\BlueSpice\\Social\\Hook\\NotifyUsers",
},
},
Hooks={
BeforePageDisplay={
"\\BlueSpice\\Social\\Hook\\BeforePageDisplay\\AddResources::callback","\\BlueSpice\\Social\\Hook\\BeforePageDisplay\\EntitySpawnerUserPermissions::callback","\\BlueSpice\\Social\\Hook\\BeforePageDisplay\\AddSourceBacklLink::callback",},
BSUEModulePDFBeforeAddingStyleBlocks="\\BlueSpice\\Social\\Extension::onBSUEModulePDFBeforeAddingStyleBlocks",
GetPreferences={
"\\BlueSpice\\Social\\Hook\\GetPreferences\\AddTimeDisplayMode::callback","\\BlueSpice\\Social\\Hook\\GetPreferences\\AddWarnOnLeave::callback",},
HtmlPageLinkRendererEnd="\\BlueSpice\\Social\\Hook\\HtmlPageLinkRendererEnd\\MaskEntityLinks::callback",
SendWatchlistEmailNotification="\\BlueSpice\\Social\\Extension::onSendWatchlistEmailNotification",
BSEntitySaveComplete="notifyUsers",
BSEntityDelete="notifyUsers",
SkinBuildSidebar="\\BlueSpice\\Social\\Hook\\SkinBuildSidebar\\AddTimelineNavigationItem::callback",
BSRSSFeederBeforeGetRecentChanges="\\BlueSpice\\Social\\Hook\\BSRSSFeederBeforeGetRecentChanges\\RCRemoveSocial::callback",
ChangesListSpecialPageStructuredFilters="\\BlueSpice\\Social\\Hook\\ChangesListSpecialPageStructuredFilters\\AddSocialEntityFilter::callback",
MergeAccountFromTo="\\BlueSpice\\Social\\Hook\\MergeAccountFromTo\\ChangeEntityOwner::callback",
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
LoadExtensionSchemaUpdates="\\BlueSpice\\Social\\Hook\\LoadExtensionSchemaUpdates\\AddMigrationMaintenanceScript::callback",
},
DefaultUserOptions={
["bs-social-datedisplaymode"]="age",
["bs-social-warnonleave"]=true,
["echo-subscriptions-web-bs-social-entity-cat"]=1,
},
composer="bluespice/social",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceSocial",
},
BlueSpiceSocialArticleActions={
name="BlueSpiceSocialArticleActions",
version="4.1.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:SocialArticleActions",
author="Patric Wirth",
descriptionmsg="bs-socialarticleactions-desc",
requires={
MediaWiki="&gt;= 1.36.0",
extensions={
BlueSpiceFoundation="&gt;= 4.1",
BlueSpiceSocial="&gt;= 4.1",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceSocialArticleActions={
className="\\BlueSpice\\Social\\ArticleActions\\Extension",
extPath="/BlueSpiceSocialArticleActions",
status="beta",
package="BlueSpiceSocial",
},
},
EntityRegistry={
articlesave="\\BlueSpice\\Social\\ArticleActions\\EntityConfig\\ActionArticleSave",
articlecreate="\\BlueSpice\\Social\\ArticleActions\\EntityConfig\\ActionArticleCreate",
articledelete="\\BlueSpice\\Social\\ArticleActions\\EntityConfig\\ActionArticleDelete",
filesave="\\BlueSpice\\Social\\ArticleActions\\EntityConfig\\ActionFileSave",
filecreate="\\BlueSpice\\Social\\ArticleActions\\EntityConfig\\ActionFileCreate",
filedelete="\\BlueSpice\\Social\\ArticleActions\\EntityConfig\\ActionFileDelete",
},
},
},
Hooks={
PageSaveComplete={
"\\BlueSpice\\Social\\ArticleActions\\Hook\\PageSaveComplete\\CreateArticleCreateEntity::callback","\\BlueSpice\\Social\\ArticleActions\\Hook\\PageSaveComplete\\CreateArticleSaveEntity::callback",},
ArticleDeleteComplete="\\BlueSpice\\Social\\ArticleActions\\Hook\\ArticleDeleteComplete\\CreateArticleDeleteEntity::callback",
UploadComplete={
"\\BlueSpice\\Social\\ArticleActions\\Hook\\UploadComplete\\CreateFileCreateEntity::callback","\\BlueSpice\\Social\\ArticleActions\\Hook\\UploadComplete\\CreateFileSaveEntity::callback",},
FileDeleteComplete="\\BlueSpice\\Social\\ArticleActions\\Hook\\FileDeleteComplete\\CreateFileDeleteEntity::callback",
},
composer="bluespice/socialarticleactions",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceSocialArticleActions",
},
BlueSpiceSocialBlog={
name="BlueSpiceSocialBlog",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceSocialBlog",
author="Patric Wirth",
descriptionmsg="bs-socialblog-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceSocial="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceSocialBlog={
className="\\BlueSpice\\Social\\Blog\\Extension",
extPath="/BlueSpiceSocialBlog",
status="beta",
package="BlueSpiceSocial",
},
},
ConfigDefinitionRegistry={
BSSocialUseBlogTeaser="\\BlueSpice\\Social\\Blog\\ConfigDefinition\\BSSocialUseBlogTeaser::getInstance",
SocialBlogMainLinksBlog="\\BlueSpice\\Social\\Blog\\ConfigDefinition\\MainLinksBlog::getInstance",
},
EntityRegistry={
blog="\\BlueSpice\\Social\\Blog\\EntityConfig\\Blog",
groupblog="\\BlueSpice\\Social\\Blog\\EntityConfig\\GroupBlog",
},
RendererRegistry={
socialentityblog="\\BlueSpice\\Social\\Blog\\Renderer\\Entity\\Blog::factory",
},
PermissionRegistry={
["social-blog"]={
type="global",
roles={
"editor","admin","maintenanceadmin",},
},
["social-blog-comment"]={
type="global",
roles={
"commenter","editor","admin","maintenanceadmin",},
},
},
},
Notifications={
Events={
["bs-social-event-blog"]={
spec={
class="\\BlueSpice\\Social\\Blog\\Event\\SocialBlogEvent",
services={
"DBLoadBalancer","UserFactory","GroupPermissionsLookup","BSEntityFactory",},
},
buckets={
"content-high-freq",},
},
},
},
},
ExtensionMessagesFiles={
BlueSpiceSocialBlogAlias="languages/Blog.alias.php",
},
GroupPermissions={
["*"]={
["social-blog"]=false,
["social-blog-comment"]=false,
},
user={
["social-blog"]=true,
["social-blog-comment"]=true,
},
sysop={
["social-blog"]=true,
["social-blog-comment"]=true,
},
},
AvailableRights={
"social-blog","social-blog-comment",},
SpecialPages={
Blog="\\BlueSpice\\Social\\Blog\\Special\\Blog",
},
config_prefix="bsg",
config={
BSSocialUseBlogTeaser={
value=true,
descriptionmsg="bs-socialblog-toc-useblogteaser",
public=true,
},
SocialBlogPreloadTitle={
value="Template:Blog",
},
SocialBlogMainLinksBlog={
value=false,
public=true,
descriptionmsg="bs-socialblog-config-mainlinks-blog-label",
},
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\Social\\Blog\\HookHandler\\CommonUserInterface",
services={
"ConfigFactory",},
},
},
Hooks={
LoadExtensionSchemaUpdates="\\BlueSpice\\Social\\Blog\\Hook\\LoadExtensionSchemaUpdates\\AddBlogMigrationMaintenanceScript::callback",
SkinBuildSidebar="\\BlueSpice\\Social\\Blog\\Hook\\SkinBuildSidebar\\AddNavigationItem::callback",
BeforePageDisplay="\\BlueSpice\\Social\\Blog\\Hook\\BeforePageDisplay\\AddResources::callback",
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
BSUsageTrackerRegisterCollectors="\\BlueSpice\\Social\\Blog\\Hook\\BSUsageTrackerRegisterCollectors\\NoOfBlogEntries::callback",
},
composer="bluespice/socialblog",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceSocialBlog",
},
BlueSpiceSocialComments={
name="BlueSpiceSocialComments",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceSocialComments",
author="Patric Wirth",
descriptionmsg="bs-socialcomments-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceSocial="&gt;= 4.3",
BlueSpiceSocialTopics="&gt;= 4.4",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceSocialComments={
className="\\BlueSpice\\Social\\Comments\\Extension",
extPath="/BlueSpiceSocialComments",
status="beta",
package="BlueSpiceSocial",
},
},
EntityRegistry={
comment="\\BlueSpice\\Social\\Comments\\EntityConfig\\Comment",
},
},
Notifications={
Events={
["bs-social-comment-event"]={
spec={
class="\\BlueSpice\\Social\\Comments\\Event\\SocialCommentEvent",
services={
"DBLoadBalancer","UserFactory","GroupPermissionsLookup","BSEntityFactory","SpecialPageFactory",},
},
buckets={
"content-high-freq",},
},
["bs-social-comment-own-event"]={
spec={
class="\\BlueSpice\\Social\\Comments\\Event\\SocialCommentOwnerEvent",
services={
"DBLoadBalancer","UserFactory","GroupPermissionsLookup","BSEntityFactory","SpecialPageFactory",},
},
buckets={
"personal",},
},
["bs-social-comment-for-user-event"]={
spec={
class="\\BlueSpice\\Social\\Comments\\Event\\SocialCommentForUserEvent",
services={
"DBLoadBalancer","UserFactory","GroupPermissionsLookup","BSEntityFactory","SpecialPageFactory",},
},
buckets={
"personal",},
},
},
},
},
DefaultUserOptions={
["echo-subscriptions-web-bs-social-comment-cat"]=1,
},
Hooks={
BSSocialEntityOutputRenderAfterContent="\\BlueSpice\\Social\\Comments\\Hook\\BSSocialEntityOutputRenderAfterContent\\AddCommentSection::callback",
BSEntityGetFullData="\\BlueSpice\\Social\\Comments\\Hook\\BSEntityGetFullData\\AddCommentsCount::callback",
BSSocialModuleDepths="\\BlueSpice\\Social\\Comments\\Hook\\BSSocialModuleDepths\\AddModules::callback",
BSEntityConfigAttributeDefinitions="\\BlueSpice\\Social\\Comments\\Hook\\BSEntityConfigAttributeDefinitions\\AddCommentCount::callback",
BSSocialEntityListInitialized="\\BlueSpice\\Social\\Comments\\Hook\\BSSocialEntityListInitialized\\PreloadNewComment::callback",
},
composer="bluespice/socialcomments",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceSocialComments",
},
BlueSpiceSocialMicroBlog={
name="BlueSpiceSocialMicroBlog",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceSocialMicroBlog",
author="Patric Wirth",
descriptionmsg="bs-socialmicroblog-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceSocial="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceSocialMicroBlog={
className="\\BlueSpice\\Social\\MicroBlog\\Extension",
extPath="/BlueSpiceSocialMicroBlog",
status="beta",
package="BlueSpiceSocial",
},
},
EntityRegistry={
microblog="\\BlueSpice\\Social\\MicroBlog\\EntityConfig\\MicroBlog",
},
PermissionRegistry={
["social-microblog"]={
type="global",
roles={
"commenter","editor","admin","maintenanceadmin",},
},
["social-microblog-comment"]={
type="global",
roles={
"commenter","editor","admin","maintenanceadmin",},
},
},
},
},
GroupPermissions={
["*"]={
["social-microblog"]=false,
["social-microblog-comment"]=false,
},
user={
["social-microblog"]=true,
["social-microblog-comment"]=true,
},
sysop={
["social-microblog"]=true,
["social-microblog-comment"]=true,
},
},
AvailableRights={
"social-microblog","social-microblog-comment",},
composer="bluespice/socialmicroblog",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceSocialMicroBlog",
},
BlueSpiceSocialProfile={
name="BlueSpiceSocialProfile",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceSocialProfile",
author="Patric Wirth",
descriptionmsg="bs-socialprofile-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceSocial="&gt;= 4.3",
BlueSpiceAvatars="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceSocialProfile={
className="\\BlueSpice\\Social\\Profile\\Extension",
extPath="/BlueSpiceSocialProfile",
status="beta",
package="BlueSpiceSocial",
},
},
EntityRegistry={
profile="\\BlueSpice\\Social\\Profile\\EntityConfig\\Profile",
},
PermissionRegistry={
["social-editothersprofile"]={
type="global",
roles={
"admin","maintenanceadmin",},
},
["socialprofile-viewspecialpage"]={
type="global",
roles={
"accountmanager","admin","author","bot","commenter","editor","maintenanceadmin","reader","reviewer","structuremanager",},
},
},
RendererRegistry={
socialentityprofile="\\BlueSpice\\Social\\Profile\\Renderer\\Entity\\Profile::factory",
},
TagRegistry={
socialentityprofile="\\BlueSpice\\Social\\Profile\\Tag\\SocialEntityProfile",
},
AssocLinksProviderRegistry={
["profile-classic"]="\\BlueSpice\\Social\\Profile\\AssocLinksProvider\\Profile\\Classic::factory",
["profile-modern"]="\\BlueSpice\\Social\\Profile\\AssocLinksProvider\\Profile\\Modern::factory",
},
},
BlueSpiceSocialProfile={
CustomFieldTypesRegistry={
string="\\BlueSpice\\Social\\Profile\\CustomField\\StringValue::getInstance",
select="\\BlueSpice\\Social\\Profile\\CustomField\\SelectValue::getInstance",
integer="\\BlueSpice\\Social\\Profile\\CustomField\\IntegerValue::getInstance",
boolean="\\BlueSpice\\Social\\Profile\\CustomField\\BooleanValue::getInstance",
text="\\BlueSpice\\Social\\Profile\\CustomField\\TextValue::getInstance",
},
},
BlueSpicePrivacy={
Handlers={
"\\BlueSpice\\Social\\Profile\\Privacy\\Handler",},
},
BlueSpiceSMWConnector={
ExtraPropertyRegistry={
socialprofilefields="\\BlueSpice\\Social\\Profile\\SocialProfilePropertyValueProvider::factory",
},
},
BlueSpiceVisualEditorConnector={
TagDefinitions={
"ext.bluespice.socialprofile.visualEditorTagDefinition",},
},
ContentDroplets={
Droplets={
["social-profile"]={
class="\\BlueSpice\\Social\\Profile\\ContentDroplets\\ProfileDroplet",
},
},
},
},
callback="\\BlueSpice\\Social\\Profile\\Extension::onRegistration",
ServiceWiringFiles={
"includes/ServiceWiring.php",},
ExtensionMessagesFiles={
SocialProfilesAlias="languages/Profiles.alias.php",
},
SpecialPages={
SocialProfiles="\\BlueSpice\\Social\\Profile\\Special\\Profiles",
},
JobClasses={
socialprofilecreate="\\BlueSpice\\Social\\Profile\\Job\\CreateProfile",
},
GroupPermissions={
["*"]={
["social-editothersprofile"]=false,
["socialprofile-viewspecialpage"]=false,
},
user={
["social-editothersprofile"]=false,
["socialprofile-viewspecialpage"]=false,
},
sysop={
["social-editothersprofile"]=true,
["socialprofile-viewspecialpage"]=true,
},
},
AvailableRights={
"social-editothersprofile","socialprofile-viewspecialpage",},
DefaultUserOptions={
["bs-social-profile-infoshowemail"]=false,
},
config_prefix="bsg",
config={
BSSocialProfileFields={
value={
["social-profile-title"]={
i18n="bs-social-profile-field-title",
callback="\\BlueSpice\\Social\\Profile\\Field\\Title::getInstance",
},
["social-profile-name"]={
i18n="bs-social-profile-field-name",
callback="\\BlueSpice\\Social\\Profile\\Field\\Name::getInstance",
},
["social-profile-email"]={
i18n="bs-social-profile-field-email",
callback="\\BlueSpice\\Social\\Profile\\Field\\Email::getInstance",
},
},
},
BSSocialProfileCustomFields={
value={
["social-profile-department"]={
i18n="bs-social-profile-field-department",
type="string",
},
["social-profile-function"]={
i18n="bs-social-profile-field-function",
type="string",
},
["social-profile-location"]={
i18n="bs-social-profile-field-location",
type="string",
},
["social-profile-phone"]={
i18n="bs-social-profile-field-phone",
type="string",
},
},
},
},
Hooks={
PageSaveComplete="\\BlueSpice\\Social\\Profile\\Hook\\PageSaveComplete\\InvalidateProfileEntity::callback",
ArticleViewHeader="\\BlueSpice\\Social\\Profile\\Extension::onArticleViewHeader",
HtmlPageLinkRendererBegin="\\BlueSpice\\Social\\Profile\\Hook\\HtmlPageLinkRendererBegin\\SetProfileLinksKnown::callback",
UserSaveSettings="\\BlueSpice\\Social\\Profile\\Hook\\UserSaveSettings\\CreateAndInvalidateUserProfile::callback",
BSUserInfoMetaDataFactoryAllKeys="\\BlueSpice\\Social\\Profile\\Hook\\BSUserInfoMetaDataFactoryAllKeys\\AddCustomProfileFieldKeys::callback",
BSUserInfoMetaDataFactoryCallback="\\BlueSpice\\Social\\Profile\\Hook\\BSUserInfoMetaDataFactoryCallback\\AddCustomProfileFieldCallbacks::callback",
GetPreferences="\\BlueSpice\\Social\\Profile\\Hook\\GetPreferences\\AddShowProfileInfoEmail::callback",
BSPageTemplatesModifyTargetUrl="\\BlueSpice\\Social\\Profile\\Hook\\BSPageTemplatesModifyTargetUrl\\AddClassicProfileLink::callback",
UserLoadAfterLoadFromSession="\\BlueSpice\\Social\\Profile\\Hook\\UserLoadAfterLoadFromSession\\AddLDAPProfileDataSync::callback",
LocalUserCreated="\\BlueSpice\\Social\\Profile\\Hook\\LocalUserCreated\\CreateUserProfile::callback",
DeleteAccount="\\BlueSpice\\Social\\Profile\\Hook\\DeleteAccount\\DeleteUserProfile::callback",
BSUsageTrackerRegisterCollectors="\\BlueSpice\\Social\\Profile\\Hook\\BSUsageTrackerRegisterCollectors\\NoOfCustomSocialProfiles::callback",
},
composer="bluespice/socialprofile",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceSocialProfile",
},
BlueSpiceSocialRating={
name="BlueSpiceSocialRating",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceSocialRating",
author="Patric Wirth",
descriptionmsg="bs-socialrating-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceSocial="&gt;= 4.3",
BlueSpiceRating="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceSocialRating={
className="\\BlueSpice\\Social\\Rating\\Extension",
extPath="/BlueSpiceSocialRating",
status="beta",
package="BlueSpiceSocial",
},
},
},
BlueSpiceRating={
RatingRegistry={
bssocial="\\BlueSpice\\Social\\Rating\\RatingConfig\\Entity",
},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
Hooks={
BSEntityConfigDefaults="\\BlueSpice\\Social\\Rating\\Hook\\BSEntityConfigDefaults\\IsRateable::callback",
BSEntityGetFullData="\\BlueSpice\\Social\\Rating\\Hook\\BSEntityGetFullData\\AddRating::callback",
BSSocialModuleDepths="\\BlueSpice\\Social\\Rating\\Hook\\BSSocialModuleDepths\\AddModules::callback",
BSEntityConfigAttributeDefinitions="\\BlueSpice\\Social\\Rating\\Hook\\BSEntityConfigAttributeDefinitions\\AddRating::callback",
BSSocialEntityGetActions="\\BlueSpice\\Social\\Rating\\Hook\\BSSocialEntityGetActions\\AddRating::callback",
BSUsageTrackerRegisterCollectors="\\BlueSpice\\Social\\Rating\\Hook\\BSUsageTrackerRegisterCollectors\\NoOfDiscussionsRated::callback",
},
composer="bluespice/socialrating",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceSocialRating",
},
BlueSpiceSocialResolve={
name="BlueSpiceSocialResolve",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceSocialResolve",
author="Patric Wirth",
descriptionmsg="bs-socialresolve-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceSocial="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceSocialResolve={
className="\\BlueSpice\\Social\\Resolve\\Extension",
extPath="/BlueSpiceSocialResolve",
status="beta",
package="BlueSpiceSocial",
},
},
RendererRegistry={
entityresolve="\\BlueSpice\\Social\\Resolve\\Renderer\\Resolve::factory",
},
LessVarsRegistry={
["bs-social-background-color-resolved"]="#D9F2DA",
},
PermissionRegistry={
["social-resolve"]={
type="namespace",
roles={
"editor",},
},
},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
GroupPermissions={
["*"]={
["social-resolve"]=false,
},
user={
["social-resolve"]=true,
},
sysop={
["social-resolve"]=true,
},
},
AvailableRights={
"social-resolve",},
APIModules={
["bs-socialresolve-tasks"]="\\BlueSpice\\Social\\Resolve\\Api\\Task\\Resolve",
},
Hooks={
BSEntityConfigDefaults="\\BlueSpice\\Social\\Resolve\\Hook\\BSEntityConfigDefaults\\IsResolvable::callback",
BSEntityGetFullData="\\BlueSpice\\Social\\Resolve\\Hook\\BSEntityGetFullData\\AddResolve::callback",
BSEntitySetValuesByObject="\\BlueSpice\\Social\\Resolve\\Hook\\BSEntitySetValuesByObject\\AddResolve::callback",
BSSocialModuleDepths="\\BlueSpice\\Social\\Resolve\\Hook\\BSSocialModuleDepths\\AddModules::callback",
BSEntityConfigAttributeDefinitions="\\BlueSpice\\Social\\Resolve\\Hook\\BSEntityConfigAttributeDefinitions\\AddResolve::callback",
BSFoundationRendererMakeTagAttribs="\\BlueSpice\\Social\\Resolve\\Hook\\BSFoundationRendererMakeTagAttribs\\AddResolveClassToEntityRenderer::callback",
BSSocialEntityListRenderEntity="\\BlueSpice\\Social\\Resolve\\Hook\\BSSocialEntityListRenderEntity\\RenderShortWhenResolved::callback",
BSSocialEntityGetActions="\\BlueSpice\\Social\\Resolve\\Hook\\BSSocialEntityGetActions\\AddResolve::callback",
BSUsageTrackerRegisterCollectors="\\BlueSpice\\Social\\Resolve\\Hook\\BSUsageTrackerRegisterCollectors\\NoOfDiscussionsResolved::callback",
},
composer="bluespice/socialresolve",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceSocialResolve",
},
BlueSpiceSocialTags={
name="BlueSpiceSocialTags",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceSocialTags",
author="Patric Wirth",
descriptionmsg="bs-socialtags-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceSocial="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceSocialTags={
className="\\BlueSpice\\Social\\Tags\\Extension",
extPath="/BlueSpiceSocialTags",
status="beta",
package="BlueSpiceSocial",
},
},
PermissionRegistry={
["social-tagging"]={
type="namespace",
roles={
"admin","author","commenter","editor","maintenanceadmin","reviewer",},
},
},
},
},
callback="\\BlueSpice\\Social\\Tags\\Extension::onRegistration",
ExtensionMessagesFiles={
BlueSpiceSocialTagsAlias="languages/Tags.alias.php",
},
APIModules={
["bs-socialtags-tasks"]="\\BlueSpice\\Social\\Tags\\Api\\Task\\Tags",
},
GroupPermissions={
["*"]={
["social-tagging"]=false,
},
user={
["social-tagging"]=true,
},
sysop={
["social-tagging"]=true,
},
},
AvailableRights={
"social-tagging",},
SpecialPages={
SocialTags="\\BlueSpice\\Social\\Tags\\Special\\Tags",
},
config_prefix="bsg",
config={
SocialTagsTimelineAfterContentNamespaceBlackList={
value={
},
},
SocialTagsTimelineAfterContentShow={
value=false,
},
},
Hooks={
BSSocialModuleDepths="\\BlueSpice\\Social\\Tags\\Hook\\BSSocialModuleDepths\\AddModules::callback",
BSEntitySetValuesByObject="\\BlueSpice\\Social\\Tags\\Hook\\BSEntitySetValuesByObject\\SetTags::callback",
BSEntityGetFullData="\\BlueSpice\\Social\\Tags\\Hook\\BSEntityGetFullData\\AddTags::callback",
BSEntityConfigDefaults={
"\\BlueSpice\\Social\\Tags\\Hook\\BSEntityConfigDefaults\\IsTagable::callback","\\BlueSpice\\Social\\Tags\\Hook\\BSEntityConfigDefaults\\TagPermission::callback",},
BSSocialEntityOutputRenderBeforeContent="\\BlueSpice\\Social\\Tags\\Hook\\BSSocialEntityOutputRenderBeforeContent\\AddTagInfo::callback",
BSEntityConfigAttributeDefinitions="\\BlueSpice\\Social\\Tags\\Hook\\BSEntityConfigAttributeDefinitions\\AddTags::callback",
BSSocialEntityListInitialized="\\BlueSpice\\Social\\Tags\\Hook\\BSSocialEntityListInitialized\\ReplaceDiscussionPageListFilter::callback",
PageMoveComplete="\\BlueSpice\\Social\\Tags\\Hook\\PageMoveComplete\\UpdateTags::callback",
BSFoundationRendererMakeTagAttribs="\\BlueSpice\\Social\\Tags\\Hook\\BSFoundationRendererMakeTagAttribs\\AddForeignTopicClassToEntityRenderer::callback",
BSSocialEntityGetActions="\\BlueSpice\\Social\\Tags\\Hook\\BSSocialEntityGetActions\\AddTags::callback",
BSUsageTrackerRegisterCollectors="\\BlueSpice\\Social\\Tags\\Hook\\BSUsageTrackerRegisterCollectors\\NoOfDiscussionsLinkedPages::callback",
},
composer="bluespice/socialtags",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceSocialTags",
},
BlueSpiceSocialTimelineUpdate={
name="BlueSpiceSocialTimelineUpdate",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceSocialTimelineUpdate",
author="Josef Konrad",
descriptionmsg="bs-socialtimelineupdate-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceSocial="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceSocialTimelineUpdate={
className="\\BlueSpice\\Social\\TimelineUpdate\\Extension",
extPath="/BlueSpiceSocialTimelineUpdate",
status="beta",
package="BlueSpiceSocial",
},
},
},
},
Hooks={
BSSocialModuleDepths="\\BlueSpice\\Social\\TimelineUpdate\\Hook\\BSSocialModuleDepths\\AddModules::callback",
BsAdapterAjaxPingResult="\\BlueSpice\\Social\\TimelineUpdate\\Hook\\BsAdapterAjaxPingResult\\CheckUpdate::callback",
},
composer="bluespice/socialtimelineupdate",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceSocialTimelineUpdate",
},
BlueSpiceSocialTopics={
name="BlueSpiceSocialTopics",
version="4.5",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceSocialTopics",
author="Patric Wirth",
descriptionmsg="bs-socialtopics-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceSocial="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceSocialTopics={
className="\\BlueSpice\\Social\\Topics\\Extension",
extPath="/BlueSpiceSocialTopics",
status="beta",
package="BlueSpiceSocial",
},
},
ConfigDefinitionRegistry={
SocialTopicsTalkPageAutoCreate="\\BlueSpice\\Social\\Topics\\ConfigDefinition\\BSSocialTalkpageAutoCreate::getInstance",
},
RendererRegistry={
["social-topics-entity-discussion"]="\\BlueSpice\\Social\\Topics\\Renderer\\Entity\\Discussion::factory",
["social-topics-entity-topic"]="\\BlueSpice\\Social\\Topics\\Renderer\\Entity\\Topic::factory",
["social-topics-entitylist-newdiscussion"]="\\BlueSpice\\Social\\Topics\\Renderer\\EntityList\\NewDiscussion::factory",
["social-topics-entitylist-topicsaftercontent"]="\\BlueSpice\\Social\\Topics\\Renderer\\EntityList\\TopicsAfterContent::factory",
["social-topics-createnewdiscussion"]="\\BlueSpice\\Social\\Topics\\Renderer\\CreateNewDiscussion::factory",
["social-topics-createnewdiscussionpage"]="\\BlueSpice\\Social\\Topics\\Renderer\\CreateNewDiscussionPage::factory",
["social-topics-createfirsttopicaftercontent"]="\\BlueSpice\\Social\\Topics\\Renderer\\CreateFirstTopicAfterContent::factory",
},
EntityRegistry={
discussion="\\BlueSpice\\Social\\Topics\\EntityConfig\\Discussion",
topic="\\BlueSpice\\Social\\Topics\\EntityConfig\\Topic",
},
PermissionRegistry={
["social-topics"]={
type="namespace",
roles={
"commenter","editor","admin","maintenanceadmin",},
},
["social-topics-comment"]={
type="namespace",
roles={
"commenter","editor","admin","maintenanceadmin",},
},
},
},
Notifications={
Events={
["bs-social-topics-event"]={
spec={
class="\\BlueSpice\\Social\\Topics\\Event\\SocialTopicsEvent",
services={
"DBLoadBalancer","UserFactory","GroupPermissionsLookup","BSEntityFactory","SpecialPageFactory",},
},
buckets={
"content-low-freq",},
},
["bs-social-topics-for-user-event"]={
spec={
class="\\BlueSpice\\Social\\Topics\\Event\\SocialTopicsForUserEvent",
services={
"DBLoadBalancer","UserFactory","GroupPermissionsLookup","BSEntityFactory","SpecialPageFactory",},
},
buckets={
"personal",},
},
},
},
},
callback="\\BlueSpice\\Social\\Topics\\Extension::onRegistration",
ServiceWiringFiles={
"includes/ServiceWiring.php",},
APIModules={
["bs-socialtopics-tasks"]="\\BlueSpice\\Social\\Topics\\Api\\Task\\Topics",
},
GroupPermissions={
["*"]={
["social-topics"]=false,
["social-topics-comment"]=false,
},
user={
["social-topics"]=true,
["social-topics-comment"]=true,
},
sysop={
["social-topics"]=true,
["social-topics-comment"]=true,
},
},
AvailableRights={
"social-topics","social-topics-comment",},
ExtensionMessagesFiles={
BlueSpiceSocialTopicsAlias="languages/Topics.alias.php",
TopicsDiscussionMagic="languages/TopicsDiscussion.i18n.magic.php",
},
SpecialPages={
Topics="\\BlueSpice\\Social\\Topics\\Special\\Topics",
},
config_prefix="bsg",
config={
SocialTopicsTalkPageAutoCreate={
value=false,
descriptionmsg="bs-socialtopics-toc-entalkpageautocreate",
public=true,
},
SocialTopicsTimelineAfterContentNamespaceBlackList={
value={
},
},
SocialTopicsTimelineAfterContentShow={
value=true,
},
},
DefaultUserOptions={
["bs-social-topics-skipcreatedialog"]=true,
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\Social\\Topics\\HookHandler\\CommonUserInterface",
},
},
Hooks={
ArticleViewHeader="\\BlueSpice\\Social\\Topics\\Extension::onArticleViewHeader",
PageSaveComplete={
"\\BlueSpice\\Social\\Topics\\Hook\\PageSaveComplete\\AutoCreateDiscussionPage::callback","\\BlueSpice\\Social\\Topics\\Hook\\PageSaveComplete\\AutoCreateDiscussionEntity::callback",},
LoadExtensionSchemaUpdates={
"\\BlueSpice\\Social\\Topics\\Hook\\LoadExtensionSchemaUpdates\\AddShoutboxMigrationMaintenanceScript::callback","\\BlueSpice\\Social\\Topics\\Hook\\LoadExtensionSchemaUpdates\\AddRatedCommentsMigrationMaintenanceScript::callback",},
BSSocialTagsBeforeSetTags="\\BlueSpice\\Social\\Topics\\Hook\\BSSocialTagsBeforeSetTags\\AddTopicTalkPageTag::callback",
BSMigrateSettingsFromDeviatingNames="\\BlueSpice\\Social\\Topics\\Hook\\BSMigrateSettingsFromDeviatingNames\\MigrateSettings::callback",
BSSocialModuleDepths="\\BlueSpice\\Social\\Topics\\Hook\\BSSocialModuleDepths\\AddModules::callback",
GetDoubleUnderscoreIDs="\\BlueSpice\\Social\\Topics\\Hook\\GetDoubleUnderscoreIDs\\AddNoDiscussion::callback",
GetPreferences="\\BlueSpice\\Social\\Topics\\Hook\\GetPreferences\\AddSkipCreateDialoge::callback",
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
BSUsageTrackerRegisterCollectors="\\BlueSpice\\Social\\Topics\\Hook\\BSUsageTrackerRegisterCollectors\\NoOfDiscussionPages::callback",
},
composer="bluespice/socialtopics",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceSocialTopics",
},
BlueSpiceSocialWatch={
name="BlueSpiceSocialWatch",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceSocialWatch",
author="Patric Wirth",
descriptionmsg="bs-socialwatch-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceSocial="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceSocialWatch={
className="\\BlueSpice\\Social\\Watch\\Extension",
extPath="/BlueSpiceSocialWatch",
status="beta",
package="BlueSpiceSocial",
},
},
},
},
APIModules={
["bs-socialwatch-tasks"]="\\BlueSpice\\Social\\Watch\\Api\\Task\\WatchEntities",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
Hooks={
BSSocialModuleDepths="\\BlueSpice\\Social\\Watch\\Hook\\BSSocialModuleDepths\\AddModules::callback",
BSEntityGetFullData="\\BlueSpice\\Social\\Watch\\Hook\\BSEntityGetFullData\\AddWatch::callback",
BSEntityConfigDefaults="\\BlueSpice\\Social\\Watch\\Hook\\BSEntityConfigDefaults\\IsWatchable::callback",
BSEntitySaveComplete="\\BlueSpice\\Social\\Watch\\Hook\\BSEntitySaveComplete\\AutoWatch::callback",
BSSocialEntityGetActions="\\BlueSpice\\Social\\Watch\\Hook\\BSSocialEntityGetActions\\AddWatch::callback",
},
composer="bluespice/socialwatch",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceSocialWatch",
},
BlueSpiceSocialWikiPage={
name="BlueSpiceSocialWikiPage",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:SocialWikiPage",
author="Patric Wirth",
descriptionmsg="bs-socialwikipage-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceSocial="&gt;= 4.3",
BlueSpiceMultiUpload="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceSocialWikiPage={
className="\\BlueSpice\\Social\\WikiPage\\Extension",
extPath="/BlueSpiceSocialWikiPage",
status="beta",
package="BlueSpiceSocial",
},
},
EntityRegistry={
wikipage="\\BlueSpice\\Social\\WikiPage\\EntityConfig\\WikiPage",
stash="\\BlueSpice\\Social\\WikiPage\\EntityConfig\\Stash",
},
RendererRegistry={
["social-wikipage-entity-wikipage"]="\\BlueSpice\\Social\\WikiPage\\Renderer\\Entity\\WikiPage::factory",
["social-wikipage-entity-stash"]="\\BlueSpice\\Social\\WikiPage\\Renderer\\Entity\\Stash::factory",
["social-wikipage-entitylist-attachments"]="\\BlueSpice\\Social\\WikiPage\\Renderer\\EntityList\\Attachments::factory",
["social-wikipage-createnewwikipageentity"]="\\BlueSpice\\Social\\WikiPage\\Renderer\\CreateNewWikiPageEntity::factory",
["social-wikipage-entitylist-newwikipageentity"]="\\BlueSpice\\Social\\WikiPage\\Renderer\\EntityList\\NewWikiPageEntity::factory",
["social-wikipage-createfirstattachmentaftercontent"]="\\BlueSpice\\Social\\WikiPage\\Renderer\\CreateFirstAttachmentAfterContent::factory",
},
PermissionRegistry={
["social-stash"]={
type="namespace",
roles={
"editor","admin","maintenanceadmin",},
},
},
},
},
callback="\\BlueSpice\\Social\\WikiPage\\Extension::onRegistration",
SpecialPages={
WikiPageStash="\\BlueSpice\\Social\\WikiPage\\Special\\Stash",
},
APIModules={
["bs-socialstash-tasks"]="\\BlueSpice\\Social\\WikiPage\\Api\\Task\\Stash",
},
ExtensionMessagesFiles={
WikiPageStashAlias="languages/WikiPageStash.alias.php",
WikiPageStashMagic="languages/WikiPageStash.i18n.magic.php",
},
GroupPermissions={
["*"]={
["social-stash"]=false,
},
user={
["social-stash"]=true,
},
sysop={
["social-stash"]=true,
},
},
AvailableRights={
"social-stash",},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
config_prefix="bsg",
config={
SocialWikiPageTimelineAfterContentNamespaceBlackList={
value={
},
},
SocialWikiPageTimelineAfterContentShow={
value=true,
},
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\Social\\WikiPage\\HookHandler\\CommonUserInterface",
},
},
Hooks={
BSSocialModuleDepths="\\BlueSpice\\Social\\WikiPage\\Hook\\BSSocialModuleDepths\\AddModules::callback",
PageSaveComplete="\\BlueSpice\\Social\\WikiPage\\Hook\\PageSaveComplete\\CreateWikiPageEntity::callback",
GetDoubleUnderscoreIDs="\\BlueSpice\\Social\\WikiPage\\Hook\\GetDoubleUnderscoreIDs\\AddStash::callback",
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
},
composer="bluespice/socialwikipage",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceSocialWikiPage",
},
BlueSpiceSubPageTree={
name="BlueSpiceSubPageTree",
version="3.0.0-beta",
["license-name"]="GPL-3.0-only",
url="https://help.bluespice.com/index.php/BlueSpiceSubPageTree",
author="Leonid Verhovskij",
type="bluespice",
descriptionmsg="bs-subpagetree-desc",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceSubPageTree={
className="BlueSpiceSubPageTree",
extPath="/BlueSpiceSubPageTree",
},
},
},
},
requires={
MediaWiki="&gt;= 1.31.0",
extensions={
BlueSpiceFoundation="*",
},
},
Hooks={
ParserFirstCallInit="BlueSpiceSubPageTree::onParserSetup",
},
config_prefix="bsg",
config={
SubPageTreeRoot={
value=":",
},
},
composer="mediawiki/blue-spice-sub-page-tree",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceSubPageTree",
},
BlueSpiceTagCloud={
name="BlueSpiceTagCloud",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceTagCloud",
author={
"Patric Wirth",},
descriptionmsg="bs-tagcloud-desc",
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceTagCloud={
className="\\BlueSpice\\TagCloud\\Extension",
extPath="/BlueSpiceTagCloud",
package="BlueSpice Pro",
status="beta",
},
},
TagRegistry={
tagcloud="\\BlueSpice\\TagCloud\\Tag\\TagCloud",
},
RendererRegistry={
tagcloudtext="\\BlueSpice\\TagCloud\\Renderer\\TagCloud\\Text::factory",
tagcloudlist="\\BlueSpice\\TagCloud\\Renderer\\TagCloud\\LinkList::factory",
tagcloudcanvas3d="\\BlueSpice\\TagCloud\\Renderer\\TagCloud\\Canvas3D::factory",
},
},
BlueSpiceTagCloud={
StoreRegistry={
category="\\BlueSpice\\TagCloud\\Data\\TagCloud\\Category\\Store",
},
RendererRegistry={
text="tagcloudtext",
list="tagcloudlist",
canvas3d="tagcloudcanvas3d",
},
},
BlueSpiceVisualEditorConnector={
TagDefinitions={
"ext.bluespice.tagcloud.visualEditorPlugin",},
},
ContentDroplets={
Droplets={
tagcloud={
class="\\BlueSpice\\TagCloud\\ContentDroplets\\TagCloudDroplet",
},
},
},
},
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
config_prefix="bsgTagCloud",
config={
TypeCategoryExclude={
value={
},
public=false,
},
},
Hooks={
BSUEModulePDFgetPage="\\BlueSpice\\TagCloud\\Hook\\BSUEModulePDFgetPage\\TagCloudText::callback",
},
composer="bluespice/tagcloud",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceTagCloud",
},
BlueSpiceUEModuleBookPDF={
name="BlueSpiceUEModuleBookPDF",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceUEModuleBookPDF",
author={
"Robert Vogel","Sebastian Ulbricht",},
descriptionmsg="bs-uemodulebookpdf-extension-description",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceUniversalExport="&gt;= 4.3",
BlueSpiceBookshelf="&gt;= 4.3",
BlueSpiceUEModulePDF="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceUEModuleBookPDF={
className="\\BlueSpice\\UEModuleBookPDF\\Extension",
extPath="/BlueSpiceUEModuleBookPDF",
package="BlueSpice Pro",
status="stable",
},
},
ConfigDefinitionRegistry={
UEModuleBookPDFBookExportTOC="\\BlueSpice\\UEModuleBookPDF\\ConfigDefinition\\BookExportTOC::getInstance",
},
PermissionRegistry={
["uemodulebookpdf-export"]={
type="namespace",
roles={
"reader",},
},
},
},
BlueSpiceUniversalExport={
ModuleRegistry={
bookpdf="\\BsBookExportModulePDF::factory",
},
ExportDialogPluginRegistry={
bookpdf={
factory="\\BlueSpice\\UEModuleBookPDF\\ExportDialogPluginBook::factory",
},
},
},
BlueSpiceBookshelf={
MetaData={
template={
class="BlueSpice\\UEModuleBookPDF\\MetaData\\Template",
},
["bookpdf-export-toc"]={
class="BlueSpice\\UEModuleBookPDF\\MetaData\\TableOfContent",
},
},
BookViewTools={
["book-pdf"]={
class="BlueSpice\\UEModuleBookPDF\\Integration\\Bookshelf\\ExportBook",
},
},
},
},
GroupPermissions={
["*"]={
["uemodulebookpdf-export"]=true,
},
},
AvailableRights={
"uemodulebookpdf-export",},
config_prefix="bsg",
config={
UEModuleBookPDFBookExportTOC={
value="only-articles",
descriptionmsg="bs-uemodulebookpdf-pref-bookexporttoc",
public=true,
},
UEModuleBookPDFTemplatePath={
value="extensions/BlueSpiceUEModuleBookPDF/data/PDFTemplates",
},
UEModuleBookPDFDefaultTemplate={
value="BlueSpice Book",
},
UEModuleBookPDFExportDialogExcludeTemplates={
value={
},
},
},
HookHandlers={
["bs-books-overview-page-actions"]={
class="\\BlueSpice\\UEModuleBookPDF\\HookHandlers\\BSBookshelf",
services={
"SpecialPageFactory",},
},
},
Hooks={
BeforePageDisplay="\\BlueSpice\\UEModuleBookPDF\\Hook\\BeforePageDisplay\\AddResources::callback",
BSMigrateSettingsFromDeviatingNames="\\BlueSpice\\UEModuleBookPDF\\Hook\\BSMigrateSettingsFromDeviatingNames\\SkipServiceSettings::callback",
BSBookshelfGetBookData="\\BlueSpice\\UEModuleBookPDF\\Hook\\BSBookshelfGetBookData\\AddTemplateMetaData::callback",
BSBookshelfBookManager="\\BlueSpice\\UEModuleBookPDF\\Hook\\BSBookshelfBookManager\\AddDependencies::callback",
BSBookshelfBooksOverviewBeforeSetBookActions="bs-books-overview-page-actions",
},
composer="bluespice/uemodulebookpdf",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceUEModuleBookPDF",
},
BlueSpiceUEModuleDOCX={
name="BlueSpiceUEModuleDOCX",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:UEModuleDOCX",
author={
"Robert Vogel",},
descriptionmsg="bs-uemoduledocx-extension-description",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceUniversalExport="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceUEModuleDOCX={
className="\\BlueSpice\\UEModuleDOCX\\Extension",
extPath="/BlueSpiceUEModuleDOCX",
package="BlueSpice Pro",
status="stable",
},
},
ConfigDefinitionRegistry={
UEModuleDOCXSuppressNS="\\BlueSpice\\UEModuleDOCX\\ConfigDefinition\\SuppressNS::getInstance",
},
PermissionRegistry={
["uemoduledocx-export"]={
type="namespace",
roles={
"reader",},
},
["uemoduledocxsubpages-export"]={
type="namespace",
roles={
"reader",},
},
},
},
BlueSpiceUniversalExport={
ModuleRegistry={
docx="\\ExportModuleDOCX::factory",
},
},
},
GroupPermissions={
["*"]={
["uemoduledocx-export"]=true,
["uemoduledocxsubpages-export"]=true,
},
},
AvailableRights={
"uemoduledocx-export","uemoduledocxsubpages-export",},
config_prefix="bsg",
config={
UEModuleDOCXSuppressNS={
value=false,
descriptionmsg="bs-uemoduledocx-pref-SuppressNS",
public=true,
},
UEModuleDOCXDOCXServiceURL={
value="http://localhost/BShtml2DOCX",
},
UEModuleDOCXDOCXServiceSecret={
value="$1$DP0.QV2.$BPGuGZOMuWwuc5DlGI1lK/",
},
UEModuleDOCXDefaultTemplate={
value="BlueSpice.docx",
},
UEModuleDOCXTemplatePath={
value="extensions/BlueSpiceUEModuleDOCX/data/templates",
},
},
Hooks={
BSMigrateSettingsFromDeviatingNames="\\BlueSpice\\UEModuleDOCX\\Hook\\BSMigrateSettingsFromDeviatingNames\\SkipServiceSettings::callback",
},
composer="bluespice/uemoduledocx",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceUEModuleDOCX",
},
BlueSpiceUEModuleHTML={
name="BlueSpiceUEModuleHTML",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceUEModuleHTML",
author={
"Robert Vogel",},
descriptionmsg="bs-uemodulehtml-extension-description",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceUniversalExport="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceUEModuleHTML={
className="\\BlueSpice\\UEModuleHTML\\Extension",
extPath="/BlueSpiceUEModuleHTML",
package="BlueSpice Pro",
status="stable",
},
},
ConfigDefinitionRegistry={
UEModuleHTMLSuppressNS="\\BlueSpice\\UEModuleHTML\\ConfigDefinition\\SuppressNS::getInstance",
},
},
BlueSpiceUniversalExport={
ModuleRegistry={
html="\\ExportModuleHTML::factory",
},
ExportDialogPluginRegistry={
html={
factory="\\BlueSpice\\UEModuleHTML\\ExportDialogPluginHTML::factory",
},
},
},
},
config_prefix="bsg",
config={
UEModuleHTMLSuppressNS={
value=false,
descriptionmsg="bs-uemodulehtml-pref-SuppressNS",
public=true,
},
UEModuleHTMLTemplatePath={
value="extensions/BlueSpiceUEModuleHTML/data/HTMLTemplates",
},
},
Hooks={
BSMigrateSettingsFromDeviatingNames="\\BlueSpice\\UEModuleHTML\\Hook\\BSMigrateSettingsFromDeviatingNames\\SkipServiceSettings::callback",
},
composer="bluespice/uemodulehtml",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceUEModuleHTML",
},
BlueSpiceUEModulePDF={
name="BlueSpiceUEModulePDF",
["license-name"]="GPL-3.0-only",
version="4.5",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceUEModulePDF",
author="Robert Vogel",
descriptionmsg="bs-uemodulepdf-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceUniversalExport="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceUEModulePDF={
className="\\BlueSpice\\UEModulePDF\\Extension",
extPath="/BlueSpiceUEModulePDF",
},
},
ConfigDefinitionRegistry={
UEModulePDFSuppressNS="\\BlueSpice\\UEModulePDF\\ConfigDefinition\\SuppressNS::getInstance",
},
PermissionRegistry={
["uemodulepdf-export"]={
type="namespace",
roles={
"reader",},
},
["uemodulepdfsubpages-export"]={
type="namespace",
roles={
"reader",},
},
["uemodulepdfrecursive-export"]={
type="namespace",
roles={
"reader",},
},
},
},
BlueSpiceUniversalExport={
ModuleRegistry={
pdf="\\BsExportModulePDF::factory",
},
ExportDialogPluginRegistry={
pdf={
factory="\\BlueSpice\\UEModulePDF\\ExportDialogPluginPage::factory",
},
},
},
BlueSpiceUEModulePDF={
FileResolverRegistry={
["standard-resolver"]="\\PDFFileResolver",
["strip-special-characters-resolver"]="\\BlueSpice\\UEModulePDF\\PdfFileResolver\\StripSpecialCharsResolver",
},
},
},
callback="\\BlueSpice\\UEModulePDF\\Extension::onRegistration",
GroupPermissions={
["*"]={
["uemodulepdf-export"]=true,
["uemodulepdfsubpages-export"]=true,
["uemodulepdfrecursive-export"]=true,
},
},
AvailableRights={
"uemodulepdf-export","uemodulepdfsubpages-export","uemodulepdfrecursive-export",},
HookHandlers={
["remove-temporary-files"]={
class="\\BlueSpice\\UEModulePDF\\Hook\\BSUEModulePDFCreatePDFBeforeSend\\RemoveTemporaryFiles",
},
},
Hooks={
BSMigrateSettingsFromDeviatingNames="\\BlueSpice\\UEModulePDF\\Hook\\BSMigrateSettingsFromDeviatingNames\\SkipServiceSettings::callback",
BSUEModulePDFCreatePDFBeforeSend="remove-temporary-files",
},
config_prefix="bsg",
config={
UEModulePDFSuppressNS={
value=false,
descriptionmsg="bs-uemodulepdf-pref-suppressns",
public=true,
},
UEModulePDFPdfServiceURL={
value="http://127.0.0.1:8080/BShtml2PDF",
},
UEModulePDFDefaultTemplate={
value="BlueSpice",
},
UEModulePDFTemplatePath={
value="extensions/BlueSpiceUEModulePDF/data/PDFTemplates",
},
UEModulePDFAllowPartialExport={
value=false,
},
UEModulePDFFileResolver={
value="standard-resolver",
},
UEModulePDFExportDialogExcludeTemplates={
value={
},
},
},
composer="bluespice/uemodulepdf",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceUEModulePDF",
},
BlueSpiceUEModulePDFRecursive={
name="BlueSpiceUEModulePDFRecursive",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceUEModulePDFRecursive",
author={
"Robert Vogel",},
descriptionmsg="bs-uemodulepdfrecursive-extension-description",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceUniversalExport="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceUEModulePDFRecursive={
className="\\BlueSpice\\UEModulePDFRecursive\\Extension",
extPath="/BlueSpiceUEModulePDFRecursive",
package="BlueSpice Pro",
status="stable",
},
},
},
},
composer="bluespice/uemodulepdfrecursive",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceUEModulePDFRecursive",
},
BlueSpiceUEModulePDFSubpages={
name="BlueSpiceUEModulePDFSubpages",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceUEModulePDFSubpages",
author={
"Robert Vogel","Tobias Weichart",},
descriptionmsg="bs-uemodulepdfsubpages-extension-description",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceUniversalExport="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceUEModulePDFSubpages={
className="\\BlueSpice\\UEModulePDFSubpages\\Extension",
extPath="/BlueSpiceUEModulePDFSubpages",
package="BlueSpice Pro",
status="stable",
},
},
},
},
composer="bluespice/uemodulepdfsubpages",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceUEModulePDFSubpages",
},
BlueSpiceUEModuleTable2Excel={
name="BlueSpiceUEModuleTable2Excel",
version="4.5",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceUEModuleTable2Excel",
author={
"Patric Wirth",},
descriptionmsg="bs-uemoduletable2excel-extension-description",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
BlueSpiceUniversalExport="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceUEModuleTable2Excel={
className="\\BlueSpice\\UEModuleTable2Excel\\Extension",
extPath="/BlueSpiceUEModuleTable2Excel",
package="BlueSpice Pro",
status="beta",
},
},
},
BlueSpiceUniversalExport={
ModuleRegistry={
table2excel="\\BsUEModuleTable2Excel::factory",
},
},
},
composer="bluespice/uemoduletable2excel",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceUEModuleTable2Excel",
},
BlueSpiceUniversalExport={
name="BlueSpiceUniversalExport",
["license-name"]="GPL-3.0-only",
version="4.5",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceUniversalExport",
author="Robert Vogel",
descriptionmsg="bs-universalexport-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceUniversalExport={
className="\\BlueSpice\\UniversalExport\\Extension",
extPath="/BlueSpiceUniversalExport",
},
},
ConfigDefinitionRegistry={
UniversalExportMetadataDefaults="\\BlueSpice\\UniversalExport\\ConfigDefinition\\MetadataDefaults::getInstance",
UniversalExportMetadataOverrides="\\BlueSpice\\UniversalExport\\ConfigDefinition\\MetadataOverrides::getInstance",
},
TagRegistry={
uepagebreak="\\BlueSpice\\UniversalExport\\Tag\\PageBreak",
universalexport="\\BlueSpice\\UniversalExport\\Tag\\NoExport",
uehidetitle="\\BlueSpice\\UniversalExport\\Tag\\HideTitle",
ueexcludearticle="\\BlueSpice\\UniversalExport\\Tag\\ExcludeArticle",
["universalexport:meta"]="\\BlueSpice\\UniversalExport\\Tag\\Meta",
["universalexport:params"]="\\BlueSpice\\UniversalExport\\Tag\\Params",
},
},
BlueSpiceUniversalExport={
ExportTargetRegistry={
download="BlueSpice\\UniversalExport\\ExportTarget\\Download::factory",
localfilerepo="BlueSpice\\UniversalExport\\ExportTarget\\LocalFileRepo::factory",
localfilesystem="BlueSpice\\UniversalExport\\ExportTarget\\LocalFileSystem::factory",
},
ModuleRegistry={
},
ExportDialogPluginRegistry={
},
},
BlueSpiceVisualEditorConnector={
TagDefinitions={
"ext.bluespice.universalExport.visualEditorTagDefinition",},
PluginModules={
"ext.bluespice.universalExport.visualEditor",},
},
ContentDroplets={
Droplets={
["pdf-pagebreak"]={
class="BlueSpice\\UniversalExport\\ContentDroplets\\PDFPageBreakDroplet",
},
["pdf-noexport"]={
class="BlueSpice\\UniversalExport\\ContentDroplets\\PDFNoExportDroplet",
},
},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
SpecialPages={
UniversalExport="SpecialUniversalExport",
},
ExtensionMessagesFiles={
UniversalExportAlias="languages/SpecialUniversalExport.alias.php",
},
config_prefix="bsg",
config={
UniversalExportCategoryWhitelist={
value={
"Exportable","Public",},
},
UniversalExportCategoryBlacklist={
value={
"Confidential","Internal",},
},
UniversalExportMetadataDefaults={
value="{\"creator\":\"Hallo Welt! GmbH\"}",
descriptionmsg="bs-universalexport-pref-metadatadefaults",
public=true,
},
UniversalExportMetadataOverrides={
value="{\"producer\":\"UniversalExport 4.3.0 (BlueSpice MediaWiki)\"}",
descriptionmsg="bs-universalexport-pref-metadataoverrides",
public=true,
},
UniversalExportParamsDefaults={
value={
format="pdf",
["pdf-merging"]="0",
attachments="0",
recursive=false,
filter="use-all",
},
},
UniversalExportParamsOverrides={
value={
["use-serverside-caching"]=false,
["pdf-attachment-formats"]={
"doc","docx","xls","xlsx","ppt","pptx","odt","ods","odp","odg","svg",},
},
},
},
HookHandlers={
skin={
class="\\BlueSpice\\UniversalExport\\HookHandler\\SkinHandler",
services={
"BSUniversalExportDialogPluginFactory",},
},
["discovery-skin"]={
class="\\BlueSpice\\UniversalExport\\HookHandler\\DiscoverySkinHandler",
},
},
Hooks={
BSUsageTrackerRegisterCollectors={
"\\BlueSpice\\UniversalExport\\Hook\\BSUsageTrackerRegisterCollectors\\AddUEExcludeArticleTag::callback","\\BlueSpice\\UniversalExport\\Hook\\BSUsageTrackerRegisterCollectors\\AddUEExcludeTag::callback","\\BlueSpice\\UniversalExport\\Hook\\BSUsageTrackerRegisterCollectors\\AddUEHideTitleTag::callback","\\BlueSpice\\UniversalExport\\Hook\\BSUsageTrackerRegisterCollectors\\AddUEMetaTag::callback","\\BlueSpice\\UniversalExport\\Hook\\BSUsageTrackerRegisterCollectors\\AddUEPageBreakTag::callback","\\BlueSpice\\UniversalExport\\Hook\\BSUsageTrackerRegisterCollectors\\AddUEParamsTag::callback",},
SidebarBeforeOutput="skin",
BeforePageDisplay="skin",
MWStakeCommonUIRegisterSkinSlotComponents="discovery-skin",
},
composer="bluespice/universalexport",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceUniversalExport",
},
BlueSpiceUsageTracker={
name="BlueSpiceUsageTracker",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceUsageTracker",
author="Markus Glaser",
descriptionmsg="bs-usagetracker-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceUsageTracker={
className="\\BS\\UsageTracker\\Extension",
extPath="/BlueSpiceUsageTracker",
},
},
},
},
APIModules={
["bs-usagetracker-store"]="BS\\UsageTracker\\Api\\UsageTrackerStore",
},
Hooks={
LoadExtensionSchemaUpdates="BS\\UsageTracker\\Hook\\LoadExtensionSchemaUpdates\\AddUsageTrackerTable::callback",
BSUsageTrackerRegisterCollectors={
"BlueSpice\\UsageTracker\\Hook\\BSUsageTrackerRegisterCollectors\\NoOfCategories::callback","BlueSpice\\UsageTracker\\Hook\\BSUsageTrackerRegisterCollectors\\NoOfUsersPerGroup::callback","BlueSpice\\UsageTracker\\Hook\\BSUsageTrackerRegisterCollectors\\NoOfPagesByPageProperty::callback","BlueSpice\\UsageTracker\\Hook\\BSUsageTrackerRegisterCollectors\\NoOfPageContentModels::callback",},
},
JobClasses={
usageTrackerCollectJob="BS\\UsageTracker\\Jobs\\UsageTrackerCollectJob",
},
composer="bluespice/usagetracker",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceUsageTracker",
},
BlueSpiceUserInfo={
name="BlueSpiceUserInfo",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceUserInfo",
author="Patric Wirth",
descriptionmsg="bs-userinfo-description",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceUserInfo={
className="\\BlueSpice\\UserInfo\\Extension",
extPath="/BlueSpiceUserInfo",
package="BlueSpice Pro",
},
},
LessVarsRegistry={
["bs-userinfo-color-lighten-information"]="#BABABA",
},
},
BlueSpiceUserInfo={
MetaData={
name="\\BlueSpice\\UserInfo\\MetaData\\Name::getInstance",
email="\\BlueSpice\\UserInfo\\MetaData\\Email::getInstance",
},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
APIModules={
["bs-userinfometa"]="\\BlueSpice\\UserInfo\\Api\\Meta",
},
config_prefix="bsg",
config={
UserInfoHiddenMeta={
value={
"email",},
},
},
Hooks={
BeforePageDisplay="\\BlueSpice\\UserInfo\\Hook\\BeforePageDisplay\\AddResources::callback",
BSFoundationRendererMakeTagAttribs="\\BlueSpice\\UserInfo\\Hook\\BSFoundationRendererMakeTagAttribs\\AddMetaData::callback",
},
composer="bluespice/userinfo",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceUserInfo",
},
BlueSpiceUserManager={
name="BlueSpiceUserManager",
["license-name"]="GPL-3.0-only",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceUserManager",
author={
"Sebastian Ulbricht","Stephan Muggli","Markus Glaser","Leonid Verhovskij",},
descriptionmsg="bs-usermanager-desc",
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceUserManager={
className="\\BlueSpice\\UserManager\\Extension",
extPath="/BlueSpiceUserManager",
},
},
AdminToolRegistry={
["bs-usermanager-manager"]="BlueSpice\\UserManager\\AdminTool",
},
PermissionRegistry={
["usermanager-viewspecialpage"]={
type="global",
roles={
"accountmanager","admin","maintenanceadmin",},
},
["usermanager-editpassword"]={
type="global",
roles={
"accountmanager","admin","maintenanceadmin",},
},
["usermanager-deleteuser"]={
type="global",
roles={
},
},
},
},
},
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
SpecialPages={
UserManager="SpecialUserManager",
},
ExtensionMessagesFiles={
UserManagerAlias="includes/specials/SpecialUserManager.alias.php",
},
APIModules={
["bs-usermanager-tasks"]="BSApiTasksUserManager",
["bs-usermanager-group-store"]="BSApiChangeableGroupStore",
},
GroupPermissions={
sysop={
["usermanager-viewspecialpage"]=true,
["usermanager-deleteuser"]=false,
},
},
AvailableRights={
"usermanager-viewspecialpage","usermanager-deleteuser",},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\UserManager\\HookHandler\\CommonUserInterface",
},
},
Hooks={
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
BeforePageDisplay="\\BlueSpice\\UserManager\\Hook\\BeforePageDisplay\\AddModules::callback",
},
config_prefix="bsg",
config={
UserManagerForceResetLink={
value=false,
},
},
composer="bluespice/usermanager",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceUserManager",
},
BlueSpiceUserSidebar={
name="BlueSpiceUserSidebar",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"Dejan Savuljesku",},
url="https://en.wiki.bluespice.com/wiki/Reference:UserSidebar",
descriptionmsg="bs-usersidebar-desc",
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceUserSidebar={
className="\\BlueSpice\\UserSidebar\\Extension",
extPath="/BlueSpiceUserSidebar",
},
},
},
BlueSpiceUserSidebar={
Widgets={
},
WidgetRegistry={
},
},
MenuEditor={
Menus={
["user-sidebar"]={
class="BlueSpice\\UserSidebar\\Menu\\UserSidebar",
services={
"BSUserSidebarWidgetFactory","MWStakeWikitextParserFactory",},
},
},
Nodes={
["menu-user-sidebar-keyword"]={
classname="ext.usersidebar.data.UsersidebarKeywordNode",
module="ext.blueSpice.userSidebar.data",
},
},
},
},
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
callback="\\BlueSpice\\UserSidebar\\Extension::onRegistry",
ServiceWiringFiles={
"includes/ServiceWiring.php",},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\UserSidebar\\HookHandler\\CommonUserInterface",
},
},
Hooks={
BSUsageTrackerRegisterCollectors="\\BlueSpice\\UserSidebar\\Hook\\BSUsageTrackerRegisterCollectors\\NoOfUserSidebars::callback",
EditFormPreloadText={
"\\BlueSpice\\UserSidebar\\Hook\\EditFormPreloadText\\UserSidebarDefaultText::callback",},
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
},
config={
MenuEditorUserSidebarAllowedKeywords={
value={
"PAGESVISITED","YOUREDITS",},
},
},
composer="bluespice/usersidebar",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceUserSidebar",
},
BlueSpiceVisualDiff={
name="BlueSpiceVisualDiff",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:VisualDiff",
author={
"Markus Glaser","Robert Vogel",},
descriptionmsg="bs-visualdiff-extension-description",
requires={
MediaWiki="&gt;= 1.36.0",
extensions={
BlueSpiceFoundation="&gt;= 4.1",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceVisualDiff={
className="\\BlueSpice\\VisualDiff\\Extension",
extPath="/BlueSpiceVisualDiff",
package="BlueSpice Pro",
},
},
},
BlueSpiceVisualDiff={
DiffEngineRegistry={
HTMLDiffEngine="\\HTMLDiffEngine::factory",
UnifiedTextDiffEngine="\\UnifiedTextDiffEngine::factory",
},
},
},
callback="\\BlueSpice\\VisualDiff\\Extension::onRegistration",
ServiceWiringFiles={
"includes/ServiceWiring.php",},
DefaultUserOptions={
diffonly=0,
},
config_prefix="bsg",
config={
VisualDiffHtmlDiffEngineUrl={
value="http://localhost:8080/BShtmlDiff",
},
},
Hooks={
BSUEModulePDFBeforeAddingStyleBlocks="\\BlueSpice\\VisualDiff\\Hook\\BSUEModulePDFBeforeAddingStyleBlocks\\AddVisualDiffStyles::callback",
BSUEModulePDFBeforeCreatePDF="\\BlueSpice\\VisualDiff\\Hook\\BSUEModulePDFBeforeCreatePDF\\HideUnselectedDiffs::callback",
},
composer="bluespice/visualdiff",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceVisualDiff",
},
BlueSpiceVisualEditorConnector={
name="BlueSpiceVisualEditorConnector",
["license-name"]="GPL-3.0-only",
version="4.5",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceVisualEditorConnector",
author={
"Markus Glaser",},
descriptionmsg="bs-visualeditorconnector-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
VisualEditor="*",
OOJSPlus="&gt;= 2.0.0",
BlueSpiceVisualEditorConnector="*",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceVisualEditorConnector={
className="\\BlueSpice\\VisualEditorConnector\\Extension",
extPath="/BlueSpiceVisualEditorConnector",
status="beta",
package="BlueSpice Pro",
},
},
ConfigDefinitionRegistry={
VisualEditorConnectorEnableVisualEditor="\\BlueSpice\\VisualEditorConnector\\ConfigDefinition\\EnableVisualEditor::getInstance",
VisualEditorConnectorUploadDialogType="\\BlueSpice\\VisualEditorConnector\\ConfigDefinition\\UploadDialogType::getInstance",
},
},
BlueSpiceVisualEditorConnector={
PluginModules={
"ext.bluespice.visualEditorConnector.tableStyle","ext.bluespice.visualEditorConnector.internalLink",},
TagDefinitions={
},
PostProcessors={
},
PreProcessors={
},
ClientConfig={
ColorPickerColors="\\BlueSpice\\VisualEditorConnector\\ClientConfig\\ColorPickerColors::factory",
ColorPickerColorsBackground="\\BlueSpice\\VisualEditorConnector\\ClientConfig\\ColorPickerColorsBackground::factory",
CellBorderColors="\\BlueSpice\\VisualEditorConnector\\ClientConfig\\CellBorderColors::factory",
PluginModules="\\BlueSpice\\VisualEditorConnector\\ClientConfig\\PluginModules::factory",
StandalonePluginModules="\\BlueSpice\\VisualEditorConnector\\ClientConfig\\StandalonePluginModules::factory",
TableStyleRegistry="\\BlueSpice\\VisualEditorConnector\\ClientConfig\\TableStyleRegistry::factory",
TagDefinitions="\\BlueSpice\\VisualEditorConnector\\ClientConfig\\TagDefinitions::factory",
UploadType="\\BlueSpice\\VisualEditorConnector\\ClientConfig\\UploadType::factory",
PasteFilename="\\BlueSpice\\VisualEditorConnector\\ClientConfig\\PasteFilename::factory",
HelpUrl="\\BlueSpice\\VisualEditorConnector\\ClientConfig\\HelpUrl::factory",
},
},
VisualEditor={
PluginModules={
"ext.bluespice.visualEditorConnector.plugin",},
StandalonePluginModules={
},
},
BlueSpiceSaferEdit={
EnvironmentCheckers={
veaction="\\BlueSpice\\VisualEditorConnector\\SaferEdit\\EnvironmentChecker\\VeActionChecker::factory",
},
},
},
callback="\\BlueSpice\\VisualEditorConnector\\Extension::onRegistration",
config_prefix="bsg",
config={
VisualEditorConnectorEnableVisualEditor={
value=true,
descriptionmsg="bs-visualeditorconnector-enable-visualeditor",
public=true,
},
VisualEditorConnectorUploadDialogType={
value="original",
descriptionmsg="bs-visualeditorconnector-upload-dialog-type",
public=true,
},
VisualEditorConnectorTableStyleRegistry={
value={
["No table style"]="nostyle",
Standard="wikitable",
Content="contenttable",
["Content (black)"]="contenttable-black",
["Content (blue)"]="contenttable-blue",
["Content (darkblue)"]="contenttable-darkblue",
["Cusco Sky"]="cuscosky",
Casablanca="casablanca",
Greyscale="greyscale",
["Greyscale (narrow)"]="greyscale-narrow",
},
},
VisualEditorConnectorColorPickerColors={
description="Usage described in docs/custom_text_colors.md",
value={
{
class="col-white",
name="White",
},{
class="col-blue-light",
name="Light Blue",
},{
class="col-blue",
name="Blue",
},{
class="col-blue-dark",
name="Dark Blue",
},{
class="col-blue-navy",
name="Navy Blue",
},{
class="col-orange",
name="Orange",
},{
class="col-turquoise",
name="Turquoise",
},{
class="col-green",
name="Green",
},{
class="col-purple",
name="Purple",
},{
class="col-red",
name="Red",
},{
class="col-grey-light",
name="Light Grey",
},{
class="col-grey-medium",
name="Medium Grey",
},{
class="col-grey",
name="Grey",
},{
class="col-grey-dark",
name="Dark Grey",
},{
class="col-black",
name="Black",
},},
},
VisualEditorConnectorColorPickerColorsBackground={
description="Usage described in docs/custom_text_colors.md",
value={
{
class="col-white-bg",
name="White",
},{
class="col-blue-light-bg",
name="Light Blue",
},{
class="col-blue-bg",
name="Blue",
},{
class="col-blue-dark-bg",
name="Dark Blue",
},{
class="col-blue-navy-bg",
name="Navy Blue",
},{
class="col-orange-bg",
name="Orange",
},{
class="col-turquoise-bg",
name="Turquoise",
},{
class="col-green-bg",
name="Green",
},{
class="col-purple-bg",
name="Purple",
},{
class="col-red-bg",
name="Red",
},{
class="col-grey-light-bg",
name="Light Grey",
},{
class="col-grey-medium-bg",
name="Medium Grey",
},{
class="col-grey-bg",
name="Grey",
},{
class="col-grey-dark-bg",
name="Dark Grey",
},{
class="col-black-bg",
name="Black",
},},
},
VisualEditorConnectorCellBorderColors={
value={
{
code="#97bfe7",
},{
code="#5185b9",
},{
code="#0060df",
},{
code="#3e5389",
},{
code="#e49c00",
},{
code="#259596",
},{
code="#3fb34c",
},{
code="#cd41cb",
},{
code="#b73a3a",
},{
code="#d2d2d2",
},{
code="#acacac",
},{
code="#787878",
},{
code="#434343",
},{
code="#000000",
},},
},
VisualEditorConnectorPasteFilename={
value="{{pagename}}_{{timestamp}}",
description={
"Default name pasted files will receive.","Tokens {{timestamp}}, {{random}} and {{pagename}} can be used to generate unique parts of the name.","This name should not include the file extension",},
},
VisualEditorConnectorHelpUrl={
value="https://en.wiki.bluespice.com/wiki/Manual:Extension/VisualEditor",
description="Help URL for the VE help button",
},
},
Hooks={
BSSocialModuleDepths="\\BlueSpice\\VisualEditorConnector\\Hook\\BSSocialModuleDepths\\AddVECModules::callback",
BSPageTemplatesModifyTargetUrl="\\BlueSpice\\VisualEditorConnector\\Hook\\BSPageTemplatesModifyTargetUrl\\UseVisualEditor::callback",
BeforePageDisplay={
"\\BlueSpice\\VisualEditorConnector\\Hook\\BeforePageDisplay\\AddStaticStyles::callback",},
["NamespaceManager::getMetaFields"]="\\BlueSpice\\VisualEditorConnector\\Hook\\NamespaceManagerGetMetaFields\\RegisterMetaFields::callback",
BSApiNamespaceStoreMakeData="\\BlueSpice\\VisualEditorConnector\\Hook\\BSApiNamespaceStoreMakeData\\AddData::callback",
["NamespaceManager::editNamespace"]="\\BlueSpice\\VisualEditorConnector\\Hook\\NamespaceManagerEditNamespace\\SetVisualEditorValues::callback",
NamespaceManagerBeforePersistSettings="writeNamespaceConfiguration",
BSUEModulePDFBeforeAddingStyleBlocks="\\BlueSpice\\VisualEditorConnector\\Hook\\BSUEModulePDFBeforeAddingStyleBlock\\AddColors::callback",
UnitTestsList="\\BlueSpice\\VisualEditorConnector\\Hook\\UnitTestsList\\DisableFlaggedRevsTests::callback",
},
HookHandlers={
writeNamespaceConfiguration={
class="\\BlueSpice\\VisualEditorConnector\\Hook\\WriteNamespaceConfiguration",
},
},
composer="bluespice/visualeditorconnector",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceVisualEditorConnector",
},
BlueSpiceWatchList={
name="BlueSpiceWatchList",
version="4.2.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceWatchList",
author="Robert Vogel",
descriptionmsg="bs-watchlist-desc",
type="bluespice",
["license-name"]="GPL-3.0-only",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceWatchList={
className="\\BlueSpice\\WatchList\\Extension",
extPath="/BlueSpiceWatchList",
},
},
TagRegistry={
watchlist="\\BlueSpice\\WatchList\\Tag\\WatchList",
},
},
BlueSpiceUserSidebar={
Widgets={
WATCHLIST={
callback="\\BlueSpice\\WatchList\\Panel\\WatchList::factory",
default=true,
},
},
},
BlueSpiceDiscovery={
AttentionIndicatorRegistry={
watchlist="\\BlueSpice\\WatchList\\AttentionIndicator\\WatchList::factory",
},
},
BlueSpiceVisualEditorConnector={
TagDefinitions={
"ext.bluespice.watchlist.visualEditor",},
},
ContentDroplets={
Droplets={
watchlist={
class="\\BlueSpice\\WatchList\\ContentDroplets\\WatchlistDroplet",
},
},
},
},
HookHandlers={
skin={
class="\\BlueSpice\\WatchList\\HookHandler\\Skin",
},
},
Hooks={
BeforePageDisplay={
"\\BlueSpice\\WatchList\\Hook\\BeforePageDisplay\\AddModules::callback",},
BSUsageTrackerRegisterCollectors="\\BlueSpice\\WatchList\\Hook\\BSUsageTrackerRegisterCollectors\\AddWatchListTag::callback",
["SkinTemplateNavigation::Universal"]="skin",
},
composer="bluespice/watchlist",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceWatchList",
},
BlueSpiceWhoIsOnline={
name="BlueSpiceWhoIsOnline",
version="4.5",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceWhoIsOnline",
author={
"Markus Glaser","Patric Wirth",},
descriptionmsg="bs-whoisonline-desc",
type="bluespice",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceWhoIsOnline={
className="\\BlueSpice\\WhoIsOnline\\Extension",
extPath="/BlueSpiceWhoIsOnline",
},
},
ConfigDefinitionRegistry={
WhoIsOnlineMaxIdleTime="\\BlueSpice\\WhoIsOnline\\ConfigDefinition\\MaxIdleTime::getInstance",
WhoIsOnlineInterval="\\BlueSpice\\WhoIsOnline\\ConfigDefinition\\Interval::getInstance",
},
RunJobsTriggerHandlerRegistry={
["bs-whoisonline-deleteoldentries"]="\\BlueSpice\\WhoIsOnline\\RunJobsTriggerHandler\\DeleteOldEntries::factory",
},
TagRegistry={
whoisonlinecount="\\BlueSpice\\WhoIsOnline\\Tag\\Count",
whoisonlinepopup="\\BlueSpice\\WhoIsOnline\\Tag\\PopUp",
},
RendererRegistry={
["whoisonline-userlist"]="\\BlueSpice\\WhoIsOnline\\Renderer\\UserList::factory",
},
},
BlueSpiceVisualEditorConnector={
TagDefinitions={
"ext.bluespice.whoisonlinecount.visualEditorTagDefinition","ext.bluespice.whoisonlinepopup.visualEditorTagDefinition",},
},
BlueSpiceExtendedStatistics={
SnapshotProviders={
["wo-logincount"]={
class="\\BlueSpice\\WhoIsOnline\\Statistics\\SnapshotProvider\\LoginCount",
services={
"DBLoadBalancer",},
},
},
Reports={
["wo-logincount"]={
class="\\BlueSpice\\WhoIsOnline\\Statistics\\Report\\LoginCount",
},
},
},
ContentDroplets={
Droplets={
["whoisonline-popup"]={
class="\\BlueSpice\\WhoIsOnline\\ContentDroplets\\WhoIsOnlinePopupDroplet",
},
["whoisonline-count"]={
class="\\BlueSpice\\WhoIsOnline\\ContentDroplets\\WhoIsOnlineCountDroplet",
},
},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
ExtensionMessagesFiles={
WhoIsOnlineMagic="languages/WhoIsOnline.i18n.magic.php",
},
Hooks={
BSUsageTrackerRegisterCollectors={
"\\BlueSpice\\WhoIsOnline\\Hook\\BSUsageTrackerRegisterCollectors\\AddWhoIsOnlineCountTag::callback","\\BlueSpice\\WhoIsOnline\\Hook\\BSUsageTrackerRegisterCollectors\\AddWhoIsOnlinePopUpTag::callback",},
BeforePageDisplay={
"\\BlueSpice\\WhoIsOnline\\Hook\\BeforePageDisplay\\AddModules::callback","\\BlueSpice\\WhoIsOnline\\Hook\\BeforePageDisplay\\InsertTrace::callback",},
LoadExtensionSchemaUpdates={
"\\BlueSpice\\WhoIsOnline\\Hook\\LoadExtensionSchemaUpdates\\AddWhoIsOnlineTable::callback","\\BlueSpice\\WhoIsOnline\\Hook\\LoadExtensionSchemaUpdates\\AddClearTableLoggedUpdate::callback",},
BsAdapterAjaxPingResult={
"\\BlueSpice\\WhoIsOnline\\Hook\\BsAdapterAjaxPingResult\\UpdatePortlets::callback","\\BlueSpice\\WhoIsOnline\\Hook\\BsAdapterAjaxPingResult\\UpdateOnlineMarkers::callback",},
BSFoundationRendererMakeTagAttribs="\\BlueSpice\\WhoIsOnline\\Hook\\BSFoundationRendererMakeTagAttribs\\AddUserProfileOnlineMarkerMetaData::callback",
MergeAccountFromTo="\\BlueSpice\\WhoIsOnline\\Hook\\MergeAccountFromTo\\MergeWhoIsOnlineDBFields::callback",
},
config_prefix="bsg",
config={
WhoIsOnlineMaxIdleTime={
value=600,
descriptionmsg="bs-whoisonline-pref-maxidletime",
public=true,
},
WhoIsOnlineInterval={
value=10,
descriptionmsg="bs-whoisonline-pref-interval",
public=true,
},
WhoIsOnlineLimitCount={
value=7,
descriptionmsg="bs-whoisonline-pref-limitcount",
public=true,
},
},
composer="bluespice/whoisonline",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceWhoIsOnline",
},
BlueSpiceWikiExplorer={
name="BlueSpiceWikiExplorer",
version="4.2.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:BlueSpiceWikiExplorer",
author={
"Sebastian Ulbricht","Patric Wirth",},
descriptionmsg="bs-wikiexplorer-extension-description",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
BlueSpiceFoundation="&gt;= 4.3",
},
},
type="bluespice",
attributes={
BlueSpiceFoundation={
Extensions={
BlueSpiceWikiExplorer={
className="\\BlueSpice\\WikiExplorer\\Extension",
extPath="/BlueSpiceWikiExplorer",
package="BlueSpice Pro",
},
},
},
},
APIModules={
["bs-wikiexplorer-store"]="BSApiWikiExplorerStore",
},
SpecialPages={
WikiExplorer="SpecialWikiExplorer",
},
ExtensionMessagesFiles={
WikiExplorerAlias="languages/SpecialWikiExplorer.alias.php",
},
HookHandlers={
["common-user-interface"]={
class="\\BlueSpice\\WikiExplorer\\HookHandler\\CommonUserInterface",
},
},
Hooks={
BSUserSidebarGlobalActionsWidgetGlobalActions="WikiExplorer::onBSUserSidebarGlobalActionsWidgetGlobalActions",
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
},
composer="bluespice/wikiexplorer",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BlueSpiceWikiExplorer",
},
BoilerPlate={
name="BoilerPlate",
author={
"Your Name",},
url="https://www.mediawiki.org/wiki/Extension:BoilerPlate",
descriptionmsg="boilerplate-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
},
config={
BoilerPlateEnableFoo={
description="Enable the Foo feature.",
value=true,
},
BoilerPlateVandalizeEachPage={
description="Write 'BoilerPlate was here' on each page",
value=false,
},
},
HookHandlers={
BoilerPlateHooks={
class="MediaWiki\\Extension\\BoilerPlate\\Hooks",
},
},
Hooks={
BeforePageDisplay="BoilerPlateHooks",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BoilerPlate",
},
BounceHandler={
name="BounceHandler",
version="1.0",
author={
"Tony Thomas","Kunal Mehta","Jeff Green","Sam Reed",},
url="https://www.mediawiki.org/wiki/Extension:BounceHandler",
descriptionmsg="bouncehandler-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
APIModules={
bouncehandler={
class="MediaWiki\\Extension\\BounceHandler\\ApiBounceHandler",
services={
"JobQueueGroupFactory",},
},
},
config={
BounceHandlerCluster={
value=false,
},
BounceHandlerInternalIPs={
value={
"127.0.0.1","::1",},
},
BounceHandlerSharedDB={
value=false,
},
BounceHandlerUnconfirmUsers={
value=false,
},
BounceRecordLimit={
value=10,
},
BounceRecordMaxAge={
value=5184000,
},
BounceRecordPeriod={
value=604800,
},
GenerateVERP={
value=true,
},
UnrecognizedBounceNotify={
value={
},
},
VERPAcceptTime={
value=259200,
},
VERPalgorithm={
value="md5",
},
VERPdomainPart={
value=nil,
},
VERPprefix={
value="wiki",
},
VERPsecret={
value="MediawikiVERP",
},
},
Hooks={
UserMailerChangeReturnPath="main",
LoadExtensionSchemaUpdates="schema",
BeforeCreateEchoEvent="MediaWiki\\Extension\\BounceHandler\\Hooks::onBeforeCreateEchoEvent",
EchoGetDefaultNotifiedUsers="MediaWiki\\Extension\\BounceHandler\\Hooks::onEchoGetDefaultNotifiedUsers",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\BounceHandler\\Hooks",
},
schema={
class="MediaWiki\\Extension\\BounceHandler\\SchemaHooks",
},
},
JobClasses={
BounceHandlerJob="MediaWiki\\Extension\\BounceHandler\\BounceHandlerJob",
BounceHandlerNotificationJob="MediaWiki\\Extension\\BounceHandler\\BounceHandlerNotificationJob",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BounceHandler",
},
BreadCrumbs2={
name="BreadCrumbs2",
version="2.1.3",
author={
"Eric Hartwell","Ike Hecht",},
url="https://www.mediawiki.org/wiki/Extension:BreadCrumbs2",
descriptionmsg="breadcrumbs2-desc",
["license-name"]="CC-BY-3.0",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
SkinSubPageSubtitle="BreadCrumbs2Hooks::onSkinSubPageSubtitle",
SidebarBeforeOutput="BreadCrumbs2Hooks::onSidebarBeforeOutput",
},
config={
BreadCrumbs2RemoveBasePageLink={
description="If breadcrumbs are defined for this page, remove the link back to the base page.",
value=false,
},
BreadCrumbs2HideUnmatched={
description="If no breadcrumbs are defined for this page, show nothing.",
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BreadCrumbs2",
},
BrickipediaExtra={
name="Brickipedia Extra",
version="1.2",
author={
"Adam Carter/UltrasonicNXT","George Barnick","Lewis Cawte","Jack Phoenix","Samantha Nguyen","...",},
requires={
MediaWiki="&gt;= 1.35.0",
},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:BrickipediaExtra",
descriptionmsg="brickipedia-extra-desc",
type="other",
Hooks={
SkinAddFooterLinks="BrickipediaExtraHooks::onSkinAddFooterLinks",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BrickipediaExtra",
},
Buggy={
name="Buggy",
version="0.1.0",
author={
"Gergő Tisza",},
url="https://www.mediawiki.org/wiki/Extension:Buggy",
descriptionmsg="buggy-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.33.0",
},
Hooks={
BeforePageDisplay={
"BuggyHooks::onBeforePageDisplay",},
},
APIModules={
buggy="ApiBuggy",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Buggy",
},
BulkBlock={
name="BulkBlock",
namemsg="bulkblock-extensionname",
author="WikiTeq team",
url="https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:BulkBlock",
descriptionmsg="bulkblock-desc",
version="1.0.0",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
BulkBlockAlias="BulkBlockAlias.alias.php",
},
SpecialPages={
BulkBlock={
class="SpecialBulkBlock",
services={
"UserFactory","UserNameUtils",},
},
},
AvailableRights={
"bulkblock",},
GroupPermissions={
sysop={
bulkblock=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/BulkBlock",
},
CIForms={
name="CIForms",
author="thomas-topway-it",
version="1.3.1",
url="https://www.mediawiki.org/wiki/Extension:CIForms",
descriptionmsg="ci-forms-extension-description",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
callback="CIForms::initExtension",
ExtensionMessagesFiles={
CIFormsAlias="CIForms.alias.php",
CIFormsMagic="CIForms.i18n.php",
},
APIModules={
["ciforms-check-latest-version"]="CIFormsApiCheckLatestVersion",
},
Hooks={
LoadExtensionSchemaUpdates="CIForms::onLoadExtensionSchemaUpdates",
ParserFirstCallInit="CIForms::onParserFirstCallInit",
OutputPageParserOutput="CIForms::onOutputPageParserOutput",
},
SpecialPages={
CIFormsSubmit="CIFormsSubmit",
CIFormsManage="CIFormsManage",
},
config_prefix="CIForms",
config={
SubmissionGroups={
value={
},
},
SubmissionGroupsGlobalMode={
value=0,
},
SubmitEmail={
value={
},
},
SubmitEmailGlobalMode={
value=0,
},
SuccessMessage={
value=nil,
},
SuccessMessageGlobalMode={
value=0,
},
SuccessPage={
value=nil,
},
SuccessPageGlobalMode={
value=0,
},
ErrorMessage={
value=nil,
},
ErrorMessageGlobalMode={
value=0,
},
ErrorPage={
value=nil,
},
ErrorPageGlobalMode={
value=0,
},
GoogleRecaptchaSiteKey={
value=nil,
},
GoogleRecaptchaSecret={
value=nil,
},
SenderEmail={
value=nil,
},
SenderName={
value=nil,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CIForms",
},
CSS={
name="CSS",
version="3.5.0",
author={
"Aran Dunkley","Rusty Burchfield",},
url="https://www.mediawiki.org/wiki/Extension:CSS",
descriptionmsg="css-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
ExtensionMessagesFiles={
CSSMagic="CSS.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="CSS::onParserFirstCallInit",
RawPageViewBeforeOutput="CSS::onRawPageViewBeforeOutput",
},
config={
CSSPath=false,
CSSIdentifier="css-extension",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CSS",
},
["Calendar-Wikivoyage"]={
name="Calendar",
version="1.1",
author="Roland Unger",
url="https://www.mediawiki.org/wiki/Extension:Calendar-Wikivoyage",
descriptionmsg="calendar-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
},
["license-name"]="GPL-2.0-or-later",
ExtensionMessagesFiles={
CalendarMagic="Calendar.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Calendar\\Hooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Calendar",
},
CampaignEvents={
name="CampaignEvents",
author={
"[https://meta.wikimedia.org/wiki/Campaigns/Foundation_Product_Team WMF Campaigns Team]",},
url="https://www.mediawiki.org/wiki/Extension:CampaignEvents",
descriptionmsg="campaignevents-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.43",
},
attributes={
VisualEditor={
AvailableNamespaces={
Event=true,
},
},
},
AvailableRights={
"campaignevents-enable-registration","campaignevents-delete-registration","campaignevents-organize-events","campaignevents-email-participants",},
config={
CampaignEventsProgramsAndEventsDashboardInstance={
description="Determines which instance of the P&amp;E Dashboard should be used, if any. Supported values are 'production', 'staging', or null to not use the dashboard.",
value=nil,
},
CampaignEventsProgramsAndEventsDashboardAPISecret={
description="API secret to use with the selected P&amp;E Dashboard instance. Must be configured if you intend to use the P&amp;E Dashboard.",
value=nil,
},
CampaignEventsEnableWikimediaParticipantQuestions={
description="Flag to enable Wikimedia-specific participant questions. This flag could be reconsidered in the future, in favour of other solutions (like a hook to add Wikimedia-specific questions).",
value=true,
},
CampaignEventsEnableEventInvitation={
description="Flag to enable event invitation feature on a wiki",
value=false,
},
CampaignEventsShowEventInvitationSpecialPages={
description="Temporary flag to show/hide Special pages related to event invitation",
value=false,
},
},
DatabaseVirtualDomains={
"virtual-campaignevents",},
DefaultUserOptions={
["echo-subscriptions-email-campaign-events-notification-registration"]=true,
["echo-subscriptions-web-campaign-events-notification-registration"]=false,
},
GroupPermissions={
user={
["campaignevents-enable-registration"]=true,
["campaignevents-organize-events"]=true,
["campaignevents-email-participants"]=true,
},
sysop={
["campaignevents-delete-registration"]=true,
},
},
ExtensionMessagesFiles={
CampaignEventsAliases="CampaignEvents.alias.php",
CampaignEventsNamespaces="CampaignEvents.namespaces.php",
},
HookHandlers={
SchemaChanges={
class="MediaWiki\\Extension\\CampaignEvents\\Hooks\\Handlers\\SchemaChangesHandler",
},
ArticleViewHeader={
class="MediaWiki\\Extension\\CampaignEvents\\Hooks\\Handlers\\ArticleViewHeaderHandler",
services={
"CampaignEventsEventPageDecoratorFactory",},
},
PageMoveAndDeleteHandler={
class="MediaWiki\\Extension\\CampaignEvents\\Hooks\\Handlers\\PageMoveAndDeleteHandler",
services={
"CampaignEventsPageEventLookup","CampaignEventsEventStore","CampaignEventsDeleteEventCommand","TitleFormatter","CampaignEventsPageFactory",},
},
EchoHooksHandler={
class="MediaWiki\\Extension\\CampaignEvents\\Hooks\\Handlers\\EchoHooksHandler",
},
SpecialPageInitList={
class="MediaWiki\\Extension\\CampaignEvents\\Hooks\\Handlers\\SpecialPageInitListHandler",
services={
"MainConfig",},
},
},
Hooks={
LoadExtensionSchemaUpdates="SchemaChanges",
ArticleViewHeader="ArticleViewHeader",
PageMoveComplete="PageMoveAndDeleteHandler",
PageDeleteComplete="PageMoveAndDeleteHandler",
TitleMove="PageMoveAndDeleteHandler",
BeforeCreateEchoEvent="EchoHooksHandler",
SpecialPage_initList="SpecialPageInitList",
},
JobClasses={
sendCampaignEmail="MediaWiki\\Extension\\CampaignEvents\\Messaging\\EmailUsersJob",
CampaignEventsFindPotentialInvitees={
class="MediaWiki\\Extension\\CampaignEvents\\Invitation\\CampaignEventsFindPotentialInvitees",
needsPage=false,
},
},
namespaces={
{
id=1728,
constant="NS_EVENT",
name="Event",
subpages=true,
},{
id=1729,
constant="NS_EVENT_TALK",
name="Event_talk",
subpages=true,
},},
RateLimits={
["campaignevents-email-participants"]={
["user-global"]={
5,86400,},
},
},
RestRoutes={
{
path="/campaignevents/v0/event_registration",
method="POST",
class="MediaWiki\\Extension\\CampaignEvents\\Rest\\EnableEventRegistrationHandler",
services={
"CampaignEventsEventFactory","CampaignEventsPermissionChecker","CampaignEventsEditEventCommand","CampaignEventsOrganizersStore","CampaignEventsCentralUserLookup","CampaignEventsEventQuestionsRegistry",},
},{
path="/campaignevents/v0/event_registration/{id}",
method="GET",
class="MediaWiki\\Extension\\CampaignEvents\\Rest\\GetEventRegistrationHandler",
services={
"CampaignEventsEventLookup","CampaignEventsTrackingToolRegistry",},
},{
path="/campaignevents/v0/event_registration/{id}",
method="DELETE",
class="MediaWiki\\Extension\\CampaignEvents\\Rest\\DeleteEventRegistrationHandler",
services={
"CampaignEventsEventLookup","CampaignEventsDeleteEventCommand",},
},{
path="/campaignevents/v0/event_registration/{id}/participants/self",
method="PUT",
class="MediaWiki\\Extension\\CampaignEvents\\Rest\\RegisterForEventHandler",
services={
"CampaignEventsEventLookup","CampaignEventsRegisterParticipantCommand","CampaignEventsEventQuestionsRegistry","CampaignEventsParticipantsStore","CampaignEventsCentralUserLookup",},
},{
path="/campaignevents/v0/event_registration/{id}/participants/self",
method="DELETE",
class="MediaWiki\\Extension\\CampaignEvents\\Rest\\CancelEventRegistrationHandler",
services={
"CampaignEventsEventLookup","CampaignEventsUnregisterParticipantCommand",},
},{
path="/campaignevents/v0/event_registration/{id}/participants/self",
method="GET",
class="MediaWiki\\Extension\\CampaignEvents\\Rest\\GetOwnRegistrationInfoHandler",
services={
"CampaignEventsEventLookup","CampaignEventsParticipantsStore","CampaignEventsCentralUserLookup","CampaignEventsEventQuestionsRegistry",},
},{
path="/campaignevents/v0/event_registration/{id}",
method="PUT",
class="MediaWiki\\Extension\\CampaignEvents\\Rest\\UpdateEventRegistrationHandler",
services={
"CampaignEventsEventFactory","CampaignEventsPermissionChecker","CampaignEventsEditEventCommand","CampaignEventsOrganizersStore","CampaignEventsCentralUserLookup","CampaignEventsEventQuestionsRegistry","CampaignEventsEventLookup",},
},{
path="/campaignevents/v0/event_registration/{id}/organizers",
method="GET",
class="MediaWiki\\Extension\\CampaignEvents\\Rest\\ListOrganizersHandler",
services={
"CampaignEventsEventLookup","CampaignEventsOrganizersStore","CampaignEventsRoleFormatter","CampaignEventsCentralUserLookup","CampaignEventsUserLinker",},
},{
path="/campaignevents/v0/event_registration/{id}/organizers",
method="PUT",
class="MediaWiki\\Extension\\CampaignEvents\\Rest\\SetOrganizersHandler",
services={
"CampaignEventsEventLookup","CampaignEventsEditEventCommand",},
},{
path="/campaignevents/v0/event_registration/{id}/participants",
method="GET",
class="MediaWiki\\Extension\\CampaignEvents\\Rest\\ListParticipantsHandler",
services={
"CampaignEventsPermissionChecker","CampaignEventsEventLookup","CampaignEventsParticipantsStore","CampaignEventsCentralUserLookup","CampaignEventsUserLinker","UserFactory","CampaignEventsUserMailer","CampaignEventsEventQuestionsRegistry","MessageFormatterFactory",},
},{
path="/campaignevents/v0/organizer/{userid}/event_registrations",
method="GET",
class="MediaWiki\\Extension\\CampaignEvents\\Rest\\ListEventsByOrganizerHandler",
services={
"CampaignEventsEventLookup","CampaignEventsCentralUserLookup",},
},{
path="/campaignevents/v0/participant/{userid}/event_registrations",
method="GET",
class="MediaWiki\\Extension\\CampaignEvents\\Rest\\ListEventsByParticipantHandler",
services={
"CampaignEventsEventLookup","CampaignEventsCentralUserLookup",},
},{
path="/campaignevents/v0/event_registration/{id}/participants",
method="DELETE",
class="MediaWiki\\Extension\\CampaignEvents\\Rest\\RemoveParticipantsFromEventHandler",
services={
"CampaignEventsEventLookup","CampaignEventsUnregisterParticipantCommand",},
},{
path="/campaignevents/v0/event_registration/{id}/email",
method="POST",
class="MediaWiki\\Extension\\CampaignEvents\\Rest\\EmailUsersHandler",
services={
"CampaignEventsPermissionChecker","CampaignEventsUserMailer","CampaignEventsParticipantsStore","CampaignEventsEventLookup",},
},{
path="/campaignevents/v0/participant_questions",
method="GET",
class="MediaWiki\\Extension\\CampaignEvents\\Rest\\GetParticipantQuestionsHandler",
services={
"CampaignEventsEventQuestionsRegistry","MessageFormatterFactory","ContentLanguage",},
},},
ServiceWiringFiles={
"src/ServiceWiring.php",},
SpecialPages={
EnableEventRegistration={
class="MediaWiki\\Extension\\CampaignEvents\\Special\\SpecialEnableEventRegistration",
services={
"CampaignEventsEventLookup","CampaignEventsEventFactory","CampaignEventsEditEventCommand","CampaignEventsPolicyMessagesLookup","CampaignEventsOrganizersStore","CampaignEventsPermissionChecker","CampaignEventsCentralUserLookup","CampaignEventsTrackingToolRegistry","CampaignEventsEventQuestionsRegistry","CampaignEventsHookRunner",},
},
EditEventRegistration={
class="MediaWiki\\Extension\\CampaignEvents\\Special\\SpecialEditEventRegistration",
services={
"CampaignEventsEventLookup","CampaignEventsEventFactory","CampaignEventsEditEventCommand","CampaignEventsPermissionChecker","CampaignEventsPolicyMessagesLookup","CampaignEventsOrganizersStore","CampaignEventsCentralUserLookup","CampaignEventsTrackingToolRegistry","CampaignEventsEventQuestionsRegistry","CampaignEventsHookRunner",},
},
DeleteEventRegistration={
class="MediaWiki\\Extension\\CampaignEvents\\Special\\SpecialDeleteEventRegistration",
services={
"CampaignEventsEventLookup","CampaignEventsDeleteEventCommand","CampaignEventsPermissionChecker",},
},
RegisterForEvent={
class="MediaWiki\\Extension\\CampaignEvents\\Special\\SpecialRegisterForEvent",
services={
"CampaignEventsEventLookup","CampaignEventsCentralUserLookup","CampaignEventsRegisterParticipantCommand","CampaignEventsParticipantsStore","CampaignEventsPolicyMessagesLookup","CampaignEventsEventQuestionsRegistry",},
},
CancelEventRegistration={
class="MediaWiki\\Extension\\CampaignEvents\\Special\\SpecialCancelEventRegistration",
services={
"CampaignEventsEventLookup","CampaignEventsCentralUserLookup","CampaignEventsUnregisterParticipantCommand","CampaignEventsParticipantsStore",},
},
MyEvents={
class="MediaWiki\\Extension\\CampaignEvents\\Special\\SpecialMyEvents",
services={
"CampaignEventsEventsPagerFactory","CampaignEventsCentralUserLookup",},
},
AllEvents={
class="MediaWiki\\Extension\\CampaignEvents\\Special\\SpecialAllEvents",
services={
"CampaignEventsEventsPagerFactory",},
},
EventDetails={
class="MediaWiki\\Extension\\CampaignEvents\\Special\\SpecialEventDetails",
services={
"CampaignEventsEventLookup","CampaignEventsParticipantsStore","CampaignEventsOrganizersStore","MessageFormatterFactory","CampaignEventsCentralUserLookup","CampaignEventsFrontendModulesFactory","CampaignEventsPermissionChecker",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CampaignEvents",
},
Campaigns={
name="Campaigns",
version="0.2.0",
author="S Page",
url="https://www.mediawiki.org/wiki/Extension:Campaigns",
descriptionmsg="campaigns-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
extensions={
EventLogging="*",
},
},
Hooks={
AuthChangeFormFields="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Campaigns\\Hooks",
},
},
attributes={
EventLogging={
Schemas={
ServerSideAccountCreation="/analytics/legacy/serversideaccountcreation/1.1.0",
},
},
},
AuthManagerAutoConfig={
secondaryauth={
CampaignsSecondaryAuthenticationProvider={
class="MediaWiki\\Extension\\Campaigns\\CampaignsSecondaryAuthenticationProvider",
sort=0,
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Campaigns",
},
Capiunto={
name="Capiunto",
author="Marius Hoch",
url="https://www.mediawiki.org/wiki/Extension:Capiunto",
descriptionmsg="capiunto-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
Hooks={
ScribuntoExternalLibraries="scribunto",
ScribuntoExternalLibraryPaths="scribunto",
},
HookHandlers={
scribunto={
class="Capiunto\\ScribuntoHooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Capiunto",
},
Cargo={
name="Cargo",
namemsg="cargo-extensionname",
version="3.6",
author="Yaron Koren",
url="https://www.mediawiki.org/wiki/Extension:Cargo",
descriptionmsg="cargo-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.38",
},
callback="CargoHooks::registerExtension",
ExtensionFunctions={
"CargoHooks::initialize",},
AvailableRights={
"recreatecargodata","deletecargodata","runcargoqueries",},
GroupPermissions={
["*"]={
runcargoqueries=true,
},
sysop={
recreatecargodata=true,
deletecargodata=true,
},
},
GrantPermissions={
cargo={
recreatecargodata=true,
deletecargodata=true,
runcargoqueries=true,
},
},
GrantPermissionGroups={
cargo="cargo",
},
SpecialPages={
CargoTables="CargoTables",
CargoTableDiagram="CargoTableDiagram",
DeleteCargoTable="SpecialDeleteCargoTable",
SwitchCargoTable="SpecialSwitchCargoTable",
RecreateCargoData="SpecialCargoRecreateData",
CargoQuery="SpecialCargoQuery",
CargoExport="CargoExport",
PageValues="CargoPageValues",
Drilldown="CargoSpecialDrilldown",
},
JobClasses={
cargoPopulateTable="CargoPopulateTableJob",
},
APIModules={
cargoquery="CargoQueryAPI",
cargorecreatetables="CargoRecreateTablesAPI",
cargorecreatedata="CargoRecreateDataAPI",
cargorecreatespecialtable="CargoRecreateSpecialTableAPI",
cargoautocomplete="CargoAutocompleteAPI",
cargoqueryautocomplete="CargoQueryAutocompleteAPI",
cargoformatparams="CargoFormatParamsAPI",
cargotables="CargoTablesAPI",
cargofields="CargoFieldsAPI",
},
LogTypes={
"cargo",},
LogNames={
cargo="cargo-logname",
},
LogHeaders={
cargo="cargo-logdesc",
},
LogActions={
["cargo/createtable"]="cargo-createtableaction",
["cargo/recreatetable"]="cargo-recreatetableaction",
["cargo/replacetable"]="cargo-replacetableaction",
["cargo/deletetable"]="cargo-deletetableaction",
},
ExtensionMessagesFiles={
CargoMagic="Cargo.i18n.magic.php",
CargoAlias="Cargo.alias.php",
},
Actions={
recreatedata="CargoRecreateDataAction",
pagevalues="CargoPageValuesAction",
},
Hooks={
ParserFirstCallInit="CargoHooks::registerParserFunctions",
MakeGlobalVariablesScript="CargoHooks::setGlobalJSVariables",
LinksUpdate="links-update",
PageSaveComplete="CargoHooks::onPageSaveComplete",
ApprovedRevsRevisionApproved="CargoHooks::onARRevisionApproved",
ApprovedRevsRevisionUnapproved="CargoHooks::onARRevisionUnapproved",
PageMoveComplete="CargoHooks::onPageMoveComplete",
PageDeleteComplete="CargoHooks::onPageDeleteComplete",
UploadComplete="CargoHooks::onUploadComplete",
CategoryAfterPageAdded="CargoHooks::addCategoryToPageData",
CategoryAfterPageRemoved="CargoHooks::removeCategoryFromPageData",
LoadExtensionSchemaUpdates={
"CargoHooks::describeDBSchema","CargoHooks::cargoSchemaUpdates",},
["SkinTemplateNavigation::Universal"]={
"CargoRecreateDataAction::displayTab","CargoHooks::addPurgeCacheTab",},
SidebarBeforeOutput="CargoPageValuesAction::addLink",
["PageForms::TemplateFieldStart"]="CargoHooks::addTemplateFieldStart",
["PageForms::TemplateFieldEnd"]="CargoHooks::addTemplateFieldEnd",
AdminLinks="CargoHooks::addToAdminLinks",
PageSchemasRegisterHandlers="CargoPageSchemas::registerClass",
ResourceLoaderGetConfigVars="CargoHooks::onResourceLoaderGetConfigVars",
ScribuntoExternalLibraries="CargoHooks::addLuaLibrary",
},
HookHandlers={
["links-update"]={
class="CargoLinksUpdateHandler",
},
},
config={
CargoDecimalMark=".",
CargoDigitGroupingCharacter=",",
CargoRecurringEventMaxInstances=100,
CargoDBtype=nil,
CargoDBserver=nil,
CargoDBname=nil,
CargoDBuser=nil,
CargoDBpassword=nil,
CargoDBprefix=nil,
CargoDBRowFormat=nil,
CargoDefaultStringBytes=300,
CargoDefaultQueryLimit=100,
CargoMaxQueryLimit=5000,
Cargo24HourTime=false,
CargoDefaultMapService="OpenLayers",
CargoGoogleMapsKey=nil,
CargoMapClusteringMinimum=80,
CargoDrilldownUseTabs=true,
CargoDrilldownSmallestFontSize=-1,
CargoDrilldownLargestFontSize=-1,
CargoDrilldownMinValuesForComboBox=40,
CargoDrilldownNumRangesForNumbers=5,
CargoMaxVisibleHierarchyDrilldownValues=30,
CargoTablesPrioritizeReplacements=false,
CargoLegacyNullLuaFieldsAsEmptyString=false,
CargoStoreUseTemplateArgsFallback=true,
CargoIgnoreBacklinks=false,
CargoPageDataColumns={
},
CargoFileDataColumns={
},
CargoHideNamespaceName={
6,},
CargoAllowedSQLFunctions={
"AVG","CEIL","COALESCE","CONCAT","COUNT","DATE","DATE_ADD","DATE_FORMAT","DATE_PART","DATE_SUB","DATEDIFF","DAYOFMONTH","FLOOR","FORMAT","GROUP_CONCAT","IF","LCASE","LN","LOG","LOWER","MAX","MIN","MONTH","NEAR","NOW","POWER","ROUND","SUBSTRING","SUM","TRIM","UCASE","UPPER","YEAR",},
},
repository="https://phabricator.wikimedia.org/diffusion/ECRG/",
composer="mediawiki/cargo",
},
CategoryExplorer={
name="CategoryExplorer",
author={
},
url="https://www.mediawiki.org/wiki/Extension:CategoryExplorer",
descriptionmsg="categoryexplorer-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.38.0",
},
ConfigRegistry={
categoryexplorer="GlobalVarConfig::newInstance",
},
SpecialPages={
},
APIModules={
},
ExtensionMessagesFiles={
CategoryExplorerAlias="CategoryExplorer.alias.php",
},
Hooks={
SkinAfterPortlet="CategoryExplorer\\Hooks::onSkinAfterPortlet",
},
config={
},
DefaultUserOptions={
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CategoryExplorer",
},
CategoryLockdown={
name="CategoryLockdown",
version="4.0",
url="https://www.mediawiki.org/wiki/Extension:CategoryLockdown",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",
descriptionmsg="categorylockdown-desc",
["license-name"]="GPL-3.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
config={
CategoryLockdown={
value={
},
},
},
Hooks={
getUserPermissionsErrors="CategoryLockdown::onGetUserPermissionsErrors",
ApiCheckCanExecute="CategoryLockdown::onApiCheckCanExecute",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CategoryLockdown",
},
CategorySortHeaders={
name="CategorySortHeaders",
version="0.4.0",
author={
"Brian Wolff","Universal Omega",},
url="https://www.mediawiki.org/wiki/Extension:CategorySortHeaders",
descriptionmsg="categorysortheaders-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
callback="CustomHeaderCollation::onRegistration",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
["Collation::factory"]="CustomHeaderCollation::onCategorySortHeadersSetup",
},
config={
CategorySortHeaderAppendPageNameToKey={
value=true,
description="Control if a sortkey of ^foo^ is considered just ^foo^ or ^foo^{{PAGENAME}}. After changing this option, you should run php updateCollations.php --force",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CategorySortHeaders",
},
CategoryTagSorter={
name="CategoryTagSorter",
version="0.4.0",
author={
"[https://www.mediawiki.org/wiki/User:Maiden_taiwan Dan Barrett]","[https://www.mediawiki.org/wiki/User:AlephNull319 Daniel Renfro]",},
url="https://www.mediawiki.org/wiki/Extension:CategoryTagSorter",
descriptionmsg="categorytagsorter-desc",
["license-name"]="Apache-2.0",
type="other",
requires={
MediaWiki="&gt;= 1.36.0",
},
Hooks={
ParserAfterTidy="CategoryTagSorter::sort",
GetPreferences="CategoryTagSorter::prefs",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CategoryTagSorter",
},
CategoryTests={
name="Category Tests",
version="1.7.0",
author="Ryan Schmidt",
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:CategoryTests",
descriptionmsg="categorytests-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.32.0",
},
ExtensionMessagesFiles={
CategoryTestsMagic="CategoryTests.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="ExtCategoryTestsHooks::onParserFirstCallInit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CategoryTests",
},
CategoryTree={
name="CategoryTree",
author="Daniel Kinzler",
url="https://www.mediawiki.org/wiki/Extension:CategoryTree",
descriptionmsg="categorytree-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
},
ConfigRegistry={
categorytree="GlobalVarConfig::newInstance",
},
SpecialPages={
CategoryTree={
class="MediaWiki\\Extension\\CategoryTree\\CategoryTreePage",
services={
"DBLoadBalancerFactory","SearchEngineFactory",},
},
},
APIModules={
categorytree={
class="MediaWiki\\Extension\\CategoryTree\\ApiCategoryTree",
services={
"ConfigFactory","DBLoadBalancerFactory","LanguageConverterFactory","LinkRenderer","MainWANObjectCache",},
},
},
ExtensionMessagesFiles={
CategoryTreeAlias="CategoryTree.alias.php",
CategoryTreeMagic="CategoryTree.i18n.magic.php",
},
HookHandlers={
default={
class="MediaWiki\\Extension\\CategoryTree\\Hooks",
services={
"CategoryTree.CategoryCache","MainConfig","DBLoadBalancerFactory","LinkRenderer",},
},
config={
class="MediaWiki\\Extension\\CategoryTree\\ConfigHookHandler",
},
},
Hooks={
MediaWikiServices="config",
["SpecialTrackingCategories::preprocess"]="default",
["SpecialTrackingCategories::generateCatLink"]="default",
SkinAfterPortlet="default",
SkinBuildSidebar="default",
ParserFirstCallInit="default",
OutputPageMakeCategoryLinks="default",
["CategoryViewer::doCategoryQuery"]="default",
["CategoryViewer::generateLink"]="default",
},
config={
CategoryTreeMaxChildren={
value=200,
},
CategoryTreeAllowTag={
value=true,
},
CategoryTreeDisableCache={
value=21600,
},
CategoryTreeMaxDepth={
value={
[11]=1,
[21]=1,
[1]=2,
},
merge_strategy="array_plus",
},
CategoryTreeSidebarRoot={
value=nil,
},
CategoryTreeHijackPageCategories={
value=false,
},
CategoryTreeUseCategoryTable={
value=true,
},
CategoryTreeOmitNamespace={
value=20,
},
CategoryTreeDefaultMode={
value=0,
},
CategoryTreeDefaultOptions={
value={
mode=nil,
hideprefix=nil,
showcount=false,
namespaces=false,
notranslations=false,
},
},
CategoryTreeCategoryPageMode={
value=0,
},
CategoryTreeCategoryPageOptions={
value={
mode=nil,
showcount=true,
},
},
CategoryTreeSpecialPageOptions={
value={
showcount=true,
},
},
CategoryTreeSidebarOptions={
value={
mode=0,
hideprefix=20,
showcount=false,
hideroot=true,
namespaces=false,
depth=1,
},
},
CategoryTreePageCategoryOptions={
value={
mode=100,
hideprefix=20,
showcount=false,
hideroot=false,
namespaces=false,
depth=0,
},
},
},
TrackingCategories={
"categorytree-deprecation-category",},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CategoryTree",
},
CategoryWatch={
name="CategoryWatch",
version="2.0, 2017-09-19",
author={
"[http://www.organicdesign.co.nz/User:Nad User:Nad]","Sean Chen","[http://mwstake.org/ Mark A. Hershberger]",},
url="https://www.mediawiki.org/wiki/Extension:CategoryWatch",
descriptionmsg="categorywatch-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
DefaultUserOptions={
["echo-subscriptions-email-categorywatch"]=true,
["echo-subscriptions-web-categorywatch"]=true,
},
Hooks={
BeforeCreateEchoEvent="CategoryWatch\\Hook::onBeforeCreateEchoEvent",
EchoGetBundleRules="CategoryWatch\\Hook::onEchoGetBundleRules",
CategoryAfterPageAdded="CategoryWatch\\Hook::onCategoryAfterPageAdded",
CategoryAfterPageRemoved="CategoryWatch\\Hook::onCategoryAfterPageRemoved",
GetPreferences="CategoryWatch\\Hook::onGetPreferences",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CategoryWatch",
},
CentralAuth={
name="CentralAuth",
author={
"Brion Vibber","Kunal Mehta","Sam Reed","Aaron Schulz","Brad Jorsch","Umherirrender","Marius Hoch","Andrew Garrett","Chris Steipp","Tim Starling","Gergő Tisza","Alexandre Emsenhuber","Victor Vasiliev","Glaisher","DannyS712","Peter Gehres","Bryan Davis","James D. Forrester","Taavi Väänänen","Alexander Vorwerk",},
url="https://www.mediawiki.org/wiki/Extension:CentralAuth",
descriptionmsg="centralauth-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.43",
extensions={
AntiSpoof="*",
},
},
GroupPermissions={
steward={
["centralauth-createlocal"]=true,
["centralauth-unmerge"]=true,
["centralauth-lock"]=true,
["centralauth-suppress"]=true,
},
sysop={
["centralauth-createlocal"]=true,
},
["*"]={
["centralauth-merge"]=true,
},
},
PrivilegedGroups={
"steward",},
GrantPermissions={
setglobalaccountstatus={
["centralauth-lock"]=true,
["centralauth-suppress"]=true,
},
createlocalaccount={
["centralauth-createlocal"]=true,
},
},
GrantPermissionGroups={
setglobalaccountstatus="administration",
createlocalaccount="administration",
},
GrantRiskGroups={
setglobalaccountstatus="security",
createlocalaccount="vandalism",
},
AvailableRights={
"centralauth-createlocal","centralauth-merge","centralauth-unmerge","centralauth-lock","centralauth-suppress","globalgrouppermissions","globalgroupmembership","centralauth-rename",},
SessionProviders={
CentralAuthSessionProvider={
class="CentralAuthSessionProvider",
args={
{
priority=50,
},},
services={
"UserIdentityLookup","CentralAuth.CentralAuthSessionManager",},
},
CentralAuthApiSessionProvider={
class="CentralAuthApiSessionProvider",
args={
},
services={
"UserIdentityLookup","CentralAuth.CentralAuthSessionManager","CentralAuth.CentralAuthUtilityService",},
},
CentralAuthHeaderSessionProvider={
class="CentralAuthHeaderSessionProvider",
args={
},
services={
"UserIdentityLookup","CentralAuth.CentralAuthSessionManager","CentralAuth.CentralAuthUtilityService",},
},
},
CentralIdLookupProviders={
CentralAuth={
class="MediaWiki\\Extension\\CentralAuth\\User\\CentralAuthIdLookup",
services={
"CentralAuth.CentralAuthDatabaseManager",},
},
},
SpecialPages={
CentralAuth={
class="MediaWiki\\Extension\\CentralAuth\\Special\\SpecialCentralAuth",
services={
"CommentFormatter","NamespaceInfo","ReadOnlyMode","TempUserConfig","UserFactory","UserNameUtils","UserRegistrationLookup","CentralAuth.CentralAuthDatabaseManager","CentralAuth.CentralAuthUIService","CentralAuth.GlobalRenameFactory",},
},
CentralAutoLogin={
class="MediaWiki\\Extension\\CentralAuth\\Special\\SpecialCentralAutoLogin",
services={
"LanguageFactory","ReadOnlyMode","UserOptionsManager","CentralAuth.CentralAuthSessionManager","CentralAuth.CentralAuthUtilityService",},
},
CentralLogin={
class="MediaWiki\\Extension\\CentralAuth\\Special\\SpecialCentralLogin",
services={
"CentralAuth.CentralAuthSessionManager","CentralAuth.CentralAuthUtilityService",},
},
CreateLocalAccount={
class="MediaWiki\\Extension\\CentralAuth\\Special\\SpecialCreateLocalAccount",
services={
"CentralAuth.CentralAuthForcedLocalCreationService",},
},
MergeAccount={
class="MediaWiki\\Extension\\CentralAuth\\Special\\SpecialMergeAccount",
services={
"NamespaceInfo","UserFactory","CentralAuth.CentralAuthDatabaseManager",},
},
GlobalGroupMembership={
class="MediaWiki\\Extension\\CentralAuth\\Special\\SpecialGlobalGroupMembership",
services={
"TitleFactory","UserNamePrefixSearch","UserNameUtils","CentralAuth.GlobalGroupLookup",},
},
GlobalGroupPermissions={
class="MediaWiki\\Extension\\CentralAuth\\Special\\SpecialGlobalGroupPermissions",
services={
"PermissionManager","CentralAuth.CentralAuthDatabaseManager","CentralAuth.GlobalGroupLookup",},
},
WikiSets={
class="MediaWiki\\Extension\\CentralAuth\\Special\\SpecialWikiSets",
services={
"CentralAuth.CentralAuthWikiListService",},
},
GlobalUsers={
class="MediaWiki\\Extension\\CentralAuth\\Special\\SpecialGlobalUsers",
services={
"ContentLanguage","LinkBatchFactory","CentralAuth.CentralAuthDatabaseManager","CentralAuth.GlobalGroupLookup",},
},
MultiLock={
class="MediaWiki\\Extension\\CentralAuth\\Special\\SpecialMultiLock",
services={
"CentralAuth.CentralAuthDatabaseManager","CentralAuth.CentralAuthUIService",},
},
GlobalRenameUser={
class="MediaWiki\\Extension\\CentralAuth\\Special\\SpecialGlobalRenameUser",
services={
"UserNameUtils","CentralAuth.CentralAuthAntiSpoofManager","CentralAuth.CentralAuthUIService","CentralAuth.GlobalRenameDenylist","CentralAuth.GlobalRenameFactory","CentralAuth.GlobalRenameUserValidator",},
},
GlobalRenameProgress={
class="MediaWiki\\Extension\\CentralAuth\\Special\\SpecialGlobalRenameProgress",
services={
"UserNameUtils","CentralAuth.CentralAuthUIService","CentralAuth.GlobalRenameFactory",},
},
},
JobClasses={
crosswikiSuppressUser={
class="MediaWiki\\Extension\\CentralAuth\\User\\CentralAuthSuppressUserJob",
needsPage=false,
},
LocalRenameUserJob="MediaWiki\\Extension\\CentralAuth\\GlobalRename\\LocalRenameJob\\LocalRenameUserJob",
LocalPageMoveJob="MediaWiki\\Extension\\CentralAuth\\GlobalRename\\LocalRenameJob\\LocalPageMoveJob",
CentralAuthCreateLocalAccountJob={
class="MediaWiki\\Extension\\CentralAuth\\User\\CentralAuthCreateLocalAccountJob",
needsPage=false,
},
CentralAuthUnattachUserJob={
class="MediaWiki\\Extension\\CentralAuth\\User\\CentralAuthUnattachUserJob",
needsPage=false,
},
},
LogTypes={
"globalauth","gblrights","gblrename",},
LogNames={
globalauth="centralauth-log-name",
gblrights="centralauth-rightslog-name",
},
LogHeaders={
globalauth="centralauth-log-header",
gblrights="centralauth-rightslog-header",
},
ActionFilteredLogs={
suppress={
setstatus={
"setstatus",},
cadelete={
"cadelete",},
},
globalauth={
delete={
"delete",},
setstatus={
"setstatus","lock","unlock","hide","unhide","lockandhid",},
},
gblrights={
usergroups={
"usergroups",},
groupprms={
"groupperms","groupprms2","groupprms3","grouprename",},
setmodify={
"newset","deleteset","setchange","setrename","setnewtype",},
},
newusers={
forcecreatelocal={
"forcecreatelocal",},
},
["_merge_strategy"]="array_plus_2d",
},
LogActions={
["globalauth/lock"]="centralauth-log-entry-lock",
["globalauth/unlock"]="centralauth-log-entry-unlock",
["globalauth/hide"]="centralauth-log-entry-hide",
["globalauth/unhide"]="centralauth-log-entry-unhide",
["globalauth/lockandhid"]="centralauth-log-entry-lockandhide",
["gblrights/groupperms"]="centralauth-rightslog-entry-groupperms",
},
LogActionsHandlers={
["globalauth/delete"]="MediaWiki\\Extension\\CentralAuth\\LogFormatter\\GlobalDeleteLogFormatter",
["globalauth/setstatus"]="MediaWiki\\Extension\\CentralAuth\\LogFormatter\\ChangeStatusLogFormatter",
["newusers/forcecreatelocal"]="MediaWiki\\Extension\\CentralAuth\\LogFormatter\\ForceCreateLocalUserLogFormatter",
["suppress/cadelete"]="MediaWiki\\Extension\\CentralAuth\\LogFormatter\\GlobalDeleteLogFormatter",
["suppress/setstatus"]="MediaWiki\\Extension\\CentralAuth\\LogFormatter\\ChangeStatusLogFormatter",
["gblrights/usergroups"]="MediaWiki\\Extension\\CentralAuth\\LogFormatter\\GroupMembershipChangeLogFormatter",
["gblrights/groupprms2"]="MediaWiki\\Extension\\CentralAuth\\LogFormatter\\PermissionChangeLogFormatter",
["gblrights/groupprms3"]="LogFormatter",
["gblrights/grouprename"]="MediaWiki\\Extension\\CentralAuth\\LogFormatter\\GroupRenameLogFormatter",
["gblrename/rename"]="MediaWiki\\Extension\\CentralAuth\\GlobalRename\\GlobalRenameLogFormatter",
["gblrename/promote"]="MediaWiki\\Extension\\CentralAuth\\GlobalRename\\GlobalRenameLogFormatter",
["gblrename/merge"]="MediaWiki\\Extension\\CentralAuth\\LogFormatter\\GlobalUserMergeLogFormatter",
["gblrights/newset"]="MediaWiki\\Extension\\CentralAuth\\LogFormatter\\WikiSetLogFormatter",
["gblrights/setrename"]="MediaWiki\\Extension\\CentralAuth\\LogFormatter\\WikiSetLogFormatter",
["gblrights/setnewtype"]="MediaWiki\\Extension\\CentralAuth\\LogFormatter\\WikiSetLogFormatter",
["gblrights/setchange"]="MediaWiki\\Extension\\CentralAuth\\LogFormatter\\WikiSetLogFormatter",
["gblrights/deleteset"]="MediaWiki\\Extension\\CentralAuth\\LogFormatter\\WikiSetLogFormatter",
},
APIModules={
createlocalaccount={
class="MediaWiki\\Extension\\CentralAuth\\Api\\ApiCreateLocalAccount",
services={
"CentralAuth.CentralAuthForcedLocalCreationService",},
},
deleteglobalaccount="MediaWiki\\Extension\\CentralAuth\\Api\\ApiDeleteGlobalAccount",
setglobalaccountstatus="MediaWiki\\Extension\\CentralAuth\\Api\\ApiSetGlobalAccountStatus",
centralauthtoken={
class="MediaWiki\\Extension\\CentralAuth\\Api\\ApiCentralAuthToken",
services={
"CentralAuth.CentralAuthSessionManager",},
},
globaluserrights={
class="MediaWiki\\Extension\\CentralAuth\\Api\\ApiGlobalUserRights",
services={
"TitleFactory","UserNamePrefixSearch","UserNameUtils","CentralAuth.GlobalGroupLookup",},
},
},
APIMetaModules={
globaluserinfo={
class="MediaWiki\\Extension\\CentralAuth\\Api\\ApiQueryGlobalUserInfo",
services={
"UserNameUtils",},
},
globalrenamestatus={
class="MediaWiki\\Extension\\CentralAuth\\Api\\ApiQueryGlobalRenameStatus",
services={
"CentralAuth.GlobalRenameFactory",},
},
},
APIListModules={
globalgroups={
class="MediaWiki\\Extension\\CentralAuth\\Api\\ApiQueryGlobalGroups",
services={
"CentralAuth.CentralAuthDatabaseManager",},
},
wikisets={
class="MediaWiki\\Extension\\CentralAuth\\Api\\ApiQueryWikiSets",
services={
"CentralAuth.CentralAuthWikiListService",},
},
globalallusers={
class="MediaWiki\\Extension\\CentralAuth\\Api\\ApiQueryGlobalAllUsers",
services={
"CentralAuth.CentralAuthDatabaseManager","CentralAuth.GlobalGroupLookup",},
},
},
ExtensionMessagesFiles={
SpecialCentralAuthAliases="CentralAuth.alias.php",
SpecialCentralAuthAliasesNoTranslate="CentralAuth.notranslate-alias.php",
},
QUnitTestModule={
localBasePath="",
remoteExtPath="CentralAuth",
scripts={
"tests/qunit/ext.centralauth.ForeignApi.test.js","tests/qunit/ext.centralauth.ForeignRest.test.js",},
dependencies={
"ext.centralauth.ForeignApi",},
},
callback="MediaWiki\\Extension\\CentralAuth\\CentralAuthHooks::onRegistration",
HookHandlers={
abusefilter={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\AbuseFilterHookHandler",
},
api={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\ApiHookHandler",
services={
"MainConfig",},
},
block={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\BlockHookHandler",
services={
"UserNameUtils",},
},
contentsecuritypolicy={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\ContentSecurityPolicyHookHandler",
services={
"MainConfig",},
},
default={
class="MediaWiki\\Extension\\CentralAuth\\CentralAuthHooks",
},
importhandle={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\ImportHandleHookHandler",
services={
"UserFactory","CentralAuth.CentralAuthUtilityService",},
},
log={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\LogHookHandler",
services={
"DBLoadBalancerFactory","UserNameUtils",},
},
logincomplete={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\LoginCompleteHookHandler",
services={
"HookContainer","MainConfig","CentralAuth.CentralAuthSessionManager",},
},
noservices={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\NoServicesHookHandler",
},
pagedisplay={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\PageDisplayHookHandler",
services={
"MainConfig",},
},
passwordpolicies={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\PasswordPoliciesHookHandler",
services={
"MainConfig",},
},
permissions={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\PermissionsHookHandler",
},
securepoll={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\SecurePollHookHandler",
services={
"NamespaceInfo",},
},
specialcontributions={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\SpecialContributionsHookHandler",
services={
"NamespaceInfo","UserFactory",},
},
specialpageinit={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\SpecialPageInitHookHandler",
services={
"MainConfig",},
},
specialpagebeforeexecute={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\SpecialPageBeforeExecuteHookHandler",
services={
"AuthManager","MainConfig","CentralAuth.CentralAuthSessionManager","CentralAuth.CentralAuthUtilityService",},
},
rename={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\GlobalRenameHookHandler",
services={
"CentralAuth.CentralAuthAntiSpoofManager",},
},
unittests={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\UnitTestsHookHandler",
services={
"DBLoadBalancer",},
},
usercreation={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\UserCreationHookHandler",
services={
"CentralAuth.CentralAuthAntiSpoofManager","CentralAuth.CentralAuthDatabaseManager","CentralAuth.CentralAuthUtilityService",},
},
usereditcountupdate={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\UserEditCountUpdateHookHandler",
services={
"CentralAuth.CentralAuthEditCounter",},
},
userlogout={
class="MediaWiki\\Extension\\CentralAuth\\Hooks\\Handlers\\UserLogoutHookHandler",
services={
"MainConfig",},
},
},
Hooks={
AbuseFilterAlterVariables="abusefilter",
["AbuseFilter-builder"]="abusefilter",
["AbuseFilter-computeVariable"]="abusefilter",
["AbuseFilter-generateUserVars"]="abusefilter",
AbuseFilterShouldFilterAction="abusefilter",
ApiQueryTokensRegisterTypes="default",
APIGetAllowedParams="api",
BeforePageDisplay="pagedisplay",
ContentSecurityPolicyDefaultSource="contentsecuritypolicy",
ContentSecurityPolicyScriptSource="contentsecuritypolicy",
GetLogTypesOnUser="default",
GetPreferences="default",
GetUserBlock="block",
getUserPermissionsErrorsExpensive="permissions",
ImportHandleUnknownUser="importhandle",
InvalidateEmailComplete="default",
LoadExtensionSchemaUpdates="noservices",
LocalUserCreated="usercreation",
LogEventsListGetExtraInputs="log",
MakeGlobalVariablesScript="default",
OtherBlockLogLink="block",
PasswordPoliciesForUser="passwordpolicies",
RenameUserComplete="rename",
RenameUserPreRename="rename",
RenameUserWarning="rename",
ResourceLoaderForeignApiModules="default",
SecurePoll_GetUserParams="securepoll",
SessionCheckInfo="default",
SpecialContributionsBeforeMainOutput="specialcontributions",
ContributionsToolLinks="specialcontributions",
SpecialLogAddLogSearchRelations="log",
SpecialPage_initList="specialpageinit",
SpecialPageBeforeExecute="specialpagebeforeexecute",
SpecialPasswordResetOnSubmit="default",
TempUserCreatedRedirect="logincomplete",
TestCanonicalRedirect="default",
UnitTestsAfterDatabaseSetup="unittests",
UnitTestsBeforeDatabaseTeardown="unittests",
UserArrayFromResult="default",
UserEditCountUpdate="usereditcountupdate",
UserGetEmail="default",
UserGetEmailAuthenticationTimestamp="default",
UserGetReservedNames="default",
UserGetRights="default",
UserIsBot="default",
UserIsLocked="default",
UserLoginComplete="logincomplete",
UserLogout="userlogout",
UserLogoutComplete="userlogout",
UserSaveSettings="default",
UserSetEmail="default",
UserSetEmailAuthenticationTimestamp="default",
},
ConfigRegistry={
CentralAuth="GlobalVarConfig::newInstance",
},
config={
CentralAuthDatabase={
description="Used to identify the CentralAuth database and for SessionStore entries; its use is deprecated. Configure the virtual-centralauth virtual domain instead.",
value=nil,
},
CentralAuthAutoMigrate={
description="If true, existing unattached accounts will be automatically migrated if possible at first login. Any new account creations will be required to attach. If false, unattached accounts will not be harassed unless the individual account has opted in to migration.",
value=false,
},
CentralAuthAutoMigrateNonGlobalAccounts={
description="If true, existing unattached accounts where no global account exists will be compared to see if a merge can be made based on passwords and emails with no clashes (all accounts merge). This was formerly controlled by $wgCentralAuthAutoMigrate",
value=false,
},
CentralAuthStrict={
description="If true, remaining accounts which have not been attached will be forbidden from logging in until they are resolved.",
value=false,
},
CentralAuthDryRun={
description="If true, merging won't actually be possible through the Special:MergeAccount interface.",
value=false,
},
CentralAuthCookies={
description="If true, global session and token cookies will be set alongside the per-wiki session and login tokens when users log in with a global account. This allows other wikis on the same domain to transparently log them in.",
value=false,
},
CentralAuthLoginWiki={
description="Database name of a central login wiki. This is an alternative to directly setting cross-domain cookies for each wiki in $wgCentralAuthAutoLoginWikis. If set, a single login wiki will use a session/cookie to handle unified login sessions across wikis. On login, users will be redirected to the login wiki's Special:CentralLogin/login page and then redirected to Special:CentralLogin back on the originating wiki. In the process, the central login wiki cookie and session will be set. As the user accesses other wikis, the login wiki will be checked via JavaScript to check login status and set the local session and cookies. This requires $wgCentralAuthCookies.",
value=false,
},
CentralAuthCookieDomain={
description="Domain to set global cookies for. For instance, '.wikipedia.org' to work on all wikipedia.org subdomains instead of just the current one. Leave blank to set the cookie for the current domain only, such as if all your wikis are hosted on the same subdomain.",
value="",
},
CentralAuthCookiePrefix={
description="Prefix for CentralAuth global authentication cookies.",
value="centralauth_",
},
CentralAuthCookiePath={
description="Path for CentralAuth global authentication cookies. Set this variable if you want to restrict cookies to a certain path within the domain specified by $wgCentralAuthCookieDomain.",
value="/",
},
CentralAuthAutoLoginWikis={
description="List of wiki IDs which should be called on login to try to set third-party cookies for the global session state. The wiki ID is typically the database name, except when table prefixes are used, in which case it is the database name, a hyphen separator, and then the table prefix. This allows a farm with multiple second-level domains to set up a global session on all of them by hitting one wiki from each domain (en.wikipedia.org, en.wikinews.org, etc). Done by accessing Special:CentralAutoLogin/start on each wiki. If empty, no other wikis will be hit. The key should be set to the cookie domain name, or to the wiki's domain name when that wiki does not use an explicit cookie domain.",
value={
},
},
CentralAuthAutoCreateWikis={
description="List of wiki IDs on which an attached local account should be created automatically when the global account is created. The wiki ID is typically the database name, except when table prefixes are used, in which case it is the database name, a hyphen separator, and then the table prefix.",
value={
},
},
CentralAuthLoginIcon={
description="Local filesystem path to the icon returned by Special:CentralAutoLogin. Should be a 20x20px PNG.",
value=false,
},
CentralAuthPrefsForUIReload={
description="User preferences for which we should recommend reloading the page after a successful central login query. If you need to do something more complicated than just compare the user option to default, use the hook CentralAuthIsUIReloadRecommended.",
value={
"skin","language","thumbsize","underline","stubthreshold","showhiddencats","justify","numberheadings","editondblclick","editsection","editsectiononrightclick","usenewrc","extendwatchlist",},
},
CentralAuthRC={
description="Array of settings for sending the CentralAuth events to the RC Feeds",
value={
},
},
CentralAuthWikisPerSuppressJob={
description="Size of wikis handled in one suppress user job. Keep in mind that one wiki requires ~10 queries.",
value=10,
},
CentralAuthReadOnly={
description="Like $wgReadOnly, used to set extension to database read only mode",
value=false,
},
CentralAuthEnableGlobalRenameRequest={
description="Feature flag for Special:GlobalRenameRequest",
value=false,
},
CentralAuthGlobalPasswordPolicies={
description="Global Password Policies. These are applied like local password policies, the strongest policy applicable to a user is used. Policies can apply to either a local group (if the user is a member of that group on any wiki, the policy will apply to that user) or global group.",
value={
},
},
CentralAuthGlobalBlockInterwikiPrefix={
value="global",
},
CentralAuthOldNameAntiSpoofWiki={
value=false,
},
GlobalRenameDenylist={
value=nil,
description="Source URL for the global rename denylist feature; if null, the feature is disabled.",
},
CentralAuthSessionCacheType={
description="If set, this will be used instead of $wgSessionCacheType for session storage",
value=nil,
},
CentralAuthTokenSessionTimeout={
description="The amount of time to wait for tokens to appear in the session store, in seconds",
value=3,
},
CentralAuthIpoidUrl={
description="URL to access ipoid service",
value=nil,
},
CentralAuthIpoidCheckAtAccountCreation={
description="Feature flag to enable/disable denying account creation based on IP reputation data from ipoid service https://wikitech.wikimedia.org/wiki/Service/IPoid",
value=false,
},
CentralAuthIpoidCheckAtAccountCreationLogOnly={
description="If set to true, only log the block to Logstash, but don't actually deny account creation.",
value=false,
},
CentralAuthIpoidRequestTimeoutSeconds={
description="Number of seconds to use for timeout and connectTimeout options to HTTP request factory when calling ipoid",
value=2,
},
CentralAuthIpoidDenyAccountCreationRiskTypes={
description="List of risk types that CentralAuth will deny account creation for, if ipoid says the IP is associated with the risk type. If any risk types in this array are present in the data from ipoid, we will deny account creation for that IP.",
value={
"UNKNOWN","CALLBACK_PROXY","GEO_MISMATCH","LOGIN_BRUTEFORCE","TUNNEL","WEB_SCRAPING",},
},
CentralAuthIpoidDenyAccountCreationTunnelTypes={
description="List of tunnel types that CentralAuth will deny account creation for, if ipoid says the IP is associated with the tunnel type. If the IP has a TUNNEL risk type, and any of the tunnel types in this array are present in the data from ipoid, we will deny account creation for that IP.",
value={
"UNKNOWN","VPN","PROXY",},
},
},
AuthManagerAutoConfig={
primaryauth={
CentralAuthPrimaryAuthenticationProvider={
class="MediaWiki\\Extension\\CentralAuth\\CentralAuthPrimaryAuthenticationProvider",
sort=10,
services={
"ReadOnlyMode","UserIdentityLookup","UserNameUtils","CentralAuth.CentralAuthAntiSpoofManager","CentralAuth.CentralAuthDatabaseManager","CentralAuth.CentralAuthUtilityService","CentralAuth.GlobalRenameRequestStore",},
},
},
secondaryauth={
CentralAuthSecondaryAuthenticationProvider={
class="MediaWiki\\Extension\\CentralAuth\\CentralAuthSecondaryAuthenticationProvider",
sort=0,
},
},
preauth={
CentralAuthIpReputationPreAuthenticationProvider={
class="MediaWiki\\Extension\\CentralAuth\\CentralAuthIpReputationPreAuthenticationProvider",
services={
"FormatterFactory","HttpRequestFactory","MainWANObjectCache","PerDbNameStatsdDataFactory","PermissionManager",},
sort=0,
},
},
},
TempUserSerialProviders={
centralauth={
class="MediaWiki\\Extension\\CentralAuth\\CentralAuthTempUserSerialProvider",
services={
"CentralAuth.CentralAuthDatabaseManager",},
},
},
UserRegistrationProviders={
centralauth={
class="MediaWiki\\Extension\\CentralAuth\\User\\CentralAuthGlobalRegistrationProvider",
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
DatabaseVirtualDomains={
"virtual-centralauth",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CentralAuth",
},
CentralLogging={
name="CentralLogging",
version="1.1",
author="[https://www.mediawiki.org/wiki/User:Legoktm Kunal Mehta]",
url="https://www.mediawiki.org/wiki/Extension:CentralLogging",
descriptionmsg="centrallogging-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.37.0",
},
JobClasses={
centrallogJob="includes/CentralLogJob",
},
config={
CentralWiki={
value="metawiki",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CentralLogging",
},
CentralNotice={
name="CentralNotice",
version="2.6.1",
author={
"Elliott Eggleston","Tomasz Finc","Andrew Russell Green","Ryan Kaldari","Trevor Parscal","Matthew Walker","Adam Roses Wight","Brion Vibber",},
url="https://www.mediawiki.org/wiki/Extension:CentralNotice",
descriptionmsg="centralnotice-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42",
extensions={
EventLogging="*",
},
},
type="other",
namespaces={
{
id=866,
constant="NS_CN_BANNER",
name="CNBanner",
conditional=true,
},{
id=867,
constant="NS_CN_BANNER_TALK",
name="CNBanner_talk",
conditional=true,
},},
callback="CentralNoticeHooks::onRegistration",
ExtensionMessagesFiles={
CentralNoticeAliases="CentralNotice.alias.php",
},
APIModules={
centralnoticechoicedata="ApiCentralNoticeChoiceData",
centralnoticequerycampaign="ApiCentralNoticeQueryCampaign",
centralnoticecdncacheupdatebanner={
class="ApiCentralNoticeCdnCacheUpdateBanner",
services={
"LanguageNameUtils",},
},
},
APIListModules={
centralnoticelogs="ApiCentralNoticeLogs",
centralnoticeactivecampaigns="ApiCentralNoticeQueryActiveCampaigns",
},
QUnitTestModule={
localBasePath="",
remoteExtPath="CentralNotice",
scripts={
"tests/qunit/ext.centralNotice.display/index.tests.js","tests/qunit/ext.centralNotice.display/chooser.tests.js","tests/qunit/ext.centralNotice.kvStore/kvStore.tests.js","tests/qunit/ext.centralNotice.startUp/kvStoreMaintenance.tests.js","tests/qunit/subscribing/ext.centralNotice.bannerSequence.tests.js","tests/qunit/subscribing/ext.centralNotice.geoIP.tests.js",},
dependencies={
"ext.centralNotice.testFixtures","ext.centralNotice.startUp","ext.centralNotice.display","ext.centralNotice.kvStore","ext.centralNotice.bannerSequence","ext.centralNotice.geoIP",},
},
SpecialPages={
BannerLoader="SpecialBannerLoader",
BannerRandom="SpecialBannerRandom",
RecordImpression="SpecialRecordImpression",
HideBanners="SpecialHideBanners",
},
Hooks={
CanonicalNamespaces="main",
ChangeTagsListActive="main",
ListDefinedTags="main",
LoadExtensionSchemaUpdates="schema",
["SkinTemplateNavigation::Universal"]="main",
ResourceLoaderRegisterModules="main",
UserMergeAccountFields="usermerge",
GetPreferences="main",
PreferencesGetIcon="main",
},
HookHandlers={
main={
class="CentralNoticeHooks",
},
usermerge={
class="UserMergeHookHandlers",
},
schema={
class="CNDatabasePatcher",
},
},
ExtensionFunctions={
"CentralNoticeHooks::initCentralNotice",},
config={
NoticeProject={
value="wikipedia",
},
NoticeProjects={
value={
},
},
NoticeInfrastructure={
value=true,
},
CentralDBname={
value=false,
},
CentralBannerRecorder={
value=false,
},
CentralNoticeSampleRate={
value=0.01,
},
CentralNoticeImpressionEventSampleRate={
value=0,
},
CentralHost={
value=false,
},
CentralNoticeApiUrl={
value=false,
},
CentralSelectedBannerDispatcher={
value=false,
},
CentralMobileSelectedBannerDispatcher={
value=false,
},
CentralNoticeLoader={
value=true,
},
NoticeCookieDomain={
value="",
},
NoticeCookieDurations={
value={
close=1209600,
donate=31536000,
},
merge_strategy="array_plus",
},
CentralNoticeFallbackHideCookieDuration={
value=604800,
},
NoticeHideUrls={
value={
},
},
CentralNoticeHideBannersP3P={
value=false,
},
NoticeBannerMaxAge={
value=600,
},
NoticeBannerReducedMaxAge={
value=120,
},
NoticeUseTranslateExtension={
value=false,
},
NoticeUseLanguageConversion={
value=false,
},
NoticeTranslateDeployStates={
value={
"published",},
},
NoticeNumberOfBuckets={
value=4,
},
NoticeNumberOfControllerBuckets={
value=2,
},
NoticeBucketExpiry={
value=7,
},
CentralNoticePerCampaignBucketExtension={
value=30,
},
CentralNoticeCategoriesUsingLegacy={
value={
"Fundraising","fundraising",},
},
CentralNoticeBannerMixins={
value={
},
},
CentralNoticeCampaignMixins={
value={
bannerHistoryLogger={
subscribingModule="ext.centralNotice.bannerHistoryLogger",
nameMsg="centralnotice-banner-history-logger",
helpMsg="centralnotice-banner-history-logger-help",
parameters={
rate={
type="float",
maxVal="0.01",
minVal="0",
step=0.0001,
labelMsg="centralnotice-banner-history-logger-rate",
helpMsg="centralnotice-banner-history-logger-rate-help",
},
maxEntryAge={
type="integer",
labelMsg="centralnotice-banner-history-logger-max-entry-age",
helpMsg="centralnotice-banner-history-logger-max-entry-age-help",
},
maxEntries={
type="integer",
labelMsg="centralnotice-banner-history-logger-max-entries",
helpMsg="centralnotice-banner-history-logger-max-entries-help",
},
waitLogNoSendBeacon={
type="integer",
labelMsg="centralnotice-banner-history-logger-wait-log-no-send-beacon",
helpMsg="centralnotice-banner-history-logger-wait-log-no-send-beacon-help",
},
},
},
legacySupport={
subscribingModule="ext.centralNotice.legacySupport",
nameMsg="centralnotice-legacy-support",
helpMsg="centralnotice-legacy-support-help",
parameters={
setSRISampleRate={
type="boolean",
labelMsg="centralnotice-set-record-impression-sample-rate",
},
sriSampleRate={
type="float",
labelMsg="centralnotice-custom-record-impression-sample-rate",
},
bannersNotGuaranteedToDisplay={
type="boolean",
labelMsg="centralnotice-banners-not-guaranteed-to-display",
},
},
},
impressionDiet={
subscribingModule="ext.centralNotice.impressionDiet",
nameMsg="centralnotice-impression-diet",
helpMsg="centralnotice-impression-diet-help",
parameters={
cookieName={
type="string",
labelMsg="centralnotice-impression-diet-identifier",
helpMsg="centralnotice-impression-diet-identifier-help",
},
skipInitial={
type="integer",
labelMsg="centralnotice-impression-diet-skip-initial",
helpMsg="centralnotice-impression-diet-skip-initial-help",
},
maximumSeen={
type="integer",
labelMsg="centralnotice-impression-diet-maximum-seen",
helpMsg="centralnotice-impression-diet-maximum-seen-help",
},
restartCycleDelay={
type="integer",
labelMsg="centralnotice-impression-diet-restart-cycle-delay",
helpMsg="centralnotice-impression-diet-restart-cycle-delay-help",
},
},
},
largeBannerLimit={
subscribingModule="ext.centralNotice.largeBannerLimit",
nameMsg="centralnotice-large-banner-limit",
helpMsg="centralnotice-large-banner-limit-help",
parameters={
days={
type="integer",
labelMsg="centralnotice-large-banner-limit-days",
helpMsg="centralnotice-large-banner-limit-days-help",
defaultValue=250,
},
randomize={
type="boolean",
labelMsg="centralnotice-large-banner-limit-randomize",
helpMsg="centralnotice-large-banner-limit-randomize-help",
},
identifier={
type="string",
labelMsg="centralnotice-large-banner-limit-identifier",
helpMsg="centralnotice-large-banner-limit-identifier-help",
defaultValue="centralnotice-frbanner-seen-fullscreen",
},
},
},
bannerSequence={
subscribingModule="ext.centralNotice.bannerSequence",
customAdminUIControlsModule="ext.centralNotice.adminUi.bannerSequence",
nameMsg="centralnotice-banner-sequence",
helpMsg="centralnotice-banner-sequence-help",
parameters={
days={
type="integer",
},
sequences={
type="json",
},
},
},
impressionEventsSampleRate={
subscribingModule="ext.centralNotice.impressionEventsSampleRate",
nameMsg="centralnotice-impression-events-sample-rate",
helpMsg="centralnotice-impression-events-sample-rate-help",
parameters={
rate={
type="float",
maxVal="0.01",
minVal="0",
step=0.0001,
labelMsg="centralnotice-impression-events-sample-rate-field",
defaultValue=0,
},
},
},
},
},
NoticeTabifyPages={
value={
CentralNotice={
type="namespaces",
message="centralnotice-notices",
},
CentralNoticeBanners={
type="namespaces",
message="centralnotice-templates",
},
BannerAllocation={
type="views",
message="centralnotice-allocation",
},
CentralNoticeLogs={
type="views",
message="centralnotice-logs",
},
},
},
CentralNoticeGeoIPBackgroundLookupModule={
value=nil,
},
CentralNoticeContentSecurityPolicy={
value=false,
},
CentralNoticeMaxCampaignFallback={
value=5,
},
CentralNoticeAdminGroup={
value="sysop",
},
CentralNoticeMessageProtectRight={
value="centralnotice-admin",
},
CentralNoticeCampaignTypes={
value={
advocacy={
onForAll=false,
},
["article-writing"]={
onForAll=false,
},
photography={
onForAll=false,
},
event={
onForAll=false,
},
fundraising={
onForAll=false,
},
governance={
onForAll=false,
},
maintenance={
onForAll=true,
},
special={
onForAll=true,
},
},
},
CentralNoticeESITestString={
value=false,
},
},
attributes={
EventLogging={
Schemas={
CentralNoticeBannerHistory="/analytics/legacy/centralnoticebannerhistory/1.0.0",
CentralNoticeImpression="/analytics/legacy/centralnoticeimpression/1.0.0",
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CentralNotice",
},
Challenge={
name="Challenge",
version="1.5",
author={
"Aaron Wright","David Pean","Jack Phoenix",},
url="https://www.mediawiki.org/wiki/Extension:Challenge",
descriptionmsg="challenge-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.35.3",
},
DefaultUserOptions={
["echo-subscriptions-web-challenge-received"]=true,
["echo-subscriptions-email-challenge-received"]=false,
["echo-subscriptions-web-challenge-accepted"]=true,
["echo-subscriptions-email-challenge-accepted"]=false,
["echo-subscriptions-web-challenge-rejected"]=true,
["echo-subscriptions-email-challenge-rejected"]=false,
["echo-subscriptions-web-challenge-lost"]=true,
["echo-subscriptions-email-challenge-lost"]=false,
["echo-subscriptions-web-challenge-won"]=true,
["echo-subscriptions-email-challenge-won"]=false,
},
GroupPermissions={
sysop={
challengeadmin=true,
},
},
AvailableRights={
"challengeadmin",},
SpecialPages={
ChallengeAction="ChallengeAction",
ChallengeHistory="ChallengeHistory",
ChallengeStandings="ChallengeStandings",
ChallengeUser="ChallengeUser",
ChallengeView="ChallengeView",
},
ExtensionMessagesFiles={
ChallengeAliases="includes/Challenge.alias.php",
},
Hooks={
BeforeCreateEchoEvent="ChallengeHooks::onBeforeCreateEchoEvent",
EchoGetBundleRules="ChallengeHooks::onEchoGetBundleRules",
EchoGetDefaultNotifiedUsers="ChallengeHooks::onEchoGetDefaultNotifiedUsers",
LoadExtensionSchemaUpdates="ChallengeHooks::onLoadExtensionSchemaUpdates",
UserProfileGetProfileHeaderLinks="ChallengeHooks::onUserProfileGetProfileHeaderLinks",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Challenge",
},
ChangeAuthor={
name="ChangeAuthor",
version="1.3.0",
author={
"Roan Kattouw",},
["license-name"]="GPL-3.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:ChangeAuthor",
descriptionmsg="changeauthor-desc",
requires={
MediaWiki="&gt;= 1.39.0",
},
type="specialpage",
SpecialPages={
ChangeAuthor={
class="ChangeAuthor",
services={
"RevisionLookup","MainConfig","UserFactory","CommentStore","ActorNormalization","DBLoadBalancer",},
},
},
ExtensionMessagesFiles={
ChangeAuthorAliases="ChangeAuthor.alias.php",
},
LogTypes={
"changeauth",},
LogActionsHandlers={
["changeauth/*"]="LogFormatter",
},
AvailableRights={
"changeauthor",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ChangeAuthor",
},
CharInsert={
name="CharInsert",
author="Brion Vibber",
url="https://www.mediawiki.org/wiki/Extension:CharInsert",
descriptionmsg="charinsert-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
},
Hooks={
ParserFirstCallInit="CharInsertHookHandler",
BeforePageDisplay="CharInsertHookHandler",
},
HookHandlers={
CharInsertHookHandler={
class="MediaWiki\\Extension\\CharInsert\\Hooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CharInsert",
},
CheckUser={
name="CheckUser",
version="2.5",
author={
"Tim Starling","Aaron Schulz","Dreamy Jazz",},
url="https://www.mediawiki.org/wiki/Extension:CheckUser",
descriptionmsg="checkuser-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.43.0",
platform={
["ext-openssl"]="*",
},
},
ExtensionMessagesFiles={
CheckUserAliases="CheckUser.alias.php",
},
config={
CheckUserCIDRLimit={
value={
IPv4=16,
IPv6=19,
},
description="Shortest CIDR limits that can be checked in any individual range check",
},
CheckUserMaxBlocks={
value=200,
description="Maximum number of users that can be mass blocked simultaneously",
},
CUPublicKey={
value="",
description="Public key to encrypt private data that may need to be read later. Generate a public key with something like: `openssl genrsa -out cu.key 2048; openssl rsa -in cu.key -pubout &gt; cu.pub` and paste the contents of cu.pub here.",
},
CUDMaxAge={
value=7776000,
description="How long to keep CheckUser data (in seconds)",
},
CheckUserForceSummary={
value=false,
description="Whether to force checkusers into giving a reason for each check they do through Special:CheckUser.",
},
CheckUserCAMultiLock={
value=false,
description="Whether to add a link to Special:MultiLock by CentralAuth to the Special:CheckUser's mass block form. This requires CentralAuth extension to be installed on the wiki. To enable this, set this to an array with a central wiki's database name and an array with the name(s) of the global group(s) to add the link for. Example: [ 'centralDB' =&gt; 'metawiki', 'groups' =&gt; [ 'steward' ] ]",
},
CheckUserCAtoollink={
value=false,
description="Whether to add links to CentralAuth in Special:CheckUser results",
},
CheckUserGBtoollink={
value=false,
description="Whether to add links for globally blocking accounts shown in Special:CheckUser results",
},
CheckUserCollapseCheckUserHelperByDefault={
value=2500,
description="Whether to have the CheckUserHelper shown on Special:CheckUser collapsed by default. Specify true to collapse by default, false to do the opposite and a number to collapse only when the number of rows returned exceeds this value.",
},
CheckUserLogLogins={
value=false,
description="Whether login attempts should be logged in CheckUser logs",
},
CheckUserLogSuccessfulBotLogins={
value=true,
description="Whether successful login attempts of accounts in the 'bot' user group should be logged in CheckUser logs (assuming wgCheckUserLogLogins is also true)",
},
CheckUserLogAdditionalRights={
value={
},
description="Additional rights to be used when adding CheckUser log entries",
},
CheckUserMaximumRowCount={
value=5000,
description="Maximum number of rows to be displayed in Special:CheckUser per page of results",
},
CheckUserInvestigateMaximumRowCount={
value=25000,
description="Maximum number of rows from the CheckUser result tables to be grouped in the Compare table query",
},
CheckUserTemporaryAccountMaxAge={
value=86400,
description="Number of seconds for which the temporary account API response is fresh",
},
CheckUserEventTablesMigrationStage={
value=768,
description="A flag used as the migration stage to the new cu_private_event and cu_log_event tables. Currently set to SCHEMA_COMPAT_NEW which evaluates to the integer 768.",
},
CheckUserClientHintsEnabled={
value=true,
description="General on/off switch for User-Agent Client Hints functionality. When set to true, CheckUser will request Client Hints headers specified in the CheckUserClientHintsHeaders config variable.",
},
CheckUserPurgeOldClientHintsData={
value=true,
description="Used to control whether CheckUser will attempt to purge old client hint data. This is done so that wgCheckUserClientHintsEnabled can be set to false without preventing cleaning up of old client hint data.",
},
CheckUserClientHintsRestApiMaxTimeLag={
value=1800,
description="The amount of time in seconds that a user has to submit a request to /checkuser/v0/useragent-clienthints/{type}/{id} to store client hints data.",
},
CheckUserClientHintsSpecialPages={
value={
"CreateAccount","Emailuser","PasswordReset","Userlogin","Userlogout",},
description="List of SpecialPages where CheckUser will set client hints headers in the response header. Note that the special pages are case sensitive, and do not always match their appearance in the URL, e.g. 'UserLogin' is known in the Special page system as 'Userlogin'.",
},
CheckUserClientHintsHeaders={
value={
["Sec-CH-UA"]="",
["Sec-CH-UA-Arch"]="architecture",
["Sec-CH-UA-Bitness"]="bitness",
[""]="brands",
["Sec-CH-UA-Form-Factor"]="",
["Sec-CH-UA-Full-Version-List"]="fullVersionList",
["Sec-CH-UA-Mobile"]="mobile",
["Sec-CH-UA-Model"]="model",
["Sec-CH-UA-Platform"]="platform",
["Sec-CH-UA-Platform-Version"]="platformVersion",
["Sec-CH-UA-WoW64"]="",
},
description="Map of User-Agent Client Hints headers that CheckUser may ask for, either via setting an Accept-CH header on the server-side, or via client-side usage of the NavigatorUAData.getHighEntropyValues() API. The keys in the map are the server-side headers, and the values are the JS API equivalents. Empty strings indicate lack of equivalent between JS API and server-side headers. See the list of valid values https://wicg.github.io/ua-client-hints.",
},
CheckUserClientHintsUnsetHeaderWhenPossible={
value=true,
description="If set to 'true', then CheckUser will transmit an empty `Accept-CH: ` header in BeforePageDisplay and SpecialPageBeforeExecute if SpecialPage isn't in the CheckUserClientHintsSpecialPages config list. If set to false, CheckUser will not send an empty `Accept-CH: ` header, which in practice means that all logged-in user requests will transmit User-Agent client hint data.",
},
CheckUserClientHintsForDisplay={
value={
"model","fullVersionList","platformVersion","platform","brands","formFactor","architecture","mobile","bitness","woW64",},
description="An array of the Client Hints data that should be displayed in CheckUser interfaces in the order that they should be displayed. If 'platform' and 'platformVersion' are both included, then these will be combined as one when displaying as a string. If 'brands' and 'fullVersionList' are both selected, then only the fullVersionList value will be displayed if for a given brand name an entry exists in 'brand' and 'fullVersionList'. The 'userAgent' client hint name is currently not included in this list as it may be combined with the 'brands' item, but would be removed if HTTP headers are not going to be used to collect data.",
},
CheckUserClientHintsValuesToHide={
value={
architecture={
"x86",},
bitness={
"64",},
woW64={
false,},
},
description="An array of the Client Hints data names as keys and an array of values that should be hidden from the interface as the value. This is used to hide commonly seen Client Hint data values in the cases where it isn't helpful.",
},
CheckUserDisplayClientHints={
value=true,
description="A configuration value used to control whether Client Hints data is shown in the interfaces that support it. The default is for it to be enabled.",
},
CheckUserDeveloperMode={
value=false,
description="If set to 'true', then CheckUser will be know it is in development mode. Do not enable this on any wikis other than local development wikis. This will allow use of code that is only intended for local development wikis, such as the populateCheckUserTablesWithSimulatedData.php maintenance script which inserts automated testing edits and actions to the wiki.",
},
CheckUserMaximumIPsToAutoblock={
value=1,
description="The maximum number of IPs to retroactively autoblock when a block is created that is set to autoblock. The actual number of IPs blocked will be smaller if the CheckUser data for this user has less than this number of IPs. If this number is greater, then the IPs blocked are those which were used last.",
},
},
APIListModules={
checkuser={
class="MediaWiki\\CheckUser\\Api\\ApiQueryCheckUser",
services={
"ApiQueryCheckUserResponseFactory",},
},
checkuserlog={
class="MediaWiki\\CheckUser\\Api\\ApiQueryCheckUserLog",
services={
"CommentStore","CheckUserLogService","UserFactory",},
},
},
RestRoutes={
{
path="/checkuser/v0/temporaryaccount/{name}",
method="POST",
class="MediaWiki\\CheckUser\\Api\\Rest\\Handler\\TemporaryAccountHandler",
services={
"MainConfig","JobQueueGroup","PermissionManager","UserOptionsLookup","UserNameUtils","DBLoadBalancerFactory","ActorStore","BlockManager",},
},{
path="/checkuser/v0/temporaryaccount/{name}/revisions/{ids}",
method="POST",
class="MediaWiki\\CheckUser\\Api\\Rest\\Handler\\TemporaryAccountRevisionHandler",
services={
"MainConfig","JobQueueGroup","PermissionManager","UserOptionsLookup","UserNameUtils","DBLoadBalancerFactory","ActorStore","BlockManager","RevisionStore",},
},{
path="/checkuser/v0/temporaryaccount/{name}/logs/{ids}",
method="POST",
class="MediaWiki\\CheckUser\\Api\\Rest\\Handler\\TemporaryAccountLogHandler",
services={
"MainConfig","JobQueueGroup","PermissionManager","UserOptionsLookup","UserNameUtils","DBLoadBalancerFactory","ActorStore","BlockManager",},
},{
path="/checkuser/v0/useragent-clienthints/{type}/{id}",
method="POST",
class="MediaWiki\\CheckUser\\Api\\Rest\\Handler\\UserAgentClientHintsHandler",
services={
"MainConfig","RevisionStore","UserAgentClientHintsManager",},
},},
HookHandlers={
clienthints={
class="MediaWiki\\CheckUser\\HookHandler\\ClientHints",
services={
"MainConfig",},
},
preferences={
class="MediaWiki\\CheckUser\\HookHandler\\Preferences",
services={
"PermissionManager","CheckUserTemporaryAccountLoggerFactory",},
},
pageDisplay={
class="MediaWiki\\CheckUser\\HookHandler\\PageDisplay",
services={
"MainConfig","PermissionManager","UserOptionsLookup",},
},
RetroactiveAutoBlock={
class="MediaWiki\\CheckUser\\HookHandler\\PerformRetroactiveAutoblockHandler",
services={
"DBLoadBalancerFactory","DatabaseBlockStoreFactory","MainConfig",},
},
SchemaChanges={
class="MediaWiki\\CheckUser\\HookHandler\\SchemaChangesHandler",
},
ToolLinks={
class="MediaWiki\\CheckUser\\HookHandler\\ToolLinksHandler",
services={
"PermissionManager","SpecialPageFactory","LinkRenderer","UserIdentityLookup","UserIdentityUtils","UserOptionsLookup","TempUserConfig",},
},
RenameUserSQLHandler={
class="MediaWiki\\CheckUser\\HookHandler\\RenameUserSQLHandler",
},
SpecialPageInitList={
class="MediaWiki\\CheckUser\\HookHandler\\SpecialPageInitListHandler",
services={
"TempUserConfig",},
},
RLRegisterModules={
class="MediaWiki\\CheckUser\\HookHandler\\RLRegisterModulesHandler",
},
Hooks={
class="MediaWiki\\CheckUser\\Hooks",
},
UserMerge={
class="MediaWiki\\CheckUser\\HookHandler\\UserMergeHandler",
},
},
Hooks={
AuthManagerLoginAuthenticateAudit="Hooks",
BeforePageDisplay={
"clienthints","pageDisplay",},
ContributionsToolLinks="ToolLinks",
EmailUser="Hooks",
GetPreferences="preferences",
LoadExtensionSchemaUpdates="SchemaChanges",
LocalUserCreated="Hooks",
PerformRetroactiveAutoblock="RetroactiveAutoBlock",
RecentChange_save="Hooks",
RenameUserSQL="RenameUserSQLHandler",
ResourceLoaderRegisterModules="RLRegisterModules",
SaveUserOptions="preferences",
SpecialPageBeforeExecute="clienthints",
SpecialPage_initList="SpecialPageInitList",
["User::mailPasswordInternal"]="Hooks",
UserLogoutComplete="Hooks",
UserMergeAccountFields="UserMerge",
UserToolLinksEdit="ToolLinks",
},
DeprecatedHooks={
CheckUserInsertForRecentChange={
deprecatedVersion="1.40",
},
},
QUnitTestModule={
localBasePath="",
remoteExtPath="CheckUser",
packageFiles={
"tests/qunit/index.js","tests/qunit/ext.checkUser/checkuser/getUsersBlockForm.test.js","modules/ext.checkUser/checkuser/getUsersBlockForm.js","tests/qunit/ext.checkUser/checkuser/checkUserHelper/utils.test.js","tests/qunit/ext.checkUser/checkuser/checkUserHelper/createTable.test.js","tests/qunit/ext.checkUser/checkuser/checkUserHelper/createTableText.test.js","tests/qunit/ext.checkUser/checkuser/checkUserHelper/generateData.test.js","modules/ext.checkUser/checkuser/checkUserHelper/init.js","modules/ext.checkUser/checkuser/checkUserHelper/addCopyElement.js","modules/ext.checkUser/checkuser/checkUserHelper/createTable.js","modules/ext.checkUser/checkuser/checkUserHelper/createTableText.js","modules/ext.checkUser/checkuser/checkUserHelper/generateData.js","modules/ext.checkUser/checkuser/checkUserHelper/utils.js","tests/qunit/ext.checkUser/checkuser/checkUserHelper/cases/calculateIPNumber.json","tests/qunit/ext.checkUser/checkuser/checkUserHelper/cases/compareIPs.json","tests/qunit/ext.checkUser/checkuser/checkUserHelper/cases/createTable.json","tests/qunit/ext.checkUser/checkuser/checkUserHelper/cases/createTableText.json","tests/qunit/ext.checkUser/checkuser/checkUserHelper/cases/generateData.json","tests/qunit/ext.checkUser.clientHints/index.test.js","modules/ext.checkUser.clientHints/index.js","tests/qunit/ext.checkUser/investigate/blockform.test.js","modules/ext.checkUser/investigate/blockform.js","tests/qunit/ext.checkUser/investigate/cases/blockFormWidgetVisibility.json",},
dependencies={
"mediawiki.qunit-testrunner","mediawiki.base","mediawiki.router","mediawiki.widgets","ext.checkUser","ext.checkUser.clientHints","sinonjs",},
},
GroupPermissions={
checkuser={
checkuser=true,
["checkuser-log"]=true,
["checkuser-temporary-account-no-preference"]=true,
["checkuser-temporary-account-log"]=true,
},
},
GrantPermissions={
checkuser={
checkuser=true,
["checkuser-log"]=true,
},
["checkuser-temporary-account"]={
["checkuser-temporary-account"]=true,
["checkuser-temporary-account-no-preference"]=true,
["checkuser-temporary-account-log"]=true,
},
},
GrantPermissionGroups={
checkuser="administration",
["checkuser-temporary-account"]="administration",
},
GrantRiskGroups={
checkuser="security",
["checkuser-temporary-account"]="low",
},
PrivilegedGroups={
"checkuser",},
AvailableRights={
"checkuser","checkuser-log","checkuser-temporary-account","checkuser-temporary-account-no-preference","checkuser-temporary-account-log",},
SpecialPages={
CheckUser={
class="MediaWiki\\CheckUser\\CheckUser\\SpecialCheckUser",
services={
"LinkBatchFactory","UserGroupManager","CentralIdLookupFactory","PermissionManager","UserIdentityLookup","CheckUserTokenQueryManager","DBLoadBalancerFactory","UserFactory","CheckUserLogService","CommentFormatter","UserEditTracker","UserNamePrefixSearch","UserNameUtils","CheckUserHookRunner","CheckUserUtilityService","CommentStore","UserAgentClientHintsLookup","UserAgentClientHintsFormatter","CheckUserLookupUtils",},
},
CheckUserLog={
class="MediaWiki\\CheckUser\\CheckUser\\SpecialCheckUserLog",
services={
"LinkBatchFactory","PermissionManager","CommentStore","CommentFormatter","CheckUserLogService","UserFactory","ActorStore","DBLoadBalancerFactory",},
},
Investigate={
class="MediaWiki\\CheckUser\\Investigate\\SpecialInvestigate",
services={
"LinkRenderer","ContentLanguage","UserOptionsManager","CheckUserPreliminaryCheckPagerFactory","CheckUserComparePagerFactory","CheckUserTimelinePagerFactory","CheckUserTokenQueryManager","CheckUserDurationManager","CheckUserEventLogger","CheckUserGuidedTourLauncher","CheckUserHookRunner","PermissionManager","CheckUserLogService","UserIdentityLookup","UserFactory",},
},
InvestigateBlock={
class="MediaWiki\\CheckUser\\Investigate\\SpecialInvestigateBlock",
services={
"BlockUserFactory","BlockPermissionCheckerFactory","PermissionManager","TitleFormatter","UserFactory","CheckUserEventLogger",},
},
},
LogTypes={
"checkuser-temporary-account",},
LogNames={
["checkuser-temporary-account"]="checkuser-temporary-account-log-name",
},
LogHeaders={
["checkuser-temporary-account"]="checkuser-temporary-account-log-header",
},
LogActionsHandlers={
["checkuser-temporary-account/*"]={
class="MediaWiki\\CheckUser\\Logging\\TemporaryAccountLogFormatter",
services={
"UserFactory",},
},
["checkuser-private-event/*"]={
class="MediaWiki\\CheckUser\\Logging\\CheckUserPrivateEventLogFormatter",
services={
"UserFactory",},
},
},
LogRestrictions={
["checkuser-temporary-account"]="checkuser-temporary-account-log",
["checkuser-private-event"]="checkuser",
},
ActionFilteredLogs={
["checkuser-temporary-account"]={
["change-access"]={
"change-access",},
["view-ips"]={
"view-ips","view-temporary-accounts-on-ip",},
},
},
JobClasses={
checkuserLogTemporaryAccountAccess="\\MediaWiki\\CheckUser\\Jobs\\LogTemporaryAccountAccessJob",
checkuserPruneCheckUserDataJob="\\MediaWiki\\CheckUser\\Jobs\\PruneCheckUserDataJob",
},
ServiceWiringFiles={
"src/ServiceWiring.php",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CheckUser",
},
Checklists={
name="Checklists",
version="2.0.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[http://www.hallowelt.com Hallo Welt! GmbH]",},
url="http://www.hallowelt.com",
descriptionmsg="checklists-desc",
requires={
MediaWiki="&gt;= 1.39.0",
},
DefaultUserOptions={
["checklists-hide-revision-dlg"]=0,
},
attributes={
VisualEditor={
PluginModules={
"ext.checklists.ve.checkList",},
},
ContentDroplets={
Droplets={
checkboxlist={
class="\\MediaWiki\\Extension\\Checklists\\ContentDroplets\\ChecklistDroplet",
},
},
},
},
Hooks={
ParserPreSaveTransformComplete="processChecklistItems",
PageSaveComplete="processChecklistItems",
LoadExtensionSchemaUpdates="runDatabaseUpdates",
ParserBeforeInternalParse="modifyOutput",
PageDeleteComplete="processChecklistItems",
ArticleUndelete="processChecklistItems",
PageDelete="processChecklistItems",
GetPreferences="userpreference",
ParserAfterTidy="modifyOutput",
BeforePageDisplay="modifyOutput",
BSUEModulePDFBeforeAddingStyleBlocks="pdf",
},
HookHandlers={
processChecklistItems={
class="\\MediaWiki\\Extension\\Checklists\\HookHandler\\ProcessChecklistItems",
services={
"ChecklistManager","HookContainer","RevisionStore",},
},
runDatabaseUpdates={
class="\\MediaWiki\\Extension\\Checklists\\HookHandler\\RunDatabaseUpdates",
},
userpreference={
class="\\MediaWiki\\Extension\\Checklists\\HookHandler\\UserPreference",
},
modifyOutput={
class="\\MediaWiki\\Extension\\Checklists\\HookHandler\\ModifyOutput",
services={
"ChecklistManager",},
},
pdf={
class="\\MediaWiki\\Extension\\Checklists\\HookHandler\\AddPDFStyles",
services={
"MainConfig",},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
RestRoutes={
{
path="/checklists",
class="\\MediaWiki\\Extension\\Checklists\\Rest\\ListChecklists",
services={
"ChecklistManager","TitleFactory","UserFactory",},
},{
path="/checklists/{id}",
class="\\MediaWiki\\Extension\\Checklists\\Rest\\RetrieveChecklist",
services={
"ChecklistManager",},
},{
method="POST",
path="/checklists/{id}/set_status",
class="\\MediaWiki\\Extension\\Checklists\\Rest\\UpdateStatus",
services={
"ChecklistManager",},
},},
ParsoidModules={
"\\MediaWiki\\Extension\\Checklists\\ParsoidExt\\ChecklistMarkup",},
composer="mediawiki/checklists",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Checklists",
},
Checkpoint={
name="Checkpoint",
version="0.3.0",
author="Ryan Schmidt",
url="https://www.mediawiki.org/wiki/Extension:Checkpoint",
descriptionmsg="checkpoint-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
EditPageBeforeEditButtons="CheckpointHooks::efCheckpointButton",
PageContentSave="CheckpointHooks::efCheckpointSave",
GetFullURL="CheckpointHooks::efCheckpointReturn",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Checkpoint",
},
ChessBrowser={
name="ChessBrowser",
version="0.4.0",
author={
"Wugapodes","Kipod","DannyS712",},
descriptionmsg="chessbrowser-desc",
type="parserhook",
["license-name"]="GPL-3.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:ChessBrowser",
requires={
MediaWiki="&gt;= 1.42",
},
Hooks={
ParserFirstCallInit="main",
OutputPageParserOutput="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\ChessBrowser\\ChessBrowserHooks",
},
},
TrackingCategories={
"chessbrowser-invalid-category",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ChessBrowser",
},
CirrusSearch={
name="CirrusSearch",
author={
"Nik Everett","Chad Horohoe","Erik Bernhardson",},
url="https://www.mediawiki.org/wiki/Extension:CirrusSearch",
descriptionmsg="cirrussearch-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
extensions={
Elastica="&gt;= 6.0.1",
},
},
Actions={
cirrusdump="CirrusSearch\\Dump",
},
APIModules={
["cirrus-config-dump"]="CirrusSearch\\Api\\ConfigDump",
["cirrus-mapping-dump"]="CirrusSearch\\Api\\MappingDump",
["cirrus-settings-dump"]="CirrusSearch\\Api\\SettingsDump",
["cirrus-profiles-dump"]="CirrusSearch\\Api\\ProfilesDump",
["cirrus-check-sanity"]="CirrusSearch\\Api\\CheckSanity",
},
APIPropModules={
cirrusbuilddoc="CirrusSearch\\Api\\QueryBuildDocument",
cirrusdoc="CirrusSearch\\Api\\QueryCirrusDoc",
cirruscompsuggestbuilddoc="CirrusSearch\\Api\\QueryCompSuggestBuildDoc",
},
ConfigRegistry={
CirrusSearch="CirrusSearch\\SearchConfig::newFromGlobals",
},
JobClasses={
cirrusSearchDeletePages="CirrusSearch\\Job\\DeletePages",
cirrusSearchIncomingLinkCount="CirrusSearch\\Job\\IncomingLinkCount",
cirrusSearchLinksUpdate="CirrusSearch\\Job\\LinksUpdate",
cirrusSearchLinksUpdatePrioritized="CirrusSearch\\Job\\LinksUpdate",
cirrusSearchMassIndex="CirrusSearch\\Job\\MassIndex",
cirrusSearchOtherIndex="CirrusSearch\\Job\\OtherIndex",
cirrusSearchElasticaWrite="CirrusSearch\\Job\\ElasticaWrite",
cirrusSearchCheckerJob="CirrusSearch\\Job\\CheckerJob",
cirrusSearchIndexArchive="CirrusSearch\\Job\\IndexArchive",
cirrusSearchDeleteArchive="CirrusSearch\\Job\\DeleteArchive",
},
Hooks={
APIAfterExecute="default",
ApiBeforeMain="default",
APIQuerySiteInfoStatisticsInfo="default",
APIQuerySiteInfoGeneralInfo="apiquerysiteinfogeneralinfo",
PageDelete="changelistener",
PageDeleteComplete={
"changelistener","archivechangelistener",},
ArticleRevisionVisibilitySet="changelistener",
PageUndeleteComplete="archivechangelistener",
BeforeInitialize="default",
CirrusSearchAddQueryFeatures="CirrusSearch\\Wikimedia\\WeightedTagsHooks::onCirrusSearchAddQueryFeatures",
CirrusSearchAnalysisConfig="CirrusSearch\\Wikimedia\\WeightedTagsHooks::onCirrusSearchAnalysisConfig",
CirrusSearchSimilarityConfig="CirrusSearch\\Wikimedia\\WeightedTagsHooks::onCirrusSearchSimilarityConfig",
GetPreferences="default",
LinksUpdateComplete={
"changelistener","eventbusbridge",},
PrefixSearchExtractNamespace="default",
ResourceLoaderGetConfigVars="default",
SearchIndexFields={
"wikimediatags","custompagefields",},
SearchGetNearMatch="default",
ShowSearchHitTitle="default",
SoftwareInfo="default",
SpecialSearchResults="default",
SpecialSearchResultsAppend="default",
SpecialStatsAddExtra="default",
TitleMove="changelistener",
PageMoveComplete="changelistener",
UploadComplete="changelistener",
UserGetDefaultOptions="default",
},
HookHandlers={
default={
class="CirrusSearch\\Hooks",
services={
"ConfigFactory",},
},
wikimediatags={
class="CirrusSearch\\Wikimedia\\WeightedTagsHooks",
},
custompagefields={
class="CirrusSearch\\Hooks\\CustomPageFields",
},
changelistener={
class="CirrusSearch\\ChangeListener",
factory="CirrusSearch\\ChangeListener::create",
services={
"JobQueueGroup","ConfigFactory","ConnectionProvider","RedirectLookup",},
},
archivechangelistener={
class="CirrusSearch\\ArchiveChangeListener",
factory="CirrusSearch\\ArchiveChangeListener::create",
services={
"JobQueueGroup","ConfigFactory",},
},
eventbusbridge={
class="CirrusSearch\\Event\\EventBridge",
factory="CirrusSearch\\Event\\EventBusBridge::factory",
services={
"ConfigFactory","MainConfig","GlobalIdGenerator","TitleFormatter","PageStore",},
optional_services={
"EventBus.EventBusFactory",},
},
apiquerysiteinfogeneralinfo={
class="CirrusSearch\\Hooks\\CirrusSearchApiQuerySiteInfoGeneralInfoHook",
services={
"ConnectionProvider",},
},
},
config={
CirrusSearchDefaultCluster={
value="default",
},
CirrusSearchDisableUpdate={
value=false,
},
CirrusSearchClusters={
description="If both CirrusSearchClusters and CirrusSearchWriteClusters are specified, those clusters only appearing in CirrusSearchClusters are considered read-only.",
merge_strategy="provide_default",
value={
default={
"localhost",},
},
},
CirrusSearchWriteClusters={
value=nil,
},
CirrusSearchWriteIsolateClusters={
value=nil,
},
CirrusSearchElasticaWritePartitionCounts={
description="Mapping from writable cluster name to number of partitions. Defaults to 1 if not set.",
value={
},
},
CirrusSearchPrivateClusters={
value=nil,
},
CirrusSearchReplicaGroup={
value="default",
},
CirrusSearchCrossClusterSearch={
value=false,
},
CirrusSearchConnectionAttempts={
value=1,
},
CirrusSearchShardCount={
value={
content=1,
general=1,
archive=1,
titlesuggest=1,
},
},
CirrusSearchReplicas={
value="0-2",
},
CirrusSearchMaxShardsPerNode={
value={
},
},
CirrusSearchSlowSearch={
value=10,
},
CirrusSearchUseExperimentalHighlighter={
value=false,
},
CirrusSearchOptimizeIndexForExperimentalHighlighter={
value=false,
},
CirrusSearchWikimediaExtraPlugin={
value={
},
},
CirrusSearchEnableRegex={
value=true,
},
CirrusSearchRegexMaxDeterminizedStates={
value=20000,
},
CirrusSearchQueryStringMaxDeterminizedStates={
value=nil,
},
CirrusSearchQueryStringMaxWildcards={
value=3,
},
CirrusSearchNamespaceMappings={
value={
},
merge_strategy="array_plus",
},
CirrusSearchExtraIndexes={
value={
},
merge_strategy="array_plus",
},
CirrusSearchExtraIndexBoostTemplates={
value={
},
},
CirrusSearchUpdateShardTimeout={
value="1ms",
},
CirrusSearchClientSideUpdateTimeout={
value=120,
},
CirrusSearchClientSideConnectTimeout={
value=5,
},
CirrusSearchSearchShardTimeout={
value={
comp_suggest="5s",
prefix="5s",
default="20s",
regex="120s",
},
},
CirrusSearchClientSideSearchTimeout={
value={
comp_suggest=10,
prefix=10,
default=40,
regex=240,
},
},
CirrusSearchMaintenanceTimeout={
value=3600,
},
CirrusSearchPrefixSearchStartsWithAnyWord={
value=false,
},
CirrusSearchPhraseSlop={
value={
precise=0,
default=0,
boost=1,
},
},
CirrusSearchPhraseRescoreBoost={
value=10,
},
CirrusSearchPhraseRescoreWindowSize={
value=512,
},
CirrusSearchFunctionRescoreWindowSize={
value=8192,
},
CirrusSearchMoreAccurateScoringMode={
value=true,
},
CirrusSearchFallbackProfile={
value="phrase_suggest",
},
CirrusSearchFallbackProfiles={
value={
},
},
CirrusSearchEnablePhraseSuggest={
value=true,
},
CirrusSearchPhraseSuggestProfiles={
value={
},
},
CirrusSearchPhraseSuggestReverseField={
value={
build=false,
use=false,
},
},
CirrusSearchPhraseSuggestUseText={
value=false,
},
CirrusSearchPhraseSuggestUseOpeningText={
value=false,
},
CirrusSearchAllowLeadingWildcard={
value=true,
},
CirrusSearchIndexFieldsToCleanup={
value={
},
},
CirrusSearchIndexedRedirects={
value=1024,
},
CirrusSearchLinkedArticlesToUpdate={
value=25,
},
CirrusSearchUnlinkedArticlesToUpdate={
value=25,
},
CirrusSearchSimilarityProfile={
value="bm25_with_defaults",
},
CirrusSearchSimilarityProfiles={
value={
},
},
CirrusSearchWeights={
value={
title=20,
redirect=15,
category=8,
heading=5,
opening_text=3,
text=1,
auxiliary_text=0.5,
file_text=0.5,
},
},
CirrusSearchPrefixWeights={
value={
title=10,
redirect=1,
title_asciifolding=7,
redirect_asciifolding=0.7,
},
},
CirrusSearchBoostOpening={
value="first_heading",
},
CirrusSearchNearMatchWeight={
value=2,
},
CirrusSearchStemmedWeight={
value=0.5,
},
CirrusSearchNamespaceWeights={
value={
[3]=0.05,
[5]=0.1,
[9]=0.05,
[11]=0.005,
[13]=0.1,
},
merge_strategy="array_plus",
},
CirrusSearchDefaultNamespaceWeight={
value=0.2,
},
CirrusSearchTalkNamespaceWeight={
value=0.25,
},
CirrusSearchLanguageWeight={
value={
user=0,
wiki=0,
},
},
CirrusSearchPreferRecentDefaultDecayPortion={
value=0,
},
CirrusSearchPreferRecentUnspecifiedDecayPortion={
value=0.6,
},
CirrusSearchPreferRecentDefaultHalfLife={
value=160,
},
CirrusSearchMoreLikeThisConfig={
value={
min_doc_freq=2,
max_doc_freq=nil,
max_query_terms=25,
min_term_freq=2,
min_word_length=0,
max_word_length=0,
minimum_should_match="30%",
},
},
CirrusSearchMoreLikeThisMaxQueryTermsLimit={
value=100,
},
CirrusSearchMoreLikeThisFields={
value={
"text",},
},
CirrusSearchMoreLikeThisAllowedFields={
value={
"title","text","auxiliary_text","opening_text","headings",},
},
CirrusSearchClusterOverrides={
value={
},
},
CirrusSearchMoreLikeThisTTL={
value=0,
},
CirrusSearchFetchConfigFromApi={
value=false,
},
CirrusSearchInterwikiSources={
value={
},
},
CirrusSearchCrossProjectOrder={
value="static",
},
CirrusSearchCrossProjectBlockScorerProfiles={
value={
},
},
CirrusSearchInterwikiHTTPTimeout={
value=10,
},
CirrusSearchInterwikiHTTPConnectTimeout={
value=5,
},
CirrusSearchRefreshInterval={
value=1,
},
CirrusSearchUpdateDelay={
value={
prioritized=0,
default=0,
},
},
CirrusSearchBannedPlugins={
value={
},
},
CirrusSearchUpdateConflictRetryCount={
value=5,
},
CirrusSearchFragmentSize={
value=150,
},
CirrusSearchIndexAllocation={
value={
include={
},
exclude={
},
require={
},
},
},
CirrusSearchPoolCounterKey={
value="_elasticsearch",
},
CirrusSearchMergeSettings={
value={
},
},
CirrusSearchLogElasticRequests={
value=true,
},
CirrusSearchLogElasticRequestsSecret={
value=false,
},
CirrusSearchMaxFullTextQueryLength={
value=300,
},
CirrusSearchMaxIncategoryOptions={
value=100,
},
CirrusSearchFeedbackLink={
value=false,
},
CirrusSearchWriteBackoffExponent={
value=6,
},
CirrusSearchUserTesting={
value={
},
},
CirrusSearchActiveTest={
value=nil,
},
CirrusSearchCompletionProfiles={
value={
},
},
CirrusSearchCompletionSettings={
value="fuzzy",
},
CirrusSearchUseIcuFolding={
value="default",
},
CirrusSearchICUNormalizationUnicodeSetFilter={
value=nil,
},
CirrusSearchICUFoldingUnicodeSetFilter={
value=nil,
},
CirrusSearchUseIcuTokenizer={
value="default",
},
CirrusSearchCompletionDefaultScore={
value="quality",
},
CirrusSearchUseCompletionSuggester={
value="no",
},
CirrusSearchCompletionSuggesterSubphrases={
value={
build=false,
use=false,
type="anywords",
limit=10,
},
},
CirrusSearchCompletionSuggesterUseDefaultSort={
value=false,
},
CirrusSearchCompletionSuggesterHardLimit={
value=50,
},
CirrusSearchRecycleCompletionSuggesterIndex={
value=true,
},
CirrusSearchEnableAltLanguage={
value=false,
},
CirrusSearchLanguageToWikiMap={
value={
},
},
CirrusSearchWikiToNameMap={
value={
},
},
CirrusSearchEnableCrossProjectSearch={
value=false,
},
CirrusSearchCrossProjectSearchBlockList={
value={
},
},
CirrusSearchInterwikiPrefixOverrides={
value={
},
},
CirrusSearchCrossProjectProfiles={
value={
},
},
CirrusSearchCrossProjectShowMultimedia={
value=false,
},
CirrusSearchNumCrossProjectSearchResults={
value=5,
},
CirrusSearchInterwikiProv={
value=false,
},
CirrusSearchRescoreProfiles={
value={
},
},
CirrusSearchRescoreFunctionChains={
value={
},
},
CirrusSearchRescoreProfile={
value="classic",
},
CirrusSearchPrefixSearchRescoreProfile={
value="classic",
},
CirrusSearchInterwikiThreshold={
value=3,
},
CirrusSearchLanguageDetectors={
value={
},
},
CirrusSearchTextcatModel={
value={
},
},
CirrusSearchTextcatConfig={
value={
},
},
CirrusSearchMasterTimeout={
value="30s",
},
CirrusSearchSanityCheck={
value=true,
},
CirrusSearchIndexBaseName={
value="__wikiid__",
},
CirrusSearchStripQuestionMarks={
value="all",
},
CirrusSearchFullTextQueryBuilderProfile={
value="default",
},
CirrusSearchFullTextQueryBuilderProfiles={
value={
},
},
CirrusSearchPrefixIds={
value=false,
},
CirrusSearchExtraBackendLatency={
value=0,
},
CirrusSearchBoostTemplates={
value={
},
},
CirrusSearchIgnoreOnWikiBoostTemplates={
value=false,
},
CirrusSearchDevelOptions={
value={
},
},
CirrusSearchFiletypeAliases={
value={
},
},
CirrusSearchDocumentSizeLimiterProfile={
value="default",
},
CirrusSearchDocumentSizeLimiterProfiles={
value={
},
},
CirrusSearchMaxFileTextLength={
value=-1,
},
CirrusSearchElasticQuirks={
value={
},
},
CirrusSearchExtraIndexSettings={
value={
},
},
CirrusSearchIndexDeletes={
value=false,
},
CirrusSearchEnableArchive={
value=false,
},
CirrusSearchInterleaveConfig={
value=nil,
},
CirrusSearchMaxPhraseTokens={
value=nil,
},
CirrusSearchCategoryEndpoint={
value="",
},
CirrusSearchCategoryDepth={
value=5,
},
CirrusSearchCategoryMax={
value=256,
},
CirrusSearchNamespaceResolutionMethod={
value="elastic",
},
CirrusSearchWMFExtraFeatures={
description="Configuration for Wikimedia-spexific extra features.\n\n* weighted_tags: multi purpose tag search.\n** build: include in the index definition",
value={
weighted_tags={
build=false,
use=false,
},
},
},
CirrusSearchCompletionBannedPageIds={
description="Set of page ids to never return in completion search",
value={
},
},
CirrusSearchAutomationUserAgentRegex={
description="Regular expression used to identify http user agents of automated requests",
value=nil,
},
CirrusSearchAutomationCIDRs={
description="List of CIDR strings used to identify automated requests",
value={
},
},
CirrusSearchCustomPageFields={
description="Defines additional custom fields for page indexes",
value={
},
},
CirrusSearchExtraFieldsInSearchResults={
description="Defines extra fields to add to each result",
value={
},
},
CirrusSearchEnableIncomingLinkCounting={
description="Enables queries used for counting of incoming links. Disable if an external service is updating these.",
value=true,
},
CirrusSearchDeduplicateAnalysis={
description="[experimental] Deduplicate index analysis chains",
value=false,
},
CirrusSearchUseEventBusBridge={
description="Emit page-rerenders events via EventBus (requires EventBus)",
value=false,
},
CirrusSearchDeduplicateInQuery={
description="Exclude duplicate results a priori by filtering based on 'local_sites_with_dupe'",
value=true,
},
CirrusSearchDeduplicateInMemory={
description="Exclude duplicate results afterwards in memory",
value=false,
},
},
SearchMappings={
CirrusSearch={
class="CirrusSearch\\CirrusSearch",
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
composer="mediawiki/cirrussearch",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CirrusSearch",
},
Cite={
name="Cite",
author={
"Ævar Arnfjörð Bjarmason","Andrew Garrett","Brion Vibber","Ed Sanders","Marius Hoch","Steve Sanbeg","Trevor Parscal","...",},
url="https://www.mediawiki.org/wiki/Extension:Cite",
descriptionmsg="cite-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42.0",
},
Hooks={
APIQuerySiteInfoGeneralInfo="main",
ContentHandlerDefaultModelFor="main",
ParserAfterParse="parser",
ParserClearState="parser",
ParserCloned="parser",
ParserFirstCallInit="parser",
["EditPage::showEditForm:initial"]="main",
MakeGlobalVariablesScript="main",
ResourceLoaderGetConfigVars="main",
ResourceLoaderRegisterModules="main",
},
HookHandlers={
main={
class="Cite\\Hooks\\CiteHooks",
services={
"UserOptionsLookup",},
},
parser={
class="Cite\\Hooks\\CiteParserHooks",
},
},
QUnitTestModule={
localBasePath="",
remoteExtPath="Cite",
scripts={
"tests/qunit/ve-cite/ve.dm.citeExample.js","tests/qunit/ve-cite/ve.dm.Converter.test.js","tests/qunit/ve-cite/ve.dm.InternalList.test.js","tests/qunit/ve-cite/ve.dm.MWReferenceModel.test.js","tests/qunit/ve-cite/ve.dm.MWReferenceNode.test.js","tests/qunit/ve-cite/ve.dm.MWReferencesListNode.test.js","tests/qunit/ve-cite/ve.dm.Transaction.test.js","tests/qunit/ve-cite/ve.ui.DiffElement.test.js","tests/qunit/ve-cite/ve.ui.MWCitationDialogTool.test.js","tests/qunit/ve-cite/ve.ui.MWReferenceContextItem.test.js","tests/qunit/ve-cite/ve.ui.MWReferenceDialog.test.js","tests/qunit/ve-cite/ve.ui.MWReferenceGroupInputWidget.test.js","tests/qunit/ve-cite/ve.ui.MWReferenceResultWidget.test.js","tests/qunit/ve-cite/ve.ui.MWReferenceSearchWidget.test.js","tests/qunit/ve-cite/ve.ui.MWReferencesListDialog.test.js","tests/qunit/ve-cite/ve.ui.MWUseExistingReferenceCommand.test.js","tests/qunit/ve-cite/ve.ui.MWWikitextStringTransferHandler.test.js","tests/qunit/ext.cite.referencePreviews/createReferenceGateway.test.js","tests/qunit/ext.cite.referencePreviews/isReferencePreviewsEnabled.test.js","tests/qunit/ext.cite.referencePreviews/renderer.test.js",},
dependencies={
"ext.cite.visualEditor","test.VisualEditor",},
optionalDependencies={
Popups="ext.cite.referencePreviews",
},
factory="Cite\\ResourceLoader\\OptionalLoader::addOptionalDependencies",
},
attributes={
CodeMirror={
TagModes={
ref="text/mediawiki",
references="text/mediawiki",
},
},
Popups={
PluginModules={
"ext.cite.referencePreviews",},
},
VisualEditor={
PluginModules={
"ext.cite.visualEditor",},
},
},
ConfigRegistry={
cite="GlobalVarConfig::newInstance",
},
config={
CiteBookReferencing={
description="Temporary feature flag while the extends=\"…\" feature (a way to nest citations and e.g. reference pages in a book) is in development.",
public=true,
value=false,
},
CiteVisualEditorOtherGroup={
description="If VisualEditor should list the citation features as part of the existing \"Insert\" drop-down menu instead of a top-level \"Cite\" toolbar button.",
public=true,
value=false,
},
CiteResponsiveReferences={
description="If long &lt;references /&gt; lists with more than 10 references should behave responsive by default and be displayed in two or more columns. This can also be toggled individually with &lt;references responsive /&gt; to enable and &lt;references responsive=\"0\" /&gt; to disable it.",
public=true,
value=true,
},
CiteReferencePreviews={
description="Feature flag to enable or disable the popups provided by the Popups extension for &lt;ref&gt; tags.",
value=true,
},
CiteReferencePreviewsConflictingNavPopupsGadgetName={
description="@var string: Name of a gadget that would cause duplicate reference preview popups. Should usually be identical to wgPopupsConflictingNavPopupsGadgetName in the Popups extension.",
value="Navigation_popups",
},
CiteReferencePreviewsConflictingRefTooltipsGadgetName={
description="@var string: Name of a gadget that would cause duplicate reference preview popups. Known conflicting gadgets include \"ReferenceTooltips\", \"CiteTooltip\" alias \"RefTooltip\", \"ReferencePopups\", and \"tooltipRef\" (see T274353).",
value="ReferenceTooltips",
},
},
TrackingCategories={
"cite-tracking-category-cite-error","cite-tracking-category-ref-extends",},
ParsoidModules={
{
name="Cite",
domProcessors={
"Cite\\Parsoid\\RefProcessor",},
tags={
{
name="ref",
handler="Cite\\Parsoid\\Ref",
options={
wt2html={
unpackOutput=false,
embedsHTMLInAttributes=true,
},
outputHasCoreMwDomSpecMarkup=true,
},
},{
name="references",
handler="Cite\\Parsoid\\References",
options={
wt2html={
embedsHTMLInAttributes=true,
},
html2wt={
format="block",
},
outputHasCoreMwDomSpecMarkup=true,
},
},},
},},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Cite",
},
CiteDrawer={
name="CiteDrawer",
version="1.0.1",
author={
"WikiWorks team",},
url="https://www.mediawiki.org/wiki/Extension:CiteDrawer",
descriptionmsg="citedrawer-desc",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.39.0",
},
type="other",
HookHandlers={
main={
class="MediaWiki\\Extensions\\CiteDrawer\\CiteDrawerHooks",
services={
"ConfigFactory",},
},
},
Hooks={
BeforePageDisplay="main",
MakeGlobalVariablesScript="main",
},
config={
CiteDrawerEnableDesktop={
value=true,
},
CiteDrawerEnableMobile={
value=true,
},
CiteDrawerTheme={
value="dark",
},
},
ConfigRegistry={
CiteDrawer="GlobalVarConfig::newInstance",
},
ExtensionMessagesFiles={
CiteDrawerAlias="CiteDrawer.i18n.alias.php",
},
QUnitTestModule={
scripts={
"ext.CiteDrawer.class.test.js",},
dependencies={
"ext.citedrawer.main",},
localBasePath="tests/qunit",
remoteExtPath="CiteDrawer/tests/qunit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CiteDrawer",
},
CiteThisPage={
name="CiteThisPage",
author={
"Ævar Arnfjörð Bjarmason","James D. Forrester",},
url="https://www.mediawiki.org/wiki/Extension:CiteThisPage",
descriptionmsg="citethispage-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42",
},
ExtensionMessagesFiles={
CiteThisPageAliases="CiteThisPage.alias.php",
},
Hooks={
SidebarBeforeOutput="CiteThisPageHookHandler",
},
HookHandlers={
CiteThisPageHookHandler={
class="MediaWiki\\Extension\\CiteThisPage\\Hooks",
},
},
SpecialPages={
CiteThisPage={
class="MediaWiki\\Extension\\CiteThisPage\\SpecialCiteThisPage",
services={
"SearchEngineFactory","RevisionLookup","ParserFactory",},
},
},
config={
CiteThisPageAdditionalNamespaces={
value={
},
description="An array of namespaces where the 'Cite this page' link is also visible, additionally to the content pages.",
merge_strategy="array_plus",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CiteThisPage",
},
Citoid={
name="Citoid",
version="0.3.0",
author={
"Marielle Volz","Moriel Schottlender","Ed Sanders",},
url="https://www.mediawiki.org/wiki/Citoid",
descriptionmsg="citoid-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
ForeignResourcesDir="lib",
QUnitTestModule={
localBasePath="",
remoteExtPath="Citoid",
scripts={
"modules/ve/tests/index.test.js",},
dependencies={
"ext.citoid.visualEditor",},
},
Hooks={
ResourceLoaderGetConfigVars="main",
BeforePageDisplay="main",
GetPreferences="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Citoid\\Hooks",
},
},
attributes={
VisualEditor={
PluginModules={
"ext.citoid.visualEditor",},
},
},
config={
CitoidServiceUrl={
value=false,
description="Full url to use the native citoid api, i.e. http://localhost:1970/api.",
},
CitoidFullRestbaseURL={
value=false,
description="Full url to use a citoid service running behind restbase, i.e. https://en.wikipedia.org/api/rest_.",
},
CitoidIsbnScannerEnabled={
value={
mobile=true,
desktop=false,
},
description="Enable the ISBN scanner, per platform.",
},
WBCitoidFullRestbaseURL={
value=false,
description="Full url to use a citoid service running behind restbase, used by wikibase module/repository, i.e. https://en.wikipedia.org/api/rest_",
},
},
ConfigRegistry={
citoid="GlobalVarConfig::newInstance",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Citoid",
},
CleanChanges={
name="Clean Changes",
version="2024-07-16",
author="Niklas Laxström",
url="https://www.mediawiki.org/wiki/Extension:CleanChanges",
descriptionmsg="cleanchanges-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
config={
CCTrailerFilter=false,
CCUserFilter=true,
},
Hooks={
FetchChangesList="main",
ChangesListSpecialPageQuery="main",
SpecialRecentChangesPanel="main",
},
HookHandlers={
main={
class="CCFilters",
},
},
composer="mediawiki/clean-changes",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CleanChanges",
},
CloneDiff={
name="CloneDiff",
version="0.1",
author={
"Yaron Koren",},
url="https://www.mediawiki.org/wiki/Extension:CloneDiff",
descriptionmsg="clonediff-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.30.0",
},
GroupPermissions={
sysop={
clonediff=true,
},
},
AvailableRights={
"clonediff",},
SpecialPages={
CloneDiff="SpecialCloneDiff",
},
JobClasses={
importFromClone="ImportFromCloneJob",
},
ExtensionMessagesFiles={
CloneDiffAlias="CloneDiff.alias.php",
},
Hooks={
AdminLinks={
"CloneDiffHooks::addToAdminLinks",},
SkinBuildSidebar={
"CloneDiffHooks::addToSidebar",},
},
config={
CloneDiffWikis={
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CloneDiff",
},
CloseWikis={
name="CloseWikis",
version="1.2",
author={
"Victor Vasiliev","Hydriz Scholz",},
url="https://www.mediawiki.org/wiki/Extension:CloseWikis",
descriptionmsg="closewikis-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.36.0",
},
AvailableRights={
"closewikis","editclosedwikis",},
GroupPermissions={
steward={
closewikis=true,
},
},
LogActions={
["closewiki/close"]="closewikis-log-close",
["closewiki/reopen"]="closewikis-log-reopen",
},
LogHeaders={
closewiki="closewikis-log-header",
},
LogNames={
closewiki="closewikis-log",
},
LogTypes={
"closewiki",},
SpecialPages={
CloseWiki="SpecialCloseWiki",
ListClosedWikis="SpecialListClosedWikis",
},
ExtensionMessagesFiles={
CloseWikisAlias="CloseWikis.alias.php",
},
Hooks={
getUserPermissionsErrors="CloseWikisHooks::userCan",
LoadExtensionSchemaUpdates="CloseWikisHooks::onLoadExtensionSchemaUpdates",
},
callback="CloseWikisHooks::onRegistration",
config={
CloseWikisDatabase={
value="closedwikis",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CloseWikis",
},
CloudflarePurge={
name="CloudflarePurge",
version="1.0",
url="https://www.mediawiki.org/wiki/Extension:CloudflarePurge",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",
descriptionmsg="cloudflarepurge-desc",
["license-name"]="GPL-3.0-or-later",
type="user activity",
requires={
MediaWiki="&gt;= 1.39.0",
},
Hooks={
PageSaveComplete="CloudflarePurge::onPageSaveComplete",
PageDeleteComplete="CloudflarePurge::onPageSaveComplete",
},
config={
CloudflarePurgeZoneID={
value="",
},
CloudflarePurgeAuthEmail={
value="",
},
CloudflarePurgeAuthKey={
value="",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CloudflarePurge",
},
CodeEditor={
name="CodeEditor",
author={
"Brion Vibber","Derk-Jan Hartman",},
url="https://www.mediawiki.org/wiki/Extension:CodeEditor",
descriptionmsg="codeeditor-desc",
["license-name"]="GPL-2.0-or-later AND BSD-3-Clause",
type="editor",
requires={
MediaWiki="&gt;= 1.42.0",
extensions={
WikiEditor="&gt;= 0.5.2",
},
},
Hooks={
["EditPage::showEditForm:initial"]="CodeEditorHooks",
["EditPage::showReadOnlyForm:initial"]="CodeEditorHooks",
GetPreferences="CodeEditorHooks",
},
HookHandlers={
CodeEditorHooks={
class="MediaWiki\\Extension\\CodeEditor\\Hooks",
services={
"UserOptionsLookup","HookContainer",},
},
},
DefaultUserOptions={
usecodeeditor=1,
},
ForeignResourcesDir="modules/lib",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CodeEditor",
},
CodeMirror={
name="CodeMirror",
version="5.0.0",
author={
"[https://www.mediawiki.org/wiki/User:Pastakhov Pavel Astakhov]","[https://www.mediawiki.org/wiki/User:Florianschmidtwelzow Florian Schmidt]","Marijn Haverbeke","MusikAnimal","[https://raw.githubusercontent.com/codemirror/CodeMirror/master/AUTHORS CodeMirror contributors]",},
url="https://www.mediawiki.org/wiki/Extension:CodeMirror",
descriptionmsg="codemirror-desc",
type="editor",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42.0",
},
config={
CodeMirrorV6={
value=false,
description="Temporary feature flag for the CodeMirror 6 upgrade.",
},
CodeMirrorConflictingGadgets={
value={
"wikEd",},
description="An array of gadget names that, if enabled, will prevent CodeMirror from loading on action=edit and action=submit.",
public=true,
},
CodeMirrorTemplateFoldingNamespaces={
value=nil,
description="List of namespace IDs where template folding should be enabled, or `null` to enable for all namespaces. Set to [] to disable everywhere.",
public=true,
},
CodeMirrorLineNumberingNamespaces={
value=nil,
description="List of namespace IDs where line numbering should be enabled, or `null` to enable for all namespaces. Set to [] to disable everywhere.",
public=true,
},
CodeMirrorRTL={
value=true,
description="Temporary feature flag to control rollout of CodeMirror on RTL wikis.",
},
},
ForeignResourcesDir="resources/lib",
DefaultUserOptions={
usecodemirror=0,
},
QUnitTestModule={
localBasePath="resources/mode/mediawiki/tests",
remoteExtPath="CodeMirror/resources/mode/mediawiki/tests",
packageFiles={
"qunit/CodeMirror.mediawiki.test.js",},
dependencies={
"ext.CodeMirror","ext.CodeMirror.lib","ext.CodeMirror.mode.mediawiki",},
},
Hooks={
["EditPage::showEditForm:initial"]="main",
["EditPage::showReadOnlyForm:initial"]="main",
GetPreferences="main",
ResourceLoaderGetConfigVars="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\CodeMirror\\Hooks",
services={
"UserOptionsLookup","MainConfig",},
optional_services={
"GadgetsRepo",},
},
},
attributes={
CodeMirror={
ContentModels={
"wikitext",},
PluginModules={
"ext.CodeMirror.addons",},
TagModes={
pre="mw-tag-pre",
nowiki="mw-tag-nowiki",
},
},
VisualEditor={
PluginModules={
"ext.CodeMirror.visualEditor",},
},
EventLogging={
Schemas={
CodeMirrorUsage="/analytics/legacy/codemirrorusage/1.0.0",
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CodeMirror",
},
Cognate={
name="Cognate",
author={
"Gabriel Birke &lt;gabriel.birke@wikimedia.de&gt;","Addshore",},
url="https://www.mediawiki.org/wiki/Extension:Cognate",
descriptionmsg="cognate-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.43",
},
JobClasses={
CognateLocalJobSubmitJob="Cognate\\LocalJobSubmitJob",
CognateCacheUpdateJob="Cognate\\CacheUpdateJob",
},
config={
CognateReadOnly={
description="Sets the CognateStore to be read only. This will mean the cognate_pages and cognate_titles tables will become out of sync with reality and populateCognatePages.php will have to be run after read only mode is disabled as well as deleted pages purged from the table.",
value=false,
},
CognateNamespaces={
description="The namespace IDs to run Cognate for. For links to work between sites these IDs must be the same across sites.",
value={
0,},
},
},
ServiceWiringFiles={
"src/ServiceWiring.php",},
Hooks={
PageSaveComplete="main",
PageMoveComplete="main",
ContentAlterParserOutput="main",
WikiPageDeletionUpdates="main",
ArticleUndelete="main",
LoadExtensionSchemaUpdates="schema",
},
HookHandlers={
main={
class="Cognate\\CognateHooks",
},
schema={
class="Cognate\\CognateSchemaHooks",
},
},
DatabaseVirtualDomains={
"virtual-cognate",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Cognate",
},
CognitiveProcessDesigner={
name="CognitiveProcessDesigner",
version="4.0.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]","Oleksandr Pinchuck","Robert Vogel",},
url="https://www.hallowelt.com",
descriptionmsg="cognitiveprocessdesigner-desc",
callback="mwsInitComponents",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
PageForms="~5.6",
},
},
attributes={
BlueSpiceFoundation={
PermissionRegistry={
["cognitiveprocessdesigner-editbpmn"]={
type="global",
roles={
"admin","editor","maintenanceadmin",},
},
},
},
ContentDroplets={
Droplets={
["bpmn-diagram"]={
class="\\CognitiveProcessDesigner\\ContentDroplets\\BPMNDiagramDroplet",
},
},
},
CognitiveProcessDesigner={
InspectorPluginModules={
},
},
},
AvailableRights={
"cognitiveprocessdesigner-editbpmn",},
GroupPermissions={
["*"]={
["cognitiveprocessdesigner-editbpmn"]=false,
},
user={
["cognitiveprocessdesigner-editbpmn"]=true,
},
sysop={
["cognitiveprocessdesigner-editbpmn"]=true,
},
},
APIModules={
["cpd-save-diagram-elements"]="\\CognitiveProcessDesigner\\Api\\SaveDiagramElementsApi",
["cpd-delete-orphaned-elements"]="\\CognitiveProcessDesigner\\Api\\DeleteOrphanedElementsApi",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
Hooks={
ParserFirstCallInit="\\CognitiveProcessDesigner\\Hook\\ParserFirstCallInit\\RenderBPMNTag::callback",
OutputPageBeforeHTML="\\CognitiveProcessDesigner\\Hook\\OutputPageBeforeHTML\\AddEntityHeaderFooter::callback",
BSUEModulePDFBeforeCreatePDF="\\CognitiveProcessDesigner\\Hook\\BSUEModulePDFBeforeCreatePDF\\PrepareBPMNDiagramForExport::callback",
BSUEModulePDFBeforeAddingStyleBlocks="\\CognitiveProcessDesigner\\Hook\\BSUEModulePDFBeforeAddingStyleBlocks\\AddCPDStyles::callback",
MakeGlobalVariablesScript="\\CognitiveProcessDesigner\\Hook\\MakeGlobalVariablesScript\\AddConfigVars::callback",
LoadExtensionSchemaUpdates="\\CognitiveProcessDesigner\\Hook\\LoadExtensionSchemaUpdates\\AddRequiredPages::callback",
},
RestRoutes={
{
path="/cognitiveprocessdesigner/save_elements/status/{processId}",
method="GET",
class="CognitiveProcessDesigner\\Rest\\ProcessStatusHandler",
},{
path="/cpd/save-svg/{filename}",
method="POST",
class="\\CognitiveProcessDesigner\\Rest\\SaveSvgHandler",
services={
"MimeAnalyzer","RepoGroup",},
},},
config_prefix="wg",
config={
CPDEntityElementTypes={
value={
"bpmn:Task","BPMN Task","Activity",},
},
CPDHappyPathSMWPropertyName={
value="Bpmn_isHappyPath",
},
},
composer="mediawiki/cognitiveprocessdesigner",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CognitiveProcessDesigner",
},
CollaborationKit={
name="CollaborationKit",
version="0.4",
author={
"Kim Schoonover","Brian Wolff","James Hare",},
url="https://www.mediawiki.org/wiki/Extension:CollaborationKit",
descriptionmsg="collaborationkit-desc",
type="other",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.43",
extensions={
EventLogging="*",
},
},
ExtensionMessagesFiles={
CollaborationKitAlias="CollaborationKit.alias.php",
CollaborationKitMagic="CollaborationKit.i18n.magic.php",
},
TrackingCategories={
"collaborationkit-hub-tracker","collaborationkit-list-tracker",},
ContentHandlers={
CollaborationHubContent="CollaborationHubContentHandler",
CollaborationListContent="CollaborationListContentHandler",
},
config={
CollaborationHubAllowedNamespaces={
value={
[3]=true,
[5]=true,
},
merge_strategy="array_plus",
},
CollaborationListAllowedNamespaces={
value={
[3]=true,
[5]=true,
},
merge_strategy="array_plus",
},
},
SpecialPages={
CollaborationKitIcons="SpecialCollaborationKitIcons",
CreateCollaborationHub="SpecialCreateCollaborationHub",
CreateHubFeature="SpecialCreateHubFeature",
},
Hooks={
["SkinTemplateNavigation::Universal"]="CollaborationKitHooks::onSkinTemplateNavigation",
ParserFirstCallInit="CollaborationKitHooks::onParserFirstCallInit",
CodeEditorGetPageLanguage="CollaborationKitHooks::onCodeEditorGetPageLanguage",
ArticleViewHeader="CollaborationListContent::onArticleViewHeader",
CustomEditor={
"CollaborationListContent::onCustomEditor","CollaborationHubContent::onCustomEditor",},
OutputPageBeforeHTML="CollaborationKitHooks::onOutputPageBeforeHTML",
GetDoubleUnderscoreIDs="CollaborationKitHooks::onGetDoubleUnderscoreIDs",
OutputPageParserOutput="CollaborationKitHooks::onOutputPageParserOutput",
OutputPageBodyAttributes="CollaborationHubContentEditor::setCollabkitTheme",
BeforePageDisplay="CollaborationListContent::onBeforePageDisplay",
ParserOutputPostCacheTransform="CollaborationHubContentHandler::onParserOutputPostCacheTransform",
},
["@fixme"]="Does having ext.CollaborationKit.list.styles as a dependency double load from addModuleStyles?",
["@todo FIXME"]="Should this actually load oojs-ui-core, or something else",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CollaborationKit",
},
CollapsibleSections={
name="CollapsibleSections",
version="0.0.1",
author={
"WikiWorks team",},
url="https://www.mediawiki.org/wiki/Extension:CollapsibleSections",
descriptionmsg="collapsiblesections-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
config={
CollapsibleSectionsCollapsedByDefault={
value=true,
},
CollapsibleSectionsEnableDesktop={
value=false,
},
CollapsibleSectionsTag={
value="h2",
},
},
HookHandlers={
CollapsibleSections={
class="MediaWiki\\Extension\\CollapsibleSections\\CollapsibleSectionsHooks",
},
},
Hooks={
BeforePageDisplay={
handler="CollapsibleSections",
},
ResourceLoaderGetConfigVars={
handler="CollapsibleSections",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CollapsibleSections",
},
CollapsibleVector={
name="CollapsibleVector",
namemsg="collapsiblevector-extensionname",
version="0.1.12",
author={
"Paladox",},
url="https://www.mediawiki.org/wiki/Extension:CollapsibleVector",
descriptionmsg="collapsiblevector-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
},
DefaultUserOptions={
["collapsiblevector-collapsiblenav"]=1,
["collapsiblevector-noexperiments"]=0,
},
Hooks={
BeforePageDisplay="main",
GetPreferences="main",
ResourceLoaderGetConfigVars="main",
MakeGlobalVariablesScript="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\CollapsibleVector\\Hooks",
services={
"MainConfig","UserOptionsManager",},
},
},
config={
CollapsibleVectorFeatures={
value={
collapsiblenav={
global=false,
user=true,
},
},
merge_strategy="array_plus_2d",
},
},
repository="https://phabricator.wikimedia.org/diffusion/ECLV/",
composer="mediawiki/collapsible-vector",
},
Collection={
name="Collection",
version="1.8.0",
author={
"PediaPress GmbH","Siebrand Mazeland","Marcin Cieślak",},
url="https://www.mediawiki.org/wiki/Extension:Collection",
descriptionmsg="coll-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42",
},
AvailableRights={
"collectionsaveasuserpage","collectionsaveascommunitypage",},
SpecialPages={
Book="MediaWiki\\Extension\\Collection\\Specials\\SpecialCollection",
},
ExtensionMessagesFiles={
CollectionAlias="Collection.alias.php",
},
APIModules={
collection={
class="MediaWiki\\Extension\\Collection\\Api\\ApiCollection",
},
},
Hooks={
SidebarBeforeOutput="main",
SiteNoticeAfter="main",
OutputPageCheckLastModified="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Collection\\Hooks",
},
},
config={
CollectionMWServeURL={
description="URL of mw-serve render server",
value="https://tools.pediapress.com/mw-serve/",
},
CollectionMWServeCredentials={
description="Login credentials to this MediaWiki as 'USERNAME:PASSWORD' string",
value=nil,
},
CollectionMWServeCert={
description="PEM-encoded SSL certificate for the mw-serve render server to pass to CURL",
value=nil,
},
CollectionArticleNamespaces={
description="Array of namespaces that can be added to a collection",
value={
0,1,2,3,4,5,8,9,100,101,102,103,104,105,106,107,108,109,110,111,},
},
CommunityCollectionNamespace={
description="Namespace for \"community books\"",
value=4,
},
CollectionMaxArticles={
description="Maximum no. of articles in a book",
value=500,
},
CollectionLicenseName={
description="Name of license",
value=nil,
},
CollectionLicenseURL={
description="HTTP(s) URL pointing to license in wikitext format",
value=nil,
},
CollectionFormats={
description="List of available download formats, as mapping of mwlib writer to format name",
value={
rl="PDF",
},
},
CollectionRendererSettings={
description="Additional renderer options for collections. Format is as for HTMLForm::loadInputFromParameters. Note that fieldnames may only contain [a-zA-Z0-9_-], and values may not contain pipes or newlines. If the 'options' field is an array, keys will be interpreted as messages",
value={
papersize={
type="select",
["label-message"]="coll-setting-papersize",
default="a4",
options={
["coll-setting-papersize-a4"]="a4",
["coll-setting-papersize-letter"]="letter",
},
},
toc={
type="select",
["label-message"]="coll-setting-toc",
default="auto",
options={
["coll-setting-toc-auto"]="auto",
["coll-setting-toc-yes"]="yes",
["coll-setting-toc-no"]="no",
},
},
columns={
type="select",
["label-message"]="coll-setting-columns",
default="2",
options={
["coll-setting-columns-1"]="1",
["coll-setting-columns-2"]="2",
},
},
},
},
CollectionCommandToServeURL={
description="Some commands require an external server",
value={
},
},
CollectionFormatToServeURL={
description="For formats which rendering depends on an external server",
value={
},
},
CollectionContentTypeToFilename={
description="",
value={
["application/pdf"]="collection.pdf",
["application/vnd.oasis.opendocument.text"]="collection.odt",
["text/plain"]="collection.txt",
},
},
CollectionPortletFormats={
value={
"rl",},
},
CollectionPortletForLoggedInUsersOnly={
value=false,
},
CollectionMaxSuggestions={
value=10,
},
CollectionSuggestCheapWeightThreshhold={
value=50,
},
CollectionSuggestThreshhold={
value=100,
},
CollectionPODPartners={
value={
pediapress={
name="PediaPress",
url="https://pediapress.com/",
posturl="https://pediapress.com/api/collections/",
infopagetitle="coll-order_info_article",
},
},
},
CollectionShowRenderNotes={
description="Optional notes that are displayed on the download screen for the rendered document. Each entry is a message key",
value={
"coll-rendering_finished_note_not_satisfied",},
},
CollectionDisableDownloadSection={
description="Disable book downloads. Used when there is no renderer available (ie. partners via $wgCollectionPODPartners are the only way to generate a book).",
value=true,
},
CollectionDisableSidebarLink={
description="Disable the link to the book creator in the sidebar",
value=false,
},
},
composer="mediawiki/collection",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Collection",
},
CommentStreams={
name="CommentStreams",
version="8.0.2",
author={
"[https://www.mediawiki.org/wiki/User:Jji Jason Ji]","[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]","[https://www.mediawiki.org/wiki/User:MarkAHershberger Mark A. Hershberger]",},
url="https://www.mediawiki.org/wiki/Extension:CommentStreams",
descriptionmsg="commentstreams-desc",
type="parserhook",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.38.0",
},
SpecialPages={
CommentStreamsAllComments={
class="MediaWiki\\Extension\\CommentStreams\\CommentStreamsAllComments",
services={
"CommentStreamsStore","CommentStreamsFactory","LinkRenderer","WikiPageFactory",},
},
},
ExtensionMessagesFiles={
CommentStreamsAlias="includes/CommentStreams.alias.php",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
APIModules={
cspostcomment={
class="MediaWiki\\Extension\\CommentStreams\\ApiCSPostComment",
services={
"CommentStreamsFactory","CommentStreamsEchoInterface","MainConfig","WikiPageFactory",},
},
cspostreply={
class="MediaWiki\\Extension\\CommentStreams\\ApiCSPostReply",
services={
"CommentStreamsFactory","CommentStreamsEchoInterface","MainConfig","WikiPageFactory",},
},
csquerycomment={
class="MediaWiki\\Extension\\CommentStreams\\ApiCSQueryComment",
services={
"CommentStreamsFactory","MainConfig",},
},
csqueryreply={
class="MediaWiki\\Extension\\CommentStreams\\ApiCSQueryReply",
services={
"CommentStreamsFactory","MainConfig",},
},
cseditcomment={
class="MediaWiki\\Extension\\CommentStreams\\ApiCSEditComment",
services={
"CommentStreamsFactory","MainConfig",},
},
cseditreply={
class="MediaWiki\\Extension\\CommentStreams\\ApiCSEditReply",
services={
"CommentStreamsFactory","MainConfig",},
},
csdeletecomment={
class="MediaWiki\\Extension\\CommentStreams\\ApiCSDeleteComment",
services={
"CommentStreamsFactory","MainConfig",},
},
csdeletereply={
class="MediaWiki\\Extension\\CommentStreams\\ApiCSDeleteReply",
services={
"CommentStreamsFactory","MainConfig",},
},
csvote={
class="MediaWiki\\Extension\\CommentStreams\\ApiCSVote",
services={
"CommentStreamsFactory","MainConfig",},
},
cswatch={
class="MediaWiki\\Extension\\CommentStreams\\ApiCSWatch",
services={
"CommentStreamsFactory","MainConfig",},
},
csunwatch={
class="MediaWiki\\Extension\\CommentStreams\\ApiCSUnwatch",
services={
"CommentStreamsFactory","MainConfig",},
},
},
HookHandlers={
main={
class="MediaWiki\\Extension\\CommentStreams\\MainHooks",
services={
"CommentStreamsHandler","CommentStreamsFactory","CommentStreamsStore","LinkRenderer","RevisionStore","PermissionManager","PageProps","WikiPageFactory",},
},
noservice={
class="MediaWiki\\Extension\\CommentStreams\\NoServiceHooks",
},
},
Hooks={
MediaWikiPerformAction="main",
MovePageIsValidMove="main",
GetUserPermissionsErrors="main",
BeforePageDisplay="main",
ShowSearchHitTitle="main",
ParserFirstCallInit="main",
SpecialExportGetExtraPages="main",
XmlDumpWriterOpenPage="main",
ImportHandlePageXMLTag="main",
AfterImportPage="main",
CanonicalNamespaces="noservice",
LoadExtensionSchemaUpdates="noservice",
BeforeCreateEchoEvent="MediaWiki\\Extension\\CommentStreams\\EchoInterface::onBeforeCreateEchoEvent",
["SMW::Property::initProperties"]="MediaWiki\\Extension\\CommentStreams\\SMWHooks::initProperties",
["SMWStore::updateDataBefore"]="MediaWiki\\Extension\\CommentStreams\\SMWHooks::updateData",
["SMW::Settings::BeforeInitializationComplete"]="MediaWiki\\Extension\\CommentStreams\\SMWHooks::onSMWInitialization",
},
callback="MediaWiki\\Extension\\CommentStreams\\MainHooks::onRegistration",
config={
CommentStreamsNamespaceIndex={
value=844,
},
CommentStreamsAllowedNamespaces={
value=nil,
},
CommentStreamsNewestStreamsOnTop={
value=true,
},
CommentStreamsModeratorFastDelete={
value=false,
},
CommentStreamsShowLabels={
value=true,
},
CommentStreamsEnableVoting={
value=false,
},
CommentStreamsInitiallyCollapsedNamespaces={
value={
},
},
CommentStreamsUserRealNamePropertyName={
value=nil,
},
CommentStreamsUserAvatarPropertyName={
value=nil,
},
CommentStreamsEnableSearch={
value=true,
},
CommentStreamsExportCommentsAutomatically={
value=true,
},
CommentStreamsSuppressLogsFromRCs={
value=true,
},
CommentStreamsTimeFormat={
value="M j, Y \\a\\t g:i a",
},
},
composer="mediawiki/comment-streams",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CommentStreams",
},
Commentbox={
name="Commentbox",
version="0.3.0",
author="[http://spiele.j-crew.de Thomas Bleher]",
url="https://www.mediawiki.org/wiki/Extension:Commentbox",
descriptionmsg="commentbox-desc",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
SpecialPages={
AddComment="\\MediaWiki\\Extension\\Commentbox\\SpecialAddComment",
},
ExtensionMessagesFiles={
CommentboxAlias="Commentbox.alias.php",
},
Hooks={
OutputPageBeforeHTML="MediaWiki\\Extension\\Commentbox\\Hooks::onOutputPageBeforeHTML",
},
config={
CommentboxNamespaces={
value={
true,},
},
CommentboxRows={
value=5,
},
CommentboxColumns={
value=80,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Commentbox",
},
Comments={
name="Comments",
version="5.0",
author={
"David Pean","Misza","Jack Phoenix","Adam Carter/UltrasonicNXT","Samantha Nguyen",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:Comments",
descriptionmsg="comments-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.43",
},
callback="CommentsHooks::registerExtension",
GroupPermissions={
["*"]={
comment=true,
},
commentadmin={
commentadmin=true,
},
autoconfirmed={
commentlinks=true,
},
},
AvailableRights={
"comment","commentadmin","commentlinks","comment-delete-own",},
DefaultUserOptions={
["echo-subscriptions-web-mention-comment"]=true,
["echo-subscriptions-email-mention-comment"]=true,
},
SpecialPages={
CommentIgnoreList="CommentIgnoreList",
},
LogTypes={
"comments",},
FilterLogTypes={
comments=true,
},
LogActionsHandlers={
["comments/add"]="CommentsLogFormatter",
["comments/delete"]="LogFormatter",
},
APIModules={
commentblock="CommentBlockAPI",
commentdelete="CommentDeleteAPI",
commentlatestid="CommentLatestIdAPI",
commentlist={
class="CommentListAPI",
services={
"ReadOnlyMode",},
},
commentsubmit="CommentSubmitAPI",
commentvote="CommentVoteAPI",
},
ExtensionMessagesFiles={
CommentsAliases="Comments.i18n.alias.php",
CommentsMagic="Comments.i18n.magic.php",
NumberOfCommentsMagic="Comments.i18n.magic.php",
},
Hooks={
BeforeCreateEchoEvent="CommentsHooks::onBeforeCreateEchoEvent",
ParserFirstCallInit="CommentsHooks::onParserFirstCallInit",
LoadExtensionSchemaUpdates="CommentsHooks::onLoadExtensionSchemaUpdates",
MagicWordwgVariableIDs="NumberOfComments::onMagicWordwgVariableIDs",
ParserGetVariableValueSwitch="NumberOfComments::onParserGetVariableValueSwitch",
ArticlePurge="CommentsHooks::onArticlePurge",
},
config={
CommentsDefaultAvatar={
description="URL to the default avatar image when the SocialProfile extension is NOT installed and thus its avatars aren't usable",
value="http://www.shoutwiki.com/w/extensions/SocialProfile/avatars/default_ml.gif",
},
CommentsSortDescending={
description="Sort comments in descending order?",
value=false,
},
CommentsInRecentChanges={
description="Display the additions and deletions of comments in the list of recent changes?",
value=false,
},
CommentsAbuseFilterGroup={
description="This is the custom group name for AbuseFilter for when the AbuseFilter extension is enabled. It ensures that AbuseFilter only pulls the filters related to Comments. If you would like AbuseFilter to pull all of the filters, enter 'default' here.",
value="comment",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Comments",
},
CommonsMetadata={
name="CommonsMetadata",
author="Brian Wolff",
url="https://www.mediawiki.org/wiki/Extension:CommonsMetadata",
descriptionmsg="commonsmetadata-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
Hooks={
GetExtendedMetadata="main",
ValidateExtendedMetadataCache="main",
ContentAlterParserOutput="main",
SkinAfterBottomScripts="main",
},
HookHandlers={
main={
class="CommonsMetadata\\HookHandler",
},
},
ConfigRegistry={
CommonsMetadata="GlobalVarConfig::newInstance",
},
config={
CommonsMetadataForceRecalculate={
description="Force calculation of metadata even when the image is from a foreign repository which would provide it. This is meant for local development.",
value=false,
},
CommonsMetadataSetTrackingCategories={
description="Add tracking categories to file pages lacking fundamental metadata like author or license.",
value=false,
},
CommonsMetadataPublicDomainPageUrl={
description="Link used for `license` attribute in schema.org script for Files in the public domain.",
value="https://commons.wikimedia.org/wiki/Help:Public_domain",
},
},
TrackingCategories={
"commonsmetadata-trackingcategory-no-license","commonsmetadata-trackingcategory-no-description","commonsmetadata-trackingcategory-no-author","commonsmetadata-trackingcategory-no-source","commonsmetadata-trackingcategory-no-patent",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CommonsMetadata",
},
CommunityConfiguration={
name="CommunityConfiguration",
author={
"Martin Urbanec","Sergio Gimeno","Michael Große","Cyndy Simiyu",},
url="https://www.mediawiki.org/wiki/Extension:CommunityConfiguration",
descriptionmsg="communityconfiguration-desc",
["license-name"]="GPL-3.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.43.0",
},
config={
CommunityConfigurationFeedbackURL={
description="The URL to use for links targetting the feedback page for the extension.",
value=nil,
},
CommunityConfigurationProviders={
description="The list of provider specifications the extension will use. Specified as a mapping of provider name to provider specification. Additional provider types can be defined in CommunityConfigurationProviderClasses. Extensions can register their own providers through extension.json attribute \"CommunityConfiguration/Providers\"",
value={
},
},
CommunityConfigurationStores={
description="The list of store specifications the extension will use. Specified as a mapping of store name to ObjectFactory spec",
value={
static={
class="MediaWiki\\Extension\\CommunityConfiguration\\Store\\StaticStore",
services={
},
},
wikipage={
class="MediaWiki\\Extension\\CommunityConfiguration\\Store\\WikiPageStore",
services={
"MainWANObjectCache","TitleFactory","RevisionLookup","CommunityConfiguration.WikiPageStore.Writer",},
},
},
},
CommunityConfigurationValidators={
description="The list of validator specifications the extension will use. Specified as a mapping of store name to ObjectFactory spec",
value={
noop={
class="MediaWiki\\Extension\\CommunityConfiguration\\Validation\\NoopValidator",
services={
},
},
jsonschema={
class="MediaWiki\\Extension\\CommunityConfiguration\\Validation\\JsonSchemaValidator",
services={
"StatsdDataFactory",},
},
},
},
CommunityConfigurationProviderClasses={
description="The list of provider class specifications the extension will use. Specified as a mapping of store name to ObjectFactory spec. Extensions can register their own provider types through extension.json attribute \"CommunityConfiguration/ProviderClasses\"",
value={
data={
class="MediaWiki\\Extension\\CommunityConfiguration\\Provider\\DataProvider",
services={
},
args={
},
},
["mw-config"]={
class="MediaWiki\\Extension\\CommunityConfiguration\\Provider\\MediaWikiConfigProvider",
services={
},
args={
},
},
},
},
CommunityConfigurationEditorCapabilities={
value={
dashboard={
class="MediaWiki\\Extension\\CommunityConfiguration\\EditorCapabilities\\DashboardEditorCapability",
services={
"CommunityConfiguration.ProviderFactory",},
},
["generic-editor"]={
class="MediaWiki\\Extension\\CommunityConfiguration\\EditorCapabilities\\GenericFormEditorCapability",
services={
"CommunityConfiguration.ProviderFactory","LinkRenderer","FormatterFactory","CommunityConfiguration.HookRunner","CommunityConfiguration.MessagesProcessor",},
},
},
},
},
ExtensionMessagesFiles={
CommunityConfigurationAlias="CommunityConfiguration.alias.php",
},
HookHandlers={
validation={
class="MediaWiki\\Extension\\CommunityConfiguration\\Hooks\\ValidationHooks",
services={
"CommunityConfiguration.ProviderFactory",},
},
navigation={
class="MediaWiki\\Extension\\CommunityConfiguration\\Hooks\\NavigationHooks",
services={
"CommunityConfiguration.ProviderFactory","SpecialPageFactory",},
},
["change-tags"]={
class="MediaWiki\\Extension\\CommunityConfiguration\\Hooks\\ChangeTagHooks",
},
},
Hooks={
JsonValidateSave="validation",
["SkinTemplateNavigation::Universal"]="navigation",
ChangeTagsListActive="change-tags",
ListDefinedTags="change-tags",
},
ServiceWiringFiles={
"src/ServiceWiring.php",},
APIModules={
communityconfigurationedit={
class="MediaWiki\\Extension\\CommunityConfiguration\\Api\\ApiEdit",
services={
"CommunityConfiguration.ProviderFactory",},
},
},
APIMetaModules={
communityconfiguration={
class="MediaWiki\\Extension\\CommunityConfiguration\\Api\\ApiQueryRead",
services={
"CommunityConfiguration.ProviderFactory",},
},
},
SpecialPages={
CommunityConfiguration={
class="MediaWiki\\Extension\\CommunityConfiguration\\Specials\\SpecialCommunityConfiguration",
services={
"CommunityConfiguration.EditorCapabilityFactory","CommunityConfiguration.ProviderFactory",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CommunityConfiguration",
},
ConfigManager={
name="ConfigManager",
version="3.3.0-alpha",
url="https://en.wiki.bluespice.com/wiki/Reference:ConfigManager",
author={
"Patric Wirth",},
descriptionmsg="configmanager-desc",
["license-name"]="GPL-3.0-only",
type="specialpage",
attributes={
BlueSpiceFoundation={
AdminToolRegistry={
["config-manager"]="\\ConfigManager\\AdminTool",
},
PermissionRegistry={
["configmanager-viewspecialpage"]={
type="global",
roles={
"admin","maintenanceadmin","structuremanager",},
},
},
},
},
requires={
MediaWiki="&gt;= 1.35.0",
extensions={
BlueSpiceFoundation="&gt;= 3.3",
},
},
ExtensionMessagesFiles={
ConfigManagerAlias="languages/ConfigManager.alias.php",
},
APIModules={
["configmanager-tasks"]="\\ConfigManager\\Api\\Task\\ConfigManager",
["configmanager-store"]="\\ConfigManager\\Api\\Store\\ConfigManager",
},
SpecialPages={
ConfigManager="\\ConfigManager\\Special\\ConfigManager",
},
GroupPermissions={
["*"]={
["configmanager-viewspecialpage"]=false,
},
user={
["configmanager-viewspecialpage"]=false,
},
sysop={
["configmanager-viewspecialpage"]=true,
},
},
AvailableRights={
"configmanager-viewspecialpage",},
composer="mediawiki/configmanager",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ConfigManager",
},
ConfirmAccount={
name="Confirm User Accounts",
namemsg="confirmaccount-extensionname",
author="Aaron Schulz",
url="https://www.mediawiki.org/wiki/Extension:ConfirmAccount",
descriptionmsg="confirmaccount-desc",
type="specialpage",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.37.0",
},
suggests={
extensions={
ConfirmEdit="*",
},
},
ExtensionFunctions={
"ConfirmAccountHooks::onExtensionFunctions",},
SpecialPages={
RequestAccount={
class="RequestAccountPage",
services={
"UserFactory",},
},
ConfirmAccounts="ConfirmAccountsPage",
UserCredentials={
class="UserCredentialsPage",
services={
"UserGroupManager","UserIdentityLookup",},
},
},
ExtensionMessagesFiles={
ConfirmAccountAliases="ConfirmAccount.alias.php",
},
AuthManagerAutoConfig={
preauth={
ConfirmAccountPreAuthenticationProvider={
class="ConfirmAccountPreAuthenticationProvider",
sort=0,
},
},
},
Hooks={
["SkinTemplateNavigation::Universal"]="ConfirmAccountUIHooks::setRequestLoginLinks",
UserCreateForm="ConfirmAccountUIHooks::addRequestLoginText",
UserLoginForm="ConfirmAccountUIHooks::addRequestLoginText",
BeforePageDisplay="ConfirmAccountUIHooks::confirmAccountsNotice",
AdminLinks="ConfirmAccountUIHooks::confirmAccountAdminLinks",
AuthChangeFormFields="ConfirmAccountUIHooks::onAuthChangeFormFields",
LoadExtensionSchemaUpdates="ConfirmAccountUpdaterHooks::addSchemaUpdates",
SpecialPageBeforeExecute="ConfirmAccountHooks::onSpecialPageBeforeExecute",
},
AvailableRights={
"confirmaccount","confirmaccount-notify","requestips","lookupcredentials",},
GroupPermissions={
["*"]={
createaccount=false,
},
user={
createaccount=false,
},
bureaucrat={
confirmaccount=true,
requestips=true,
lookupcredentials=true,
},
},
config={
MakeUserPageFromBio={
description="Set the person's bio as their userpage?",
value=true,
},
AutoUserBioText={
description="Text to add to bio pages if the above option is on",
value="",
},
AutoWelcomeNewUsers={
description="Create a user talk page with a welcome message for accepted users. The message can be customized by editing MediaWiki:Confirmaccount-welc.",
value=true,
},
RejectedAccountMaxAge={
description="How long to store rejected requests? Default is one week.",
value=604800,
},
ConfirmAccountRejectAge={
description="How long after accounts have been requested/held before they count as 'rejected'? Default is one month.",
value=2592000,
},
AccountRequestThrottle={
description="How many requests can an IP make at once?",
value=1,
},
AccountRequestWhileBlocked={
description="Can blocked users with \"prevent account creation\" request accounts?",
value=false,
},
ConfirmAccountRequestFormItems={
description="Which form elements to show at Special:RequestAccount?",
value={
UserName={
enabled=true,
},
RealName={
enabled=true,
},
Biography={
enabled=true,
minWords=6,
},
AreasOfInterest={
enabled=true,
},
CV={
enabled=true,
},
Notes={
enabled=true,
},
Links={
enabled=true,
},
TermsOfService={
enabled=true,
},
},
merge_strategy="array_plus_2d",
},
AccountRequestExts={
description="If files can be attached, what types can be used? (MIME data is checked)",
value={
"txt","pdf","doc","latex","rtf","text","wp","wpd","sxw",},
},
AccountRequestTypes={
description="Prospective account request types. Format is an array of (integer =&gt; (subpage param,user group,autotext)) pairs. The integer keys enumerate the request types. The key for a type should not change. Each type has its own request queue at Special:ConfirmAccount/&lt;subpage param&gt;. When a request of a certain type is approved, the new user: (a) is placed in the &lt;user group&gt; group (if not User or *) (b) has &lt;autotext&gt; appended to his or her user page",
value={
{
[1]="authors",
[2]="user",
[3]=nil,
},},
merge_strategy="array_plus",
},
ConfirmAccountSortkey={
description="If set, will add {{DEFAULTSORT:sortkey}} to userpages for auto-categories. The sortkey will be made by doing a regex search and replace on the title. Set this variable to false to avoid sortkey use. For example, setting this variable to [ '/^(.+) ([^ ]+)$/', '$2, $1' ] will do {{DEFAULTSORT:firstname, lastname}}.",
value=false,
},
ConfirmAccountSaveInfo={
description="IMPORTANT: do we store the user's notes and credentials for successful account request? This will be stored indefinetely and will be accessible to users with crediential lookup permissions",
value=true,
},
ConfirmAccountContact={
description="Send an email to this address when account requestors confirm their email. Set to false to skip this. It might be useful to point this to a mailing list.",
value=false,
},
ConfirmAccountCaptchas={
description="If ConfirmEdit is installed and set to trigger for createaccount, inject CAPTCHAs for requests too?",
value=true,
},
ConfirmAccountFSRepos={
description="Storage repositories. 'accountreqs' is the location of attached files for pending requests and 'accountcreds' is the location of credential files.",
value={
accountreqs={
name="accountreqs",
directory=false,
url=nil,
hashLevels=3,
},
accountcreds={
name="accountcreds",
directory=false,
url=false,
hashLevels=3,
},
},
merge_strategy="array_plus_2d",
},
ConfirmAccountNotice={
description="Show notice for open requests to admins? This is cached, but still can be expensive on sites with thousands of requests.",
value=true,
},
ConfirmAdminEmailExtraFields={
description="Configuration for extra arguments that may be included in the admin email message. Extra parameters that could be added: [ 'email', 'real_name', 'bio', 'notes', 'urls', 'ip' ]. The order you specify here is the order in which you can use the parameters. $wgConfirmAdminEmailExtraFields is an array, the parameters 1 and 2 of the message will always be: 1 - the username and 2 - the confirm URL.",
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ConfirmAccount",
},
ConfirmEdit={
["@doc"]="Please read README.md",
name="ConfirmEdit",
version="1.6.0",
author={
"Brion Vibber","Florian Schmidt","Sam Reed","...",},
url="https://www.mediawiki.org/wiki/Extension:ConfirmEdit",
descriptionmsg="captcha-desc",
["license-name"]="GPL-2.0-or-later",
type="antispam",
requires={
MediaWiki="&gt;= 1.42",
},
GroupPermissions={
["*"]={
skipcaptcha=false,
},
user={
skipcaptcha=false,
},
autoconfirmed={
skipcaptcha=false,
},
bot={
skipcaptcha=true,
},
sysop={
skipcaptcha=true,
},
},
AvailableRights={
"skipcaptcha",},
GrantPermissions={
basic={
skipcaptcha=true,
},
},
ExtensionFunctions={
"MediaWiki\\Extension\\ConfirmEdit\\Hooks::confirmEditSetup",},
SpecialPages={
Captcha="MediaWiki\\Extension\\ConfirmEdit\\Specials\\SpecialCaptcha",
},
ExtensionMessagesFiles={
ConfirmEditAlias="ConfirmEdit.alias.php",
},
attributes={
VisualEditor={
PluginModules={
"ext.confirmEdit.visualEditor",},
},
},
HookHandlers={
ConfirmEditHooks={
class="MediaWiki\\Extension\\ConfirmEdit\\Hooks",
services={
"MainWANObjectCache",},
},
AbuseFilterHooks={
class="MediaWiki\\Extension\\ConfirmEdit\\AbuseFilterHooks",
services={
"MainConfig",},
},
},
Hooks={
EditPageBeforeEditButtons="ConfirmEditHooks",
EmailUserForm="ConfirmEditHooks",
EmailUser="ConfirmEditHooks",
PageSaveComplete="ConfirmEditHooks",
TitleReadWhitelist="ConfirmEditHooks",
AlternateEditPreview="ConfirmEditHooks",
ResourceLoaderRegisterModules="ConfirmEditHooks",
["EditPage::showEditForm:fields"]="ConfirmEditHooks",
EditFilterMergedContent="ConfirmEditHooks",
APIGetAllowedParams="ConfirmEditHooks",
AuthChangeFormFields="ConfirmEditHooks",
AbuseFilterCustomActions="AbuseFilterHooks",
},
AuthManagerAutoConfig={
preauth={
CaptchaPreAuthenticationProvider={
class="MediaWiki\\Extension\\ConfirmEdit\\Auth\\CaptchaPreAuthenticationProvider",
sort=10,
},
},
},
config={
CaptchaWhitelistIP={
value=false,
},
Captcha={
value=nil,
},
CaptchaTriggers={
value={
edit=false,
create=false,
sendemail=false,
addurl=true,
createaccount=true,
badlogin=true,
badloginperuser=true,
},
merge_strategy="array_plus",
},
CaptchaTriggersOnNamespace={
value={
},
merge_strategy="array_plus_2d",
},
CaptchaStorageClass={
value="MediaWiki\\Extension\\ConfirmEdit\\Store\\CaptchaSessionStore",
},
CaptchaSessionExpiration={
value=1800,
},
CaptchaBadLoginExpiration={
value=300,
},
CaptchaBadLoginPerUserExpiration={
value=600,
},
AllowConfirmedEmail={
value=false,
},
CaptchaBadLoginAttempts={
value=3,
},
CaptchaBadLoginPerUserAttempts={
value=20,
},
CaptchaWhitelist={
value=false,
},
CaptchaRegexes={
value={
},
},
ConfirmEditEnabledAbuseFilterCustomActions={
description="Feature flag to toggle list of available custom actions to enable in AbuseFilter. See AbuseFilterHooks::onAbuseFilterCustomActions",
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ConfirmEdit",
},
CongressLookup={
name="CongressLookup",
version="2.0.0",
author={
"Ryan Kaldari",},
url="https://www.mediawiki.org/wiki/Extension:CongressLookup",
descriptionmsg="congresslookup-desc",
["license-name"]="MIT",
type="specialpage",
requires={
MediaWiki="&gt;= 1.31.0",
},
SpecialPages={
NetNeutrality="MediaWiki\\Extension\\CongressLookup\\SpecialNetNeutrality",
SenateLookup="MediaWiki\\Extension\\CongressLookup\\SpecialSenateLookup",
},
ExtensionMessagesFiles={
CongressLookupAlias="CongressLookup.alias.php",
},
config={
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CongressLookup",
},
ContactManager={
name="ContactManager",
author="thomas-topway-it",
version="1.2.2",
url="https://www.mediawiki.org/wiki/Extension:ContactManager",
descriptionmsg="contactcmanager-extension-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
callback="ContactManagerHooks::initExtension",
APIModules={
["contactmanager-createjob"]="MediaWiki\\Extension\\ContactManager\\ApiCreateJob",
},
ExtensionMessagesFiles={
ContactManagerAlias="ContactManager.alias.php",
ContactManagerMagic="ContactManagerMagic.i18n.magic.php",
},
Hooks={
LoadExtensionSchemaUpdates="ContactManagerHooks::onLoadExtensionSchemaUpdates",
BeforeInitialize="ContactManagerHooks::onBeforeInitialize",
ParserFirstCallInit="ContactManagerHooks::onParserFirstCallInit",
BeforePageDisplay="ContactManagerHooks::onBeforePageDisplay",
BeforeCreateEchoEvent="MediaWiki\\Extension\\ContactManager\\EchoInterface::onBeforeCreateEchoEvent",
SkinBuildSidebar="ContactManagerHooks::onSkinBuildSidebar",
["VisualData::OnFormSubmit"]="ContactManagerHooks::VisualDataOnFormSubmit",
},
SpecialPages={
},
GroupPermissions={
sysop={
["contactmanager-can-manage-mailboxes"]=true,
},
bureaucrat={
["contactmanager-can-manage-mailboxes"]=true,
},
["contactmanager-admin"]={
["contactmanager-can-manage-mailboxes"]=true,
},
},
AddGroups={
["contactmanager-admin"]={
"contactmanager-admin",},
},
RemoveGroups={
["contactmanager-admin"]={
"contactmanager-admin",},
},
AvailableRights={
"contactmanager-can-manage-mailboxes",},
namespaces={
{
id=2260,
constant="NS_CONTACTMANAGER",
name="ContactManager",
},{
id=2261,
constant="NS_CONTACTMANAGER_TALK",
name="ContactManagerTalk",
},},
JobClasses={
MailboxJob="MediaWiki\\Extension\\ContactManager\\MailboxJob",
},
config={
ContactManagerSchemasMailbox="ContactManager/Mailbox",
ContactManagerSchemasMailboxInfo="ContactManager/Mailbox info",
ContactManagerSchemasMailboxFolders="ContactManager/Mailbox folders",
ContactManagerSchemasRetrieveMessages="ContactManager/Retrieve messages",
ContactManagerSchemasIncomingMail="ContactManager/Incoming mail",
ContactManagerSchemasDefineJob="ContactManager/Define job",
ContactManagerSchemasMessageFilter="ContactManager/Message filter",
ContactManagerSchemasComposeEmail="ContactManager/Compose email",
ContactManagerSchemasMailer="ContactManager/Mailer",
ContactManagerSchemasContact="ContactManager/Contact",
ContactManagerMailboxInfoArticle="ContactManager:Mailboxes/$1",
ContactManagerMailboxFoldersArticle="ContactManager:Mailboxes/$1",
ContactManagerContactsArticle="ContactManager:Contacts/$1",
ContactManagerAttachmentsFolder="",
ContactManangerDisableSidebarLink=false,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ContactManager",
},
ContactPage={
name="ContactPage",
version="2.3",
author={
"Daniel Kinzler","Sam Reed",},
url="https://www.mediawiki.org/wiki/Extension:ContactPage",
descriptionmsg="contactpage-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42.0",
},
ExtensionMessagesFiles={
ContactPageAliases="ContactPage.alias.php",
},
config={
ContactConfig={
value={
default={
RecipientUser=nil,
SenderEmail=nil,
SenderName=nil,
RequireDetails=false,
IncludeIP=false,
MustBeLoggedIn=false,
MustHaveEmail=false,
NameReadonly=false,
EmailReadonly=false,
SubjectReadonly=false,
UseCustomBlockMessage=false,
RLModules={
},
RLStyleModules={
},
AdditionalFields={
Text={
["label-message"]="emailmessage",
type="textarea",
required=true,
},
},
},
},
merge_strategy="array_plus_2d",
},
},
SpecialPages={
Contact={
class="MediaWiki\\Extension\\ContactPage\\SpecialContact",
services={
"UserOptionsLookup",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ContactPage",
},
ContainerFilter={
name="ContainerFilter",
version="2.0.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[http://www.hallowelt.com Hallo Welt! GmbH]",},
url="http://www.hallowelt.com",
descriptionmsg="containerfilter-desc",
requires={
MediaWiki="&gt;= 1.39.0",
},
attributes={
VisualEditor={
PluginModules={
"ext.containerFilter.ve.nodes",},
},
ContentDroplets={
Droplets={
["container-filter"]={
class="\\MediaWiki\\Extension\\ContainerFilter\\ContentDroplets\\ContainerFilter",
},
},
},
},
HookHandlers={
main={
class="MediaWiki\\Extension\\ContainerFilter\\HookHandler\\Main",
},
},
Hooks={
ParserFirstCallInit={
"main",},
},
composer="mediawiki/container-filter",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ContainerFilter",
},
ContentDroplets={
name="ContentDroplets",
version="2.0.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[http://www.hallowelt.com Hallo Welt! GmbH]",},
url="http://www.hallowelt.com",
descriptionmsg="contentdroplets-desc",
requires={
MediaWiki="&gt;= 1.39.0",
},
callback="mwsInitComponents",
attributes={
VisualEditor={
PluginModules={
},
},
ContentDroplets={
Droplets={
["text-box-success"]={
class="\\MediaWiki\\Extension\\ContentDroplets\\Droplet\\TextBoxDroplet",
args={
"success",{
"content",},},
},
["text-box-warning"]={
class="\\MediaWiki\\Extension\\ContentDroplets\\Droplet\\TextBoxDroplet",
args={
"warning",{
"content","featured",},},
},
["text-box-important"]={
class="\\MediaWiki\\Extension\\ContentDroplets\\Droplet\\TextBoxDroplet",
args={
"important",{
"content","featured",},},
},
["text-box-note"]={
class="\\MediaWiki\\Extension\\ContentDroplets\\Droplet\\TextBoxDroplet",
args={
"note",{
"content",},},
},
["text-box-tip"]={
class="\\MediaWiki\\Extension\\ContentDroplets\\Droplet\\TextBoxDroplet",
args={
"tip",{
"content",},},
},
["text-box-neutral"]={
class="\\MediaWiki\\Extension\\ContentDroplets\\Droplet\\TextBoxDroplet",
args={
"neutral",{
"content",},},
},
icon={
class="\\MediaWiki\\Extension\\ContentDroplets\\Droplet\\IconDroplet",
},
code={
class="\\MediaWiki\\Extension\\ContentDroplets\\Droplet\\CodeDroplet",
},
},
},
MWStakeContentProvisioner={
ContentManifests={
DefaultContentProvisioner={
"extensions/ContentDroplets/data/Content/ContentDropletsTemplates/manifest.json",},
},
},
},
Hooks={
BeforePageDisplay="addModules",
},
HookHandlers={
addModules={
class="MediaWiki\\Extension\\ContentDroplets\\Hook\\BeforePageDisplay\\AddModules",
},
},
RestRoutes={
{
path="/contentdroplets/droplets",
method="GET",
class="\\MediaWiki\\Extension\\ContentDroplets\\Rest\\GetDropletsHandler",
services={
"ContentDropletsProvider",},
},},
config={
ContentDropletsDroplets={
value={
},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
composer="mediawiki/content-droplets",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ContentDroplets",
},
ContentStabilization={
name="ContentStabilization",
version="3.0.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[http://www.hallowelt.com Hallo Welt! GmbH]",},
url="http://www.hallowelt.com",
descriptionmsg="contentstabilization-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
OOJSPlus="&gt;= 2.0.0",
},
},
attributes={
ContentStabilization={
InclusionModes={
stable={
class="MediaWiki\\Extension\\ContentStabilization\\InclusionMode\\Stable",
services={
"RevisionLookup","ContentStabilization._Store","RepoGroup","TitleFactory","ContentStabilization._Config",},
},
current={
class="MediaWiki\\Extension\\ContentStabilization\\InclusionMode\\Current",
services={
"RevisionLookup","RepoGroup","TitleFactory",},
},
},
},
PageHeader={
PageInfoRegistry={
["contentstabilization-versionswitch"]="MediaWiki\\Extension\\ContentStabilization\\Integration\\PageInfoElement\\VersionSwitch::factory",
["contentstabilization-pagestatus-dropdown"]="MediaWiki\\Extension\\ContentStabilization\\Integration\\PageInfoElement\\PageStatusDropdown::factory",
},
},
Notifications={
Events={
["stable-point-added"]={
buckets={
"qm",},
},
},
},
BlueSpiceFoundation={
PermissionRegistry={
["contentstabilization-admin"]={
type="namespace",
roles={
"admin",},
},
["contentstabilization-oversight"]={
type="namespace",
roles={
"reviewer","admin",},
},
["contentstabilization-stabilize"]={
type="namespace",
roles={
"reviewer","admin",},
},
},
ConfigDefinitionRegistry={
ContentStabilizationInclusionMode="MediaWiki\\Extension\\ContentStabilization\\Integration\\ConfigDefinition\\HandleIncludes::getInstance",
ContentStabilizationDraftGroups="MediaWiki\\Extension\\ContentStabilization\\Integration\\ConfigDefinition\\DraftGroups::getInstance",
ContentStabilizationAllowFirstUnstable="MediaWiki\\Extension\\ContentStabilization\\Integration\\ConfigDefinition\\AllowFirstUnstable::getInstance",
ContentStabilizationStabilizeSMWProperties="MediaWiki\\Extension\\ContentStabilization\\Integration\\ConfigDefinition\\StabilizeSMWProperties::getInstance",
BlueSpiceExtendedSearchIndexOnlyStable="MediaWiki\\Extension\\ContentStabilization\\Integration\\ConfigDefinition\\SearchIndexOnlyStable::getInstance",
BlueSpiceUEModulePDFShowStabilizationTag="MediaWiki\\Extension\\ContentStabilization\\Integration\\ConfigDefinition\\PDFExportShowTag::getInstance",
BlueSpiceBookshelfExportListStable="MediaWiki\\Extension\\ContentStabilization\\Integration\\ConfigDefinition\\BookshelfExportListStable::getInstance",
BlueSpiceBookshelfExportListUnstable="MediaWiki\\Extension\\ContentStabilization\\Integration\\ConfigDefinition\\BookshelfExportListUnstable::getInstance",
BlueSpiceBookshelfExportListDisabled="MediaWiki\\Extension\\ContentStabilization\\Integration\\ConfigDefinition\\BookshelfExportListDisabled::getInstance",
},
AlertProviderRegistry={
["contentstabilization-revisionstate"]="MediaWiki\\Extension\\ContentStabilization\\Integration\\AlertProvider\\RevisionState::factory",
},
},
Workflows={
LogicObjects={
ActivityRegistry={
approve_revision={
class="MediaWiki\\Extension\\ContentStabilization\\Integration\\Workflows\\Activity\\ApprovePageActivity",
services={
"TitleFactory","ContentStabilization.Stabilizer","ContentStabilization.Lookup","RevisionStore","UserFactory",},
},
},
},
PropertyValidators={
["valid-reviewer"]={
class="MediaWiki\\Extension\\ContentStabilization\\Integration\\Workflows\\PropertyValidator\\ValidReviewer",
services={
"UserFactory","PermissionManager",},
},
},
EditorPluginModules={
"ext.contentStabilization.workflows.editor.customElements",},
},
BlueSpiceSMWConnector={
ExtraPropertyRegistry={
docstatefields="MediaWiki\\Extension\\ContentStabilization\\Integration\\Property\\DocumentStatePropertyValueProvider::factory",
docsversionfields="MediaWiki\\Extension\\ContentStabilization\\Integration\\Property\\DocumentVersionPropertyValueProvider::factory",
approvaldatefields="MediaWiki\\Extension\\ContentStabilization\\Integration\\Property\\ApprovalDatePropertyValueProvider::factory",
approvaluserfields="MediaWiki\\Extension\\ContentStabilization\\Integration\\Property\\ApprovalUserPropertyValueProvider::factory",
},
},
BlueSpiceSmartList={
ModeRegistry={
stablepages={
class="MediaWiki\\Extension\\ContentStabilization\\Integration\\SmartList\\StablePages",
},
flaggedrevisions={
["@reason"]="backwards compatibility",
class="MediaWiki\\Extension\\ContentStabilization\\Integration\\SmartList\\StablePages",
},
},
},
EnhancedStandardUIs={
HistoryPagePlugins={
contentstabilization={
class="MediaWiki\\Extension\\ContentStabilization\\Integration\\EnhancedStandardUIs\\StablePagesHistoryPlugin",
services={
"ContentStabilization.Lookup","ContentLanguage","UserFactory",},
},
},
},
},
ExtensionMessagesFiles={
["ContentStabilization.alias"]="languages/ContentStabilization.special.alias.php",
},
DefaultUserOptions={
["history-show-sp_state"]=1,
["history-show-sp_approver"]=1,
["history-show-sp_approve_ts"]=0,
["history-show-sp_approve_comment"]=0,
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
AvailableRights={
"contentstabilization-admin","contentstabilization-oversight","contentstabilization-stabilize",},
GroupPermissions={
reviewer={
["contentstabilization-admin"]=false,
["contentstabilization-oversight"]=true,
["contentstabilization-stabilize"]=true,
},
sysop={
["contentstabilization-admin"]=true,
["contentstabilization-oversight"]=true,
["contentstabilization-stabilize"]=true,
},
},
Hooks={
BeforePageDisplay={
"addBootstrap","integrationAddStyles","stabilizeContent",},
LoadExtensionSchemaUpdates="runDatabaseUpdates",
ArticleViewHeader={
"stabilizeContent",},
BeforeParserFetchTemplateRevisionRecord="stabilizeContent",
BeforeParserFetchFileAndTitle="stabilizeContent",
PageDeleteComplete="stabilizeContent",
PageMoveComplete="stabilizeContent",
ImagePageFindFile="stabilizeContent",
MWStakeCommonUIRegisterSkinSlotComponents="registerGlobalAction",
PageHistoryLineEnding="integrateIntoHistory",
ImagePageFileHistoryLine="integrateIntoHistory",
BeforeInitialize={
"integrateIntoHistory",},
["NamespaceManager::getMetaFields"]="integrateIntoNamespaceManager",
BSApiNamespaceStoreMakeData="integrateIntoNamespaceManager",
["NamespaceManager::editNamespace"]="integrateIntoNamespaceManager",
NamespaceManagerBeforePersistSettings="integrateIntoNamespaceManager",
["SMW::RevisionGuard::ChangeRevisionID"]="stabilizeSMWProperties",
["SMW::RevisionGuard::ChangeRevision"]="stabilizeSMWProperties",
["SMW::RevisionGuard::ChangeFile"]="stabilizeSMWProperties",
["SMW::RevisionGuard::IsApprovedRevision"]="stabilizeSMWProperties",
ContentStabilizationStablePointAdded="runUpdatesOnStabilizationChange",
ContentStabilizationStablePointUpdated="runUpdatesOnStabilizationChange",
ContentStabilizationStablePointRemoved="runUpdatesOnStabilizationChange",
ContentStabilizationStablePointMoved="runUpdatesOnStabilizationChange",
DrawioGetFile="stabilizeDrawioFile",
ImgAuthBeforeStream="stabilizeImgAuthFile",
BSExtendedSearchWikipageFetchRevision="stabilizeExtendedSearch",
BSExtendedSearchRepoFileGetFile="stabilizeExtendedSearch",
BSUEModulePDFgetPage="stabilizePDFExport",
BSUEModulePDFBeforeAddingStyleBlocks={
"stabilizePDFExport","stabilizeBookExport",},
BSUEModulePDFbeforeGetPage="stabilizePDFExport",
BSBookshelfExportBeforeArticles="stabilizeBookExport",
BSApiExtJSStoreBaseBeforePostProcessData="addStabilizationInfoToPageAssignments",
BSPageAssignmentsOverview="addStabilizationInfoToPageAssignments",
MediaWikiPerformAction="stabilizeContent",
["SkinTemplateNavigation::Universal"]="addApproveAction",
BlueSpiceDiscoveryTemplateDataProviderAfterInit="addApproveActionDiscovery",
EditPageGetCheckboxesDefinition="addApproveAction",
GetPreferences="userpreference",
TitleGetEditNotices="stabilizeContent",
ContentAlterParserOutput={
"stabilizeContent",},
PageSaveComplete="autoStabilize",
},
HookHandlers={
addBootstrap={
class="MediaWiki\\Extension\\ContentStabilization\\Hook\\AddBootstrap",
},
runDatabaseUpdates={
class="MediaWiki\\Extension\\ContentStabilization\\Hook\\RunDatabaseUpdates",
},
stabilizeContent={
class="MediaWiki\\Extension\\ContentStabilization\\Hook\\StabilizeContent",
services={
"ContentStabilization.Lookup","Parser","RevisionLookup","ContentStabilization.Stabilizer","HookContainer","TitleFactory","RevisionRenderer",},
},
registerGlobalAction={
class="MediaWiki\\Extension\\ContentStabilization\\Integration\\Hook\\RegisterGlobalAction",
},
integrationAddStyles={
class="MediaWiki\\Extension\\ContentStabilization\\Integration\\Hook\\AddStyles",
},
integrateIntoHistory={
class="MediaWiki\\Extension\\ContentStabilization\\Integration\\Hook\\IntegrateIntoHistory",
services={
"ContentStabilization.Lookup","ContentLanguage","TitleFactory","LinkRenderer",},
},
integrateIntoNamespaceManager={
class="MediaWiki\\Extension\\ContentStabilization\\Integration\\Hook\\IntegrateIntoNamespaceManager",
services={
"MainConfig","NamespaceInfo",},
},
stabilizeSMWProperties={
class="MediaWiki\\Extension\\ContentStabilization\\Integration\\Hook\\StabilizeSMWProperties",
services={
"ContentStabilization.Lookup","ContentStabilization._Config",},
},
runUpdatesOnStabilizationChange={
class="MediaWiki\\Extension\\ContentStabilization\\Hook\\ReactToStabilizationChanges",
services={
"WikiPageFactory","MWStake.Notifier","ContentStabilization._SpecialLogLogger","MWStakeNotificationsNotifier",},
},
stabilizeDrawioFile={
class="MediaWiki\\Extension\\ContentStabilization\\Integration\\Hook\\StabilizeDrawioFiles",
services={
"ContentStabilization.Lookup","RepoGroup",},
},
stabilizeImgAuthFile={
class="MediaWiki\\Extension\\ContentStabilization\\Integration\\Hook\\StabilizeImgAuth",
services={
"ContentStabilization.Lookup","RepoGroup",},
},
stabilizeExtendedSearch={
class="MediaWiki\\Extension\\ContentStabilization\\Integration\\Hook\\StabilizeSearchIndex",
services={
"ContentStabilization.Lookup","MainConfig",},
},
stabilizePDFExport={
class="MediaWiki\\Extension\\ContentStabilization\\Integration\\Hook\\StabilizePDFExport",
services={
"ContentStabilization.Lookup","TitleFactory","ContentLanguage","MainConfig",},
},
stabilizeBookExport={
class="MediaWiki\\Extension\\ContentStabilization\\Integration\\Hook\\StabilizeBookExport",
services={
"ContentStabilization.Lookup","TitleFactory","ContentLanguage","PageProps","MainConfig","HookContainer",},
},
addStabilizationInfoToPageAssignments={
class="MediaWiki\\Extension\\ContentStabilization\\Integration\\Hook\\AddStabilizationInfoToPageAssignments",
services={
"ContentStabilization.Lookup","TitleFactory",},
},
addApproveAction={
class="MediaWiki\\Extension\\ContentStabilization\\Hook\\AddApproveAction",
services={
"ContentStabilization.Lookup","PermissionManager",},
},
addApproveActionDiscovery={
class="MediaWiki\\Extension\\ContentStabilization\\Hook\\AddApproveActionDiscovery",
},
userpreference={
class="\\MediaWiki\\Extension\\ContentStabilization\\Hook\\UserPreference",
},
autoStabilize={
class="MediaWiki\\Extension\\ContentStabilization\\Hook\\AutoStabilize",
services={
"ContentStabilization.Stabilizer","ContentStabilization.Lookup","ContentStabilization._DebugLogger",},
},
},
SpecialPages={
ContentStabilization={
class="MediaWiki\\Extension\\ContentStabilization\\Special\\ContentStabilization",
services={
"ContentStabilization._Config","ContentLanguage",},
},
},
RestRoutes={
{
path="/content_stabilization",
class="MediaWiki\\Extension\\ContentStabilization\\Rest\\ListStablePointsHandler",
services={
"TitleFactory","ContentStabilization.Stabilizer","ContentStabilization.Lookup",},
},{
method="POST",
path="/content_stabilization",
class="MediaWiki\\Extension\\ContentStabilization\\Rest\\SetStablePointHandler",
services={
"TitleFactory","ContentStabilization.Stabilizer","ContentStabilization.Lookup","RevisionStore",},
},{
method="DELETE",
path="/content_stabilization/{rev_id}",
class="MediaWiki\\Extension\\ContentStabilization\\Rest\\RemoveStablePointHandler",
services={
"TitleFactory","ContentStabilization.Stabilizer","ContentStabilization.Lookup","RevisionStore",},
},{
path="/content_stabilization/list",
class="MediaWiki\\Extension\\ContentStabilization\\Rest\\StabilizationOverviewHandler",
services={
"HookContainer","PermissionManager","ContentStabilization.Lookup","DBLoadBalancer","ContentStabilization._Config","ContentLanguage",},
},},
config={
ContentStabilizationEnabledNamespaces={
description="Array of namespace IDs for which content stabilization is allowed",
value={
},
},
ContentStabilizationInclusionMode={
description="One of the ContentStabilizationInclusionModes keys. Null for default: keep state as it was at the time of stabilization",
value=nil,
},
ContentStabilizationAllowFirstUnstable={
description="Whether to allow users who would otherwise be blocked from viewing draft, to see first draft",
value=true,
},
ContentStabilizationStabilizeSMWProperties={
description="Whether to stabilize SMW properties. If true, it will only show properties that are stable",
value=true,
},
ContentStabilizationDraftGroups={
description="Array of user groups that are allowed to view draft content",
value={
"user",},
},
BlueSpiceExtendedSearchIndexOnlyStable={
description="Whether to only index stable content in the search index",
value=false,
},
BlueSpiceUEModulePDFShowStabilizationTag={
value=true,
},
BlueSpiceBookshelfExportListStable={
value=true,
description="List approved revisions log",
public=true,
},
BlueSpiceBookshelfExportListUnstable={
value=true,
description="List pages without stable revision",
public=true,
},
BlueSpiceBookshelfExportListDisabled={
value=true,
description="List pages that do not have stabilization enabled",
public=true,
},
BlueSpicePageApprovedReminderDelay={
public=false,
value=168,
},
},
LogTypes={
"stabilization",},
LogActionsHandlers={
["stabilization/*"]="LogFormatter",
},
ExtensionFunctions={
"MediaWiki\\Extension\\ContentStabilization\\Integration\\Hook\\IntegrateWikiExplorer::register","MediaWiki\\Extension\\ContentStabilization\\Integration\\EchoNotifications\\Registration::registerNotifications",},
composer="mediawiki/content-stabilization",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ContentStabilization",
},
ContentTransfer={
name="ContentTransfer",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]","Dejan Savuljesku &lt;savuljesku@hallowelt.com&gt;",},
["license-name"]="GPL-3.0-only",
version="3.0.0-alpha",
descriptionmsg="contenttransfer-extension-description",
requires={
MediaWiki="&gt;= 1.39.0",
},
ExtensionMessagesFiles={
ContentTransferAlias="languages/ContentTransfer.alias.php",
},
attributes={
BlueSpiceFoundation={
PermissionRegistry={
["content-transfer"]={
type="global",
roles={
"admin",},
},
},
},
ContentTransfer={
PageFilters={
term="\\ContentTransfer\\PageFilter\\PageName::factory",
category="\\ContentTransfer\\PageFilter\\Category::factory",
namespace="\\ContentTransfer\\PageFilter\\NamespaceFilter::factory",
},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
SpecialPages={
ContentTransfer="\\ContentTransfer\\Special\\Push",
},
APIModules={
["content-transfer-get-pages"]="\\ContentTransfer\\Api\\GetPages",
["content-transfer-push-info"]={
class="\\ContentTransfer\\Api\\PushInfo",
services={
"ContentTransferPageContentProviderFactory",},
},
["content-transfer-do-push-single"]={
class="\\ContentTransfer\\Api\\PushSingle",
services={
"ContentTransferPageContentProviderFactory","ContentTransferAuthenticatedRequestHandlerFactory",},
},
["content-transfer-purge-pages"]={
class="\\ContentTransfer\\Api\\PurgePages",
services={
"ContentTransferPageContentProviderFactory","ContentTransferAuthenticatedRequestHandlerFactory",},
},
},
AvailableRights={
"content-transfer",},
GroupPermissions={
["*"]={
["content-transfer"]=false,
},
user={
["content-transfer"]=false,
},
sysop={
["content-transfer"]=true,
},
},
Hooks={
LoadExtensionSchemaUpdates="\\ContentTransfer\\Extension::onLoadExtensionSchemaUpdates",
},
config={
ContentTransferTargets={
value={
},
},
ContentTransferIgnoreInsecureSSL={
value=false,
},
ContentTransferPageLimit={
value=200,
},
ContentTransferOnlyContentNamespaces={
value=false,
},
ContentTransferAllowTalkNamespaces={
value=false,
},
ContentTransferEnableBetaFeatures={
description="Enable experimental features. These features might be buggy",
value=false,
},
},
composer="mediawiki/content-transfer",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ContentTransfer",
},
ContentTranslation={
name="ContentTranslation",
author={
"Amir Aharoni","David Chan","Joel Sahleen","Kartik Mistry","Niklas Laxström","Pau Giner","Petar Petković","Runa Bhattacharjee","Santhosh Thottingal","Siebrand Mazeland","Sucheta Ghoshal",},
url="https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:ContentTranslation",
descriptionmsg="cx-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42.0",
extensions={
Cite="*",
UniversalLanguageSelector="*",
VisualEditor="*",
},
},
ExtensionMessagesFiles={
ContentTranslationAliases="ContentTranslation.alias.php",
},
ValidSkinNames={
contenttranslation={
class="ContentTranslation\\Skin\\SkinContentTranslation",
skippable=true,
args={
{
name="contenttranslation",
responsive=true,
styles={
"mw.cx.skin",},
messages={
"cx-javascript",},
},},
},
},
HookHandlers={
sxbeforepublish={
class="ContentTranslation\\SectionTranslationBeforePublishHandler",
services={
"ContentHandlerFactory","HttpRequestFactory","WikiPageFactory","MainConfig",},
},
significantEditCreator={
class="ContentTranslation\\HookHandler\\SignificantEditCreationHandler",
services={
"RevisionStore","ContentTranslation.RecentSignificantEditStore","ContentTranslation.EditedSectionFinder","ContentTranslation.WikidataIdFetcher",},
},
axArticleFooterEntrypointRegistrar={
class="ContentTranslation\\HookHandler\\AxArticleFooterEntrypointRegistrationHandler",
services={
"ConfigFactory","ContentLanguage",},
optional_services={
"DisambiguatorLookup",},
},
mfFrequentLanguagesEntrypointRegistrar={
class="ContentTranslation\\HookHandler\\MfFrequentLanguagesEntrypointRegistrationHandler",
services={
"LanguageFactory","LanguageNameUtils",},
},
mfLanguageSearcherEntrypointsRegistrar={
class="ContentTranslation\\HookHandler\\MfLanguageSearcherEntrypointsRegistrationHandler",
services={
"ContentTranslation.PreferenceHelper",},
},
ulsRelevantLanguagesEntrypointRegistrar={
class="ContentTranslation\\HookHandler\\ULSRelevantLanguagesEntrypointRegistrationHandler",
services={
"ContentTranslation.PreferenceHelper",},
},
ulsQuickActionEntrypointRegistrar={
class="ContentTranslation\\HookHandler\\ULSQuickActionEntrypointRegistrationHandler",
services={
"ActionFactory",},
},
recentEditEntrypointRegistrar={
class="ContentTranslation\\HookHandler\\RecentEditEntrypointRegistrationHandler",
services={
"ContentTranslation.RecentSignificantEditStore","ContentTranslation.WikidataIdFetcher",},
},
recentTranslationEntrypointRegistrar={
class="ContentTranslation\\HookHandler\\RecentTranslationEntrypointRegistrationHandler",
services={
"DBLoadBalancer","RevisionStore","ContentTranslation.TranslationStore",},
},
main={
class="ContentTranslation\\Hooks",
},
schema={
class="ContentTranslation\\SchemaHooks",
},
},
Hooks={
LoadExtensionSchemaUpdates="schema",
BeforePageDisplay={
"main","mfFrequentLanguagesEntrypointRegistrar","mfLanguageSearcherEntrypointsRegistrar","ulsRelevantLanguagesEntrypointRegistrar","ulsQuickActionEntrypointRegistrar","recentEditEntrypointRegistrar","recentTranslationEntrypointRegistrar","axArticleFooterEntrypointRegistrar",},
GetPreferences="main",
GetBetaFeaturePreferences="ContentTranslation\\Hooks::onGetBetaFeaturePreferences",
ResourceLoaderRegisterModules="main",
SpecialContributionsBeforeMainOutput="main",
ListDefinedTags="main",
ChangeTagsListActive="main",
SaveUserOptions="main",
["EditPage::showEditForm:initial"]="main",
BeforeCreateEchoEvent="ContentTranslation\\Hooks::onBeforeCreateEchoEvent",
EchoGetBundleRules="ContentTranslation\\Hooks::onEchoGetBundleRules",
SectionTranslationBeforePublish="sxbeforepublish",
RevisionFromEditComplete="significantEditCreator",
ContributeCards="main",
SkinAfterContent="axArticleFooterEntrypointRegistrar",
},
APIModules={
cxdelete={
class="ContentTranslation\\ActionApi\\ApiContentTranslationDelete",
services={
"ContentTranslation.TranslationCorporaStore","ContentTranslation.TranslationStore",},
},
sxdelete={
class="ContentTranslation\\ActionApi\\ApiSectionTranslationDelete",
services={
"ContentTranslation.TranslationCorporaStore","ContentTranslation.SectionTranslationStore","ContentTranslation.TranslationStore",},
},
cxpublish={
class="ContentTranslation\\ActionApi\\ApiContentTranslationPublish",
services={
"ContentTranslation.ParsoidClientFactory","LanguageFactory","StatsdDataFactory","LanguageNameUtils","ContentTranslation.TranslationStore","ContentTranslation.TranslationTargetUrlCreator",},
},
cxpublishsection={
class="ContentTranslation\\ActionApi\\ApiSectionTranslationPublish",
services={
"TitleFactory","HookContainer","LanguageNameUtils","ContentTranslation.ParsoidClientFactory","ContentTranslation.SectionPositionCalculator","ContentTranslation.SandboxTitleMaker","ContentTranslation.SectionTranslationStore","ContentTranslation.TranslationStore","ContentTranslation.TranslationTargetUrlCreator",},
},
cxsave={
class="ContentTranslation\\ActionApi\\ApiContentTranslationSave",
services={
"ContentTranslation.TranslationCorporaManager","ContentTranslation.LoadBalancer","ContentTranslation.TranslationUnitValidator","LanguageNameUtils","ContentTranslation.TranslationStore",},
},
sxsave={
class="ContentTranslation\\ActionApi\\ApiSectionTranslationSave",
services={
"ContentTranslation.TranslationCorporaManager","ContentTranslation.LoadBalancer","ContentTranslation.SectionTranslationStore","ContentTranslation.SandboxTitleMaker","TitleFactory","LanguageNameUtils","ContentTranslation.TranslationStore",},
},
cxsplit={
class="ContentTranslation\\ActionApi\\ApiContentTranslationSplit",
services={
"ContentTranslation.LoadBalancer","ContentTranslation.TranslationSplitter","ContentTranslation.TranslationStore","ContentTranslation.SectionTranslationStore",},
},
cxcheckunreviewed={
class="ContentTranslation\\ActionApi\\ApiContentTranslationUnreviewedCheck",
services={
"ContentTranslation.TranslationStore","ContentTranslation.TranslationCorporaStore","ContentTranslation.UserService",},
},
cxsuggestionlist={
class="ContentTranslation\\ActionApi\\ApiContentTranslationSuggestionList",
services={
"ContentTranslation.UserService",},
},
cxtoken="ContentTranslation\\ActionApi\\ApiContentTranslationToken",
},
APIListModules={
contenttranslation={
class="ContentTranslation\\ActionApi\\ApiQueryContentTranslation",
services={
"ContentTranslation.SectionTranslationStore","ContentTranslation.TranslationCorporaManager","ContentTranslation.UserService","ContentTranslation.TranslationStore",},
},
contenttranslationcorpora={
class="ContentTranslation\\ActionApi\\ApiQueryContentTranslationCorpora",
services={
"ContentTranslation.TranslationCorporaManager",},
},
contenttranslationlangtrend={
class="ContentTranslation\\ActionApi\\ApiQueryContentTranslationLanguageTrend",
services={
"LanguageNameUtils",},
},
contenttranslationstats="ContentTranslation\\ActionApi\\ApiQueryContentTranslationStats",
contenttranslationsuggestions={
class="ContentTranslation\\ActionApi\\ApiQueryContentTranslationSuggestions",
services={
"ContentTranslation.UserService","ContentTranslation.TranslationStore",},
},
cxpublishedtranslations={
class="ContentTranslation\\ActionApi\\ApiQueryPublishedTranslations",
services={
"LanguageNameUtils",},
},
cxtranslatorstats={
class="ContentTranslation\\ActionApi\\ApiQueryTranslatorStats",
services={
"ContentTranslation.UserService",},
},
automatictranslationdenselanguages={
class="ContentTranslation\\ActionApi\\ApiQueryAutomaticTranslationDenseLanguages",
services={
"HttpRequestFactory","MainWANObjectCache",},
},
},
APIMetaModules={
cxdeletedtranslations="ContentTranslation\\ActionApi\\ApiQueryDeletedTranslations",
},
APIPropModules={
langlinkscount="ContentTranslation\\ActionApi\\ApiQueryLangLinksCount",
},
SpecialPages={
ContentTranslation={
class="ContentTranslation\\Special\\SpecialContentTranslation",
services={
"SkinFactory","ContentTranslation.PreferenceHelper",},
},
ContentTranslationStats={
class="ContentTranslation\\Special\\SpecialContentTranslationStats",
services={
"SkinFactory",},
},
AutomaticTranslation={
class="ContentTranslation\\Special\\SpecialAutomaticTranslation",
services={
"LanguageNameUtils",},
},
},
DefaultUserOptions={
["echo-subscriptions-web-cx"]=true,
cx=false,
["cx-enable-entrypoints"]=true,
["cx-entrypoint-fd-status"]="notshown",
cx_campaign_newarticle_shown=false,
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
config={
ContentTranslationDomainCodeMapping={
value={
["be-x-old"]="be-tarask",
bho="bh",
["en-simple"]="simple",
gsw="als",
lzh="zh-classical",
nan="zh-min-nan",
nb="no",
rup="roa-rup",
sgs="bat-smg",
simple="simple",
vro="fiu-vro",
yue="zh-yue",
},
},
ContentTranslationDatabase={
description="The Database domain ID of the relevant wiki or false for the local wiki",
value=false,
},
ContentTranslationCluster={
description="The external Database cluster name where the database lives or false if not exists",
value=false,
},
ContentTranslationSiteTemplates={
value={
view="//$1.wikipedia.org/wiki/$2",
action="//$1.wikipedia.org/w/index.php?title=$2",
api="//$1.wikipedia.org/w/api.php",
cx="http://localhost:8080/v1",
cookieDomain=nil,
restbase="//$1.wikipedia.org/api/rest_v1",
},
},
ContentTranslationTranslateInTarget={
description="Whether to open Special:ContentTranslation in the target wiki when clicking the button in the entry point. The domain will be based on $wgContentTranslationSiteTemplates. The default is to open Special:ContentTranslation on the same wiki",
value=false,
},
ContentTranslationAsBetaFeature={
description="Whether to have CX available only as a beta feature and only shown to the users who have enabled the beta feature.",
value=true,
},
ContentTranslationTargetNamespace={
description="Target namespace to publish articles. Values can be valid namespace ids. Example: 0 for Main, 2 for User namespace",
value=0,
},
ContentTranslationCampaigns={
value={
cxstats=true,
specialcx=true,
newarticle=true,
specialcontribute=true,
cx2outreach={
edittag="cx2-outreach",
},
},
},
ContentTranslationCXServerAuth={
value={
algorithm="HS256",
key="",
age="3600",
},
},
ContentTranslationEnableSuggestions={
value=true,
},
ContentTranslationEnableMT={
description="Whether Machine Translation services are enabled for this target wiki",
value=true,
},
RecommendToolAPIURL={
description="Web API URL for translation recommendation tool",
value="https://api.wikimedia.org/service/lw/recommendation/v1/api",
},
ContentTranslationVersion={
value="2",
},
ContentTranslationUnmodifiedMTThresholdForPublish={
description="If the user exceeds a threshold an error will be shown to the user when they try to publish. The threshold will be calculated for the whole document, and it will prevent publishing until the content is modified.",
value=95,
},
ContentTranslationPublishRequirements={
description="List of requirements for user account to be able to publish in main namespace. Possible requirements: * userGroups: User should belong to any group in this list in order to be able to publish.",
value={
userGroups={
"*",},
},
},
ContentTranslationExcludedNamespaces={
description="Array with keys as canonical namespaces(English names) excluded from translating. Matching is case insensitive. All talk namespaces(with odd number ids) are excluded.",
value={
File=true,
["Gadget definition"]=true,
Gadget=true,
MediaWiki=true,
Module=true,
Template=true,
Topic=true,
Translations=true,
},
},
ContentTranslationEnableSectionTranslation={
description="Whether section translation is enabled",
value=false,
},
ContentTranslationEnableAnonSectionTranslation={
description="Whether section translation is enabled for anonymous users",
value=false,
},
SectionTranslationTargetLanguages={
description="If set, section translation will be only available for the specified target languages. Additionally these languages are used for language search entrypoints in Mobilefrontend.",
value=nil,
},
ContentTranslationContentImportForSectionTranslation={
description="Whether to auto import existing pages from production wikis to local wiki before publishing section translation. Useful for development and testing",
value=false,
},
ContentTranslationDevMode={
description="Whether Content translation need to run in dev mode with features like Hot Module Replacement",
value=false,
},
ContentTranslationEnableUnifiedDashboard={
description="Whether the unified dashboard should be used for Content Translation",
value=false,
},
DraftMaxAge={
description="Maximum age of unpublished drafts before they're purged from DB. Expressed in days and defaults to approximate value of 15 months.",
value=456,
},
AutomaticTranslationLanguageSearcherEntrypointEnabledLanguages={
description="Languages for which the mobile language searcher entrypoint for Automatic Translation should be enabled",
value=nil,
},
},
QUnitTestModule={
localBasePath="tests/qunit",
remoteExtPath="ContentTranslation/tests/qunit",
scripts={
"base/mw.cx.SiteMapper.test.js","dm/mw.cx.dm.Translation.test.js","mw.cx.TargetArticle.test.js","mw.cx.MachineTranslationService.test.js","mw.cx.TranslationTracker.test.js","mw.cx.util.test.js","ui/mw.cx.ui.Infobar.test.js",},
dependencies={
"ext.cx.model","mw.cx.SiteMapper","mw.cx.dm.Translation","mw.cx.init","mw.cx.ui.Infobar","mw.cx.util","ve.init.mw.CXTarget",},
},
TrackingCategories={
"cx-unreviewed-translation-category",},
attributes={
EventLogging={
Schemas={
ContentTranslationAbuseFilter="/analytics/legacy/contenttranslationabusefilter/1.0.0",
},
},
},
ConfigRegistry={
ArticleFooterEntrypoint="GlobalVarConfig::newInstance",
},
composer="mediawiki/content-translation",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ContentTranslation",
},
Contribution_Credits={
name="Contribution Credits",
version="3.1",
author={
"Jaime Prilusky","Al Maghi","Manuel Wendel","[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",},
url="https://www.mediawiki.org/wiki/Extension:Contribution_Credits",
descriptionmsg="contributioncredits-desc",
["license-name"]="GPL-3.0-or-later",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
SkinAfterContent="ContributionCredits::onSkinAfterContent",
},
config={
ContributionCreditsHeader=false,
ContributionCreditsUseRealNames=false,
ContributionCreditsExcludedCategories={
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ContributionCredits",
},
Contribution_Scores={
name="ContributionScores",
author="Tim Laqua",
url="https://www.mediawiki.org/wiki/Extension:Contribution_Scores",
descriptionmsg="contributionscores-desc",
version="1.26.1",
type="specialpage",
requires={
MediaWiki="&gt;= 1.34.0",
},
SpecialPages={
ContributionScores="ContributionScores",
},
Hooks={
ParserFirstCallInit="ContributionScores::onParserFirstCallInit",
},
ExtensionMessagesFiles={
ContribScoreAlias="ContributionScores.alias.php",
ContribScoreMagic="ContributionScores.i18n.magic.php",
},
config={
ContribScoreReports={
value=nil,
description="Each array defines a report - 7,50 is \"past 7 days \" and \"LIMIT 50 \" - Can be omitted.",
},
ContribScoreIgnoreBlockedUsers={
value=false,
description="Set to true to exclude blocked users from the reporting.",
},
ContribScoreIgnoreBots={
value=false,
description="Set to true to exclude bots users from the reporting.",
},
ContribScoreIgnoreUsernames={
value={
},
description="Array of usernames to exclude from the reporting.",
},
ContribScoresUseRealName={
value=false,
description="Set to true to use real user names when available.",
},
ContribScoreDisableCache={
value=false,
description="Set to true to disable cache for parser function and inclusion of table.",
},
ContribScoreUseRoughEditCount={
value=false,
description="Set to true to use the rough number of edits in user table, for performance issue.",
},
ContribScoreCacheTTL={
value=30,
description="Cache the contribution scores data, in minutes.",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ContributionScores",
},
ContributionsList={
name="ContributionsList",
version="0.3.1",
author="[https://www.mediawiki.org/wiki/User:Tosfos Ike Hecht]",
url="https://www.mediawiki.org/wiki/Extension:ContributionsList",
descriptionmsg="contributionslist-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
ExtensionMessagesFiles={
ContributionsListMagic="ContributionsList.magic.php",
},
Hooks={
ParserFirstCallInit="ContributionsListHooks::setupParserFunction",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ContributionsList",
},
Contributors={
name="Contributors",
version="2.1",
author={
"Rob Church","Ike Hecht","Addshore","Devirk Rishnan",},
url="https://www.mediawiki.org/wiki/Extension:Contributors",
descriptionmsg="contributors-desc",
type="specialpage",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.39.0",
},
SpecialPages={
Contributors="SpecialContributors",
},
APIPropModules={
contributors="ApiQueryCnContributors",
},
ExtensionMessagesFiles={
ContributorsMagic="Contributors.magic.php",
ContributorsAlias="Contributors.alias.php",
},
Hooks={
PageSaveComplete="ContributorsHooks::onPageSaveComplete",
ArticleRevisionVisibilitySet="ContributorsHooks::onArticleRevisionVisibilitySet",
LoadExtensionSchemaUpdates="ContributorsHooks::onLoadExtensionSchemaUpdates",
SidebarBeforeOutput="ContributorsHooks::onSidebarBeforeOutput",
SkinTemplateToolboxEnd="ContributorsHooks::onSkinTemplateToolboxEnd",
ParserFirstCallInit="ContributorsHooks::setupParserFunction",
},
config={
ContributorsLinkUsers=true,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Contributors",
},
CookieWarning={
name="CookieWarning",
version="0.3.0",
author={
"Florian Schmidt","Liz Lee","Jack Phoenix","Ostrzyciel",},
url="https://www.mediawiki.org/wiki/Extension:CookieWarning",
descriptionmsg="cookiewarning-desc",
type="other",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.41.0",
},
HookHandlers={
main={
class="CookieWarning\\Hooks",
},
},
Hooks={
SkinAfterContent="main",
GetPreferences="main",
BeforeInitialize="main",
BeforePageDisplay="main",
ResourceLoaderGetConfigVars="main",
},
config={
CookieWarningEnabled=false,
CookieWarningMoreUrl="",
CookieWarningGeoIPServiceURL="",
CookieWarningGeoIPLookup="none",
CookieWarningForCountryCodes={
EU="Europe",
AD="Andorra",
AL="Albania",
AT="Austria",
BA="Bosnia and Herzegovina",
BE="Belgium",
BG="Bulgaria",
BY="Belarus",
CH="Switzerland",
CS="Serbia and Montenegro",
CZ="Czech Republic",
DE="Germany",
DK="Denmark",
EE="Estonia",
ES="Spain",
FI="Finland",
FO="Faroe Islands",
FR="France",
FX="France, Metropolitan",
GB="United Kingdom",
GI="Gibraltar",
GR="Greece",
HR="Croatia",
HU="Hungary",
IE="Ireland",
IS="Iceland",
IT="Italy",
LI="Liechtenstein",
LT="Lithuania",
LU="Luxembourg",
LV="Latvia",
MC="Monaco",
MD="Moldova, Republic of",
MK="Macedonia",
MT="Malta",
NL="Netherlands",
NO="Norway",
PL="Poland",
PT="Portugal",
RO="Romania",
SE="Sweden",
SI="Slovenia",
SJ="Svalbard and Jan Mayen",
SK="Slovakia",
SM="San Marino",
UA="Ukraine",
VA="Holy See (Vatican City State)",
},
},
ConfigRegistry={
cookiewarning="GlobalVarConfig::newInstance",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CookieWarning",
},
CountDownClock={
name="CountDownClock",
author={
"[https://meta.wikimedia.org/wiki/Indic-TechCom Indic-TechCom]",},
version="1.0.0",
url="https://www.mediawiki.org/wiki/Extension:CountDownClock",
descriptionmsg="countDownClock-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
ExtensionMessagesFiles={
CountDownClockMagic="CountDownClock.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="MediaWiki\\Extension\\CountDownClock\\Hooks::onParserSetup",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CountDownClock",
},
CrawlableAllPages={
name="CrawlableAllPages",
version="0.1.0",
author={
"[https://meta.wikimedia.org/wiki/User:MarkAHershberger Mark A. Hershberger]",},
url="https://www.mediawiki.org/wiki/Extension:CrawlableAllPages",
descriptionmsg="crawlableallpages-desc",
["license-name"]="GPL-3.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
SpecialPages={
Allpages="MediaWiki\\Extension\\CrawlableAllPages\\Special",
CrawlableAllPages="MediaWiki\\Extension\\CrawlableAllPages\\Special",
},
ExtensionMessagesFiles={
CrawlableAllPagesAlias="i18n/CrawlableAllPages.alias.php",
},
composer="mediawiki/crawlable-all-pages",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CrawlableAllPages",
},
CreateAPage={
name="CreateAPage",
version="4.2",
author={
"Bartek Łapiński","Piotr Molski","Łukasz Garczewski","Przemek Piotrowski","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:CreateAPage",
descriptionmsg="createpage-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.39.0",
},
config={
CreatePageCoverRedLinks={
value=false,
path=false,
description="Use CreateAPage on redlinks? (i.e. clicking on a redlink takes you to index.php?title=Special:CreatePage&amp;Createtitle=Title_of_our_page instead of taking you to index.php?title=Title_of_our_page&amp;action=edit&amp;redlink=1) If true, users will get a preference which enables them to enable this feature for their user account.",
public=false,
},
MultiEditPageTags={
value={
"title","descr","category",},
path=false,
description="Used by MultiEdit (the CreateMultiPage PHP class). There's a good chance you don't want to touch this variable.",
public=false,
},
MultiEditPageSimpleTags={
value={
"lbl","categories","pagetitle","imageupload","optional",},
path=false,
description="Used by MultiEdit (the CreateMultiPage PHP class). There's a good chance you don't want to touch this variable.",
public=false,
},
},
SpecialPages={
CreatePage="SpecialCreatePage",
},
ExtensionMessagesFiles={
CreatePageAliases="CreatePage.alias.php",
},
APIModules={
createapage={
class="ApiCreateAPage",
services={
"RevisionLookup",},
},
["createapage-upload"]={
class="ApiCreateAPageUpload",
services={
"RepoGroup",},
},
},
Hooks={
EditFormPreloadText="CreateAPageHooks::preloadContent",
CustomEditor="CreateAPageHooks::onCustomEditor",
GetPreferences="CreateAPageHooks::onGetPreferences",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CreateAPage",
},
Create_Page={
name="Create Page",
version="0.5.0",
author={
"[https://www.mediawiki.org/wiki/User:Jeroen_De_Dauw Jeroen De Dauw]","Ike Hecht",},
["license-name"]="GPL-3.0-only",
requires={
MediaWiki="&gt;= 1.35.0",
},
url="https://www.mediawiki.org/wiki/Extension:Create_Page",
descriptionmsg="cp-desc",
type="parser",
SpecialPages={
CreatePageRedirect="SpecialCreatePageRedirect",
},
ExtensionMessagesFiles={
CreatePageAlias="CreatePage.alias.php",
CreatePageMagic="CreatePage.magic.php",
},
Hooks={
BeforePageDisplay="CreatePageHooks::addCreatePageModules",
ParserFirstCallInit="CreatePageHooks::setupParserFunction",
},
config={
CreatePageEditExisting={
value=false,
description="Set to true to edit existing pages.",
},
CreatePageUseVisualEditor={
value=false,
description="Set to true to redirect to VisualEditor for page creation.",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CreatePage",
},
CreatePageUw={
name="CreatePageUw",
version="0.1.0",
author="Edward Chernenko",
url="https://www.mediawiki.org/wiki/Extension:CreatePageUw",
descriptionmsg="uwcreatepage-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.0",
},
SpecialPages={
CreatePage={
class="MediaWiki\\CreatePageUw\\SpecialCreatePage",
services={
"NamespaceInfo",},
},
},
ExtensionMessagesFiles={
CreatePageUwAlias="CreatePage.alias.php",
},
config={
CreatePageUwUseVE={
value=false,
description="If true, user will be redirected to VisualEditor.",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CreatePageUw",
},
CreateRedirect={
name="CreateRedirect",
version="1.5.1",
author={
"[https://www.mediawiki.org/wiki/User:Digiku Marco Zafra]","Edward Chernenko",},
type="specialpage",
url="https://www.mediawiki.org/wiki/Extension:CreateRedirect",
descriptionmsg="createredirect-desc",
["license-name"]="GPL-3.0-or-later",
requires={
MediaWiki="&gt;= 1.38.0",
},
ExtensionMessagesFiles={
CreateRedirectAlias="CreateRedirect.alias.php",
},
HookHandlers={
main={
class="CreateRedirectHooks",
},
},
Hooks={
SidebarBeforeOutput="main",
},
SpecialPages={
CreateRedirect={
class="SpecialCreateRedirect",
services={
"ContentHandlerFactory","PermissionManager",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CreateRedirect",
},
Create_User_Page={
name="CreateUserPage",
version="3.1.0",
author={
"[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]",},
url="https://www.mediawiki.org/wiki/Extension:Create_User_Page",
descriptionmsg="createuserpage-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
UserLoginComplete="CreateUserPageHooks::onUserLoginComplete",
OutputPageParserOutput="CreateUserPageHooks::onOutputPageParserOutput",
},
config={
CreateUserPage_PageContent="{{User}}",
CreateUserPage_OnLogin=true,
CreateUserPage_AutoCreateUser=nil,
CreateUserPage_CreateRedirect=false,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CreateUserPage",
},
CreatedPagesList={
name="CreatedPagesList",
version="1.2.1",
author="Edward Chernenko",
url="https://www.mediawiki.org/wiki/Extension:CreatedPagesList",
descriptionmsg="createdpageslist-desc",
["license-name"]="GPL-2.0+",
type="specialpage",
requires={
MediaWiki="&gt;= 1.39.0",
},
SpecialPages={
CreatedPagesList="SpecialCreatedPagesList",
},
ExtensionMessagesFiles={
CreatedPagesListAlias="CreatedPagesList.alias.php",
},
HookHandlers={
main={
class="CreatedPagesListHooks",
services={
"RevisionLookup",},
},
updater={
class="CreatedPagesListUpdater",
},
},
Hooks={
ArticleDeleteComplete="main",
ArticleUndelete="main",
LoadExtensionSchemaUpdates="updater",
PageSaveComplete="main",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CreatedPagesList",
},
CreditsSource={
name="CreditsSource",
version="0.4.0",
author={
"Hans Musil","Matthias Mullie",},
["license-name"]="GPL-2.0-only",
url="https://www.mediawiki.org/wiki/Extension:CreditsSource",
descriptionmsg="creditssource-desc",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
Hooks={
LoadExtensionSchemaUpdates="schema",
},
HookHandlers={
schema={
class="MediaWiki\\Extension\\CreditSource\\SchemaHooks",
},
},
Actions={
credits="MediaWiki\\Extension\\CreditSource\\CreditsSourceAction",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/CreditsSource",
},
DPLforum={
name="DPLforum",
version="3.7.2",
author="Ross McClure",
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:DPLforum",
descriptionmsg="dplforum-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.37.0",
},
namespaces={
{
id=110,
constant="NS_FORUM",
name="Forum",
},{
id=111,
constant="NS_FORUM_TALK",
name="Forum_talk",
},},
ExtraSignatureNamespaces={
110,},
ExtensionMessagesFiles={
DPLforumMagic="DPLforum.i18n.magic.php",
DPLforumNamespaces="DPLforum.namespaces.php",
},
Hooks={
ParserFirstCallInit="DPLForumHooks::onParserFirstCallInit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DPLforum",
},
DarkMode={
name="DarkMode",
version="0.2.0",
author={
"MusikAnimal","R4356th",},
url="https://www.mediawiki.org/wiki/Extension:DarkMode",
descriptionmsg="darkmode-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.38.0",
},
Hooks={
SkinAddFooterLinks="main",
["SkinTemplateNavigation::Universal"]="main",
SkinBuildSidebar="main",
BeforePageDisplay="main",
GetPreferences="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\DarkMode\\Hooks",
services={
"MainConfig","UserOptionsLookup",},
},
},
config={
DarkModeTogglePosition={
value="personal",
description="Where the dark mode toggle link should be placed: 'personal' – next to the user talk page link in personal URLs. 'footer' – in the footer, usually after the 'Disclaimer' link. 'sidebar' – in the sidebar within the navigation portlet.",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DarkMode",
},
Dashiki={
name="Dashiki",
version="0.1.0",
author={
"Dan Andreescu",},
url="https://www.mediawiki.org/wiki/Extension:Dashiki",
descriptionmsg="dashiki-desc",
type="other",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42",
extensions={
JsonConfig="*",
},
},
attributes={
JsonConfig={
Models={
["JsonConfig.Dashiki"]={
view="Dashiki\\DashikiView",
class="JsonConfig\\JCContent",
},
},
s={
["JsonConfig.Dashiki"]={
pattern="/^Dashiki\\:./",
isLocal=true,
},
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Dashiki",
},
DataTable2={
name="DataTable2",
version="1.1.0",
type="parserhook",
author="[https://www.mediawiki.org/wiki/User:RV1971 RV1971]",
descriptionmsg="datatable2-desc",
url="https://www.mediawiki.org/wiki/Extension:DataTable2",
["license-name"]="GPL-3.0-or-later",
requires={
MediaWiki="&gt;= 1.39",
},
ExtensionFunctions={
"DataTable2::init",},
Hooks={
ArticleDelete="main",
LoadExtensionSchemaUpdates="main",
ParserFirstCallInit="main",
RevisionFromEditComplete="main",
},
HookHandlers={
main={
class="DataTable2Hooks",
},
},
ExtensionMessagesFiles={
DataTable2Alias="includes/DataTable2.alias.php",
DataTable2Magic="includes/DataTable2.i18n.magic.php",
},
AvailableRights={
"datatable2-specialpages",},
GroupPermissions={
user={
["datatable2-specialpages"]=true,
},
},
SpecialPages={
DataTable2Data="SpecialDataTable2Data",
DataTable2Pages="SpecialDataTable2Pages",
DataTable2Tables="SpecialDataTable2Tables",
},
config={
DataTable2WriteDest={
description="Name of the database table where data is written to.",
value="datatable2_data",
},
DataTable2ReadSrc={
description="Name of the database table where data is read from.",
value="datatable2_data",
},
DataTable2MetaWriteDest={
description="Name of the database table where meta data is written to.",
value="datatable2_meta",
},
DataTable2MetaReadSrc={
description="Name of the database table where meta data is read from.",
value="datatable2_meta",
},
DataTable2Args={
description="Default arguments for datatable2 tags.",
value={
fs="|",
rs="/[\n\r]+/",
},
},
DataTable2SqlWhiteList={
description="Array of identifiers that may be used in WHERE and ORDER BY clauses, in addition to column names.",
value={
"ASC","DESC","NULLS","FIRST","LAST","AND","NOT","OR","BETWEEN","IN","IS","LIKE","NULL","CASE","WHEN","THEN","ELSE","END","COALESCE","NULLIF","CAST","AS","EXTRACT","FROM","ABS","MOD","LN","EXP","POWER","SQRT","FLOOR","CEIL","SUBSTR","SUBSTRING","UPPER","LOWER","TRANSLATE","TRIM",},
},
SpecialDataTable2PageParSep={
description="Separator for parameters passed to special pages.",
value="//",
},
SpecialDataTable2DataClasses={
description="Array of css classes for the table used in Special:DataTable2Data.",
value={
"wikitable","sortable",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DataTable2",
},
Data_Transfer={
name="Data Transfer",
version="1.6",
author={
"Yaron Koren","...",},
url="https://www.mediawiki.org/wiki/Extension:Data_Transfer",
descriptionmsg="datatransfer-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.37.0",
},
GroupPermissions={
sysop={
datatransferimport=true,
},
},
AvailableRights={
"datatransferimport",},
SpecialPages={
ViewXML="DTViewXML",
ImportXML="DTImportXML",
ImportCSV="DTImportCSV",
ImportSpreadsheet="DTImportSpreadsheet",
},
JobClasses={
dtImport="DTImportJob",
},
ExtensionMessagesFiles={
DataTransferAlias="DataTransfer.i18n.alias.php",
},
Hooks={
AdminLinks="DTHooks::addToAdminLinks",
},
config={
DataTransferViewXMLParseFields=false,
DataTransferViewXMLParseFreeText=true,
},
repository="https://phabricator.wikimedia.org/diffusion/EDTR/extension-datatransfer.git",
composer="mediawiki/data-transfer",
},
DateDiff={
name="DateDiff",
version="0.4.0",
author={
"[http://www.expressprogs.com Khaled El Mansoury]","[https://www.mediawiki.org/wiki/User:Jeroen_De_Dauw Jeroen De Dauw]",},
["license-name"]="CC-BY-SA-3.0",
url="https://www.mediawiki.org/wiki/Extension:DateDiff",
descriptionmsg="datediff-desc",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
DateDiffMagic="DateDiff.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="DateDiff::efDDDateDiff",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DateDiff",
},
DateTimeTools={
name="DateTimeTools",
version="2.0.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://www.hallowelt.com",
descriptionmsg="datetimetools-desc",
requires={
MediaWiki="&gt;= 1.39.0",
},
attributes={
VisualEditor={
PluginModules={
"ext.dateTimeTools.ve",},
},
ContentDroplets={
Droplets={
date={
class="MediaWiki\\Extension\\DateTimeTools\\ContentDroplets\\DateDroplet",
},
},
},
},
Hooks={
ParserFirstCallInit="handleTag",
},
HookHandlers={
handleTag={
class="MediaWiki\\Extension\\DateTimeTools\\Hook\\HandleTag",
services={
"DateTimeToolParser",},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
composer="mediawiki/datetimetools",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DateTimeTools",
},
DebugTemplates={
name="DebugTemplates",
version="0.6",
author="Clark Verbrugge",
url="https://www.mediawiki.org/wiki/Extension:DebugTemplates",
descriptionmsg="debugtemplates-desc",
["license-name"]="CC-BY-SA-3.0",
type="specialpage",
requires={
MediaWiki="&gt;= 1.33.0",
},
APIModules={
expandframe="ApiDebugTemplates",
},
SpecialPages={
DebugTemplates="SpecialDebugTemplates",
},
ExtensionMessagesFiles={
DebugTemplatesAlias="DebugTemplates.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DebugTemplates",
},
DeleteBatch={
name="DeleteBatch",
version="1.8.1",
author={
"Bartek Łapiński","...",},
url="https://www.mediawiki.org/wiki/Extension:DeleteBatch",
descriptionmsg="deletebatch-desc",
namemsg="deletebatch-extensionname",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.37.0",
},
type="specialpage",
ReservedUsernames={
"msg:deletebatch-system-username",},
AvailableRights={
"deletebatch","deletebatch-spoof",},
GroupPermissions={
bureaucrat={
deletebatch=true,
["deletebatch-spoof"]=true,
},
},
SpecialPages={
DeleteBatch="SpecialDeleteBatch",
},
ExtensionMessagesFiles={
DeleteBatchAlias="DeleteBatch.alias.php",
},
Hooks={
AdminLinks="SpecialDeleteBatch::addToAdminLinks",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DeleteBatch",
},
DeletePagesForGood={
name="DeletePagesForGood",
namemsg="deletepagesforgood-extensionname",
version="2.0",
author={
"Paladox","Wolfgang Stöttinger","Ludovic Mouton",},
url="https://www.mediawiki.org/wiki/Extension:DeletePagesForGood",
descriptionmsg="deletepagesforgood-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
GroupPermissions={
["*"]={
deleteperm=false,
},
user={
deleteperm=false,
},
bureaucrat={
deleteperm=false,
},
sysop={
deleteperm=true,
},
},
Actions={
delete_page_permanently="ActionDeletePagePermanently",
},
AvailableRights={
"deleteperm",},
Hooks={
["SkinTemplateNavigation::Universal"]="ActionDeletePagePermanently::onAddSkinHook",
},
config={
DeletePagesForGoodNamespaces={
[1]=true,
[2]=true,
[3]=true,
[4]=true,
[5]=true,
[6]=true,
[7]=true,
[8]=true,
[9]=true,
[10]=true,
[11]=true,
[12]=true,
[13]=true,
[14]=true,
[15]=true,
[16]=true,
["_merge_strategy"]="array_plus",
},
DeletePagesForGoodDeleteContent=true,
},
repository="https://phabricator.wikimedia.org/diffusion/EDPG/",
composer="mediawiki/deletepagesforgood",
},
DeleteUserPages={
name="DeleteUserPages",
version="1.0.0",
author={
"Ryan Schmidt",},
url="https://www.mediawiki.org/wiki/Extension:DeleteUserPages",
descriptionmsg="deleteuserpages-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
TitleQuickPermissions="DeleteUserPages::onTitleQuickPermissions",
},
AvailableRights={
"delete-rootuserpages","delete-usersubpages",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DeleteUserPages",
},
Description2={
name="Description2",
version="0.4.1",
author={
"[http://danf.ca/mw/ Daniel Friesen]",},
url="https://www.mediawiki.org/wiki/Extension:Description2",
descriptionmsg="description2-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.38.0",
},
config={
EnableMetaDescriptionFunctions=false,
DescriptionMaxChars=300,
DescriptionAlgorithm="MediaWiki\\Extension\\Description2\\RemexDescriptionProvider",
DescriptionRemoveElements={
"table","div","script","style","figure","input","div.infobox","div.ambox","div.dmbox","ul.gallery",".mw-editsection","sup.reference","ul.references",".error",".nomobile",".noprint",".noexcerpt",".sortkey",},
},
ConfigRegistry={
Description2="GlobalVarConfig::newInstance",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
ExtensionMessagesFiles={
Description2Magic="Description2.i18n.magic.php",
},
HookHandlers={
Description2={
class="MediaWiki\\Extension\\Description2\\Hooks",
services={
"ConfigFactory","Description2.DescriptionProvider",},
},
},
Hooks={
OutputPageParserOutput="Description2",
ParserAfterTidy="Description2",
ParserFirstCallInit="Description2",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Description2",
},
DeviceMapLogCapture={
name="Device Map Log Capture",
version="0.0.2",
author="Patrick Reilly",
url="https://www.mediawiki.org/wiki/Extension:DeviceMapLogCapture",
["license-name"]="Apache-2.0",
type="other",
APIModules={
devicemaplogcapture="ApiDeviceMapLogCapture",
},
requires={
MediaWiki="&gt;= 1.35.3",
},
Hooks={
LoadExtensionSchemaUpdates="DeviceMapLogCaptureHooks::loadExtensionSchemaUpdates",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DeviceMapLogCapture",
},
Diagnosis={
name="Diagnosis",
version="0.2.0",
author="[http://www.dasch-tour.de DaSch]",
url="https://www.mediawiki.org/wiki/Extension:Diagnosis",
descriptionmsg="diagnosis-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.29.0",
},
AvailableRights={
"diagnosis-access",},
GroupPermissions={
sysop={
["diagnosis-access"]=true,
},
},
SpecialPages={
Diagnosis="SpecialDiagnosis",
},
ExtensionMessagesFiles={
SpecialDiagnosis="Diagnosis.i18n.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Diagnosis",
},
Did_You_Know={
name="Did You Know",
version="0.3",
author={
"[https://www.mediawiki.org/wiki/User:Jeroen_De_Dauw Jeroen De Dauw]",},
url="https://www.mediawiki.org/wiki/Extension:Did_You_Know",
descriptionmsg="didyouknow-desc",
type="other",
requires={
MediaWiki="&gt;= 1.32.0",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DidYouKnow",
},
DisableAccount={
["@doc"]="Written by Andrew Garrett, 2010-12-02",
name="Disable Account",
author={
"Andrew Garrett",},
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.35.0",
},
url="https://www.mediawiki.org/wiki/Extension:DisableAccount",
descriptionmsg="disableaccount-desc",
type="other",
ExtensionMessagesFiles={
DisableAccountAliases="DisableAccount.alias.php",
},
LogActionsHandlers={
["block/disableaccount"]="DisableAccountLogFormatter",
},
AvailableRights={
"disableaccount",},
SpecialPages={
DisableAccount="SpecialDisableAccount",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DisableAccount",
},
Disambiguator={
name="Disambiguator",
version="1.4",
author={
"Ryan Kaldari",},
url="https://www.mediawiki.org/wiki/Extension:Disambiguator",
descriptionmsg="disambig-desc",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.42",
},
type="other",
ExtensionMessagesFiles={
DisambiguatorAlias="Disambiguator.i18n.alias.php",
DisambiguatorMagic="Disambiguator.i18n.magic.php",
},
Hooks={
GetDoubleUnderscoreIDs="main",
wgQueryPages="main",
AncientPagesQuery="main",
LonelyPagesQuery="main",
ShortPagesQuery="main",
RandomPageQuery="main",
GetLinkColours="main",
LinksUpdateComplete="main",
ListDefinedTags="main",
ChangeTagsListActive="main",
RecentChange_save="main",
["EditPage::showEditForm:initial"]="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Disambiguator\\Hooks",
services={
"DisambiguatorLookup","MainConfig",},
},
},
config={
DisambiguatorIndicateLinks={
value=true,
},
DisambiguatorNotifications={
value=false,
description="Show a warning notification after the user types a link to a disambiguation page",
},
},
SpecialPages={
DisambiguationPages={
class="MediaWiki\\Extension\\Disambiguator\\Specials\\SpecialDisambiguationPages",
services={
"LinkBatchFactory","DBLoadBalancer",},
},
DisambiguationPageLinks={
class="MediaWiki\\Extension\\Disambiguator\\Specials\\SpecialDisambiguationPageLinks",
services={
"NamespaceInfo","LinkBatchFactory","ContentHandlerFactory","DBLoadBalancerFactory","LinksMigration",},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
attributes={
VisualEditor={
PluginModules={
"ext.disambiguator.visualEditor",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Disambiguator",
},
Discourse={
name="Discourse",
author={
"[https://samwilson.id.au/ Sam Wilson]",},
["license-name"]="GPL-2.0-or-later",
namemsg="discourse",
descriptionmsg="discourse-desc",
url="https://www.mediawiki.org/wiki/Extension:Discourse",
type="other",
requires={
MediaWiki="&gt;= 1.31.7",
},
ExtensionMessagesFiles={
DiscourseMagicWords="Discourse.i18n.magic.php",
},
config={
DiscourseSites={
description="List of Discourse sites to allow (shortname =&gt; URL).",
value={
discourse="https://meta.discourse.org/",
osm="https://community.openstreetmap.org/",
msforum="https://forum.movement-strategy.org/",
},
},
DiscourseDefaultSite={
description="Default Discourse site to use if none specified.",
value="discourse",
},
},
Hooks={
ScribuntoExternalLibraries="MediaWiki\\Extension\\Discourse\\Hooks::onScribuntoExternalLibraries",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Discourse",
},
DiscussionThreading={
name="DiscussionThreading",
version="1.6.1",
author={
"Jack D. Pond","Daniel Brice",},
url="https://www.mediawiki.org/wiki/Extension:DiscussionThreading",
descriptionmsg="discussionthreading-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
Hooks={
["EditPage::showEditForm:initial"]={
"DiscussionThreading::efDiscussionThread","DiscussionThreading::efDiscussionThreadEdit",},
["EditPage::attemptSave"]="DiscussionThreading::onAttemptSave",
AlternateEdit="DiscussionThreading::efDiscussionThreadEdit",
SkinEditSectionLinks="DiscussionThreading::onSkinEditSectionLinks",
},
config={
SectionThreadingOn={
value=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DiscussionThreading",
},
DiscussionTools={
name="DiscussionTools",
["license-name"]="MIT",
version="0.0.0",
url="https://www.mediawiki.org/wiki/Extension:DiscussionTools",
namemsg="discussiontools",
descriptionmsg="discussiontools-desc",
requires={
MediaWiki="&gt;= 1.42.0",
extensions={
VisualEditor="*",
Linter="*",
},
},
ExtensionMessagesFiles={
DiscussionToolsAlias="DiscussionTools.alias.php",
DiscussionToolsMagic="DiscussionTools.magic.php",
},
callback="\\MediaWiki\\Extension\\DiscussionTools\\Hooks\\RegistrationHooks::onRegistration",
ForeignResourcesDir="modules/lib",
QUnitTestModule={
localBasePath="tests",
remoteExtPath="DiscussionTools/tests",
packageFiles={
"qunit/index.js","qunit/testUtils.js",{
name="data-en.json",
callback="\\MediaWiki\\Extension\\DiscussionTools\\ResourceLoaderData::getLocalData",
callbackParam="en",
},"qunit/utils.test.js","qunit/modifier.test.js","qunit/parser.test.js","qunit/ThreadItem.test.js",},
testData={
"cases/authors.json","cases/comments.json","cases/modified.json","cases/reply.json","cases/unwrap.json","cases/linearWalk.json","cases/sanitize-wikitext-linebreaks.json","cases/timestamp-regex.json","cases/timestamp-parser.json","cases/timestamp-parser-dst.json",},
factory="\\MediaWiki\\Extension\\DiscussionTools\\ResourceLoaderData::makeTestModule",
dependencies={
"ext.discussionTools.init",},
},
APIModules={
discussiontoolscompare={
class="MediaWiki\\Extension\\DiscussionTools\\ApiDiscussionToolsCompare",
services={
"VisualEditor.ParsoidClientFactory","DiscussionTools.CommentParser","RevisionLookup",},
},
discussiontoolsedit={
class="MediaWiki\\Extension\\DiscussionTools\\ApiDiscussionToolsEdit",
services={
"VisualEditor.ParsoidClientFactory","DiscussionTools.CommentParser","DiscussionTools.SubscriptionStore","TempUserCreator","UserFactory","SkinFactory","ConfigFactory","RevisionLookup",},
},
discussiontoolsfindcomment={
class="MediaWiki\\Extension\\DiscussionTools\\ApiDiscussionToolsFindComment",
services={
"DiscussionTools.ThreadItemStore","TitleFormatter",},
},
discussiontoolsgetsubscriptions={
class="MediaWiki\\Extension\\DiscussionTools\\ApiDiscussionToolsGetSubscriptions",
services={
"DiscussionTools.SubscriptionStore","ConfigFactory",},
},
discussiontoolspageinfo={
class="MediaWiki\\Extension\\DiscussionTools\\ApiDiscussionToolsPageInfo",
services={
"VisualEditor.ParsoidClientFactory","DiscussionTools.CommentParser","RevisionLookup",},
},
discussiontoolspreview={
class="MediaWiki\\Extension\\DiscussionTools\\ApiDiscussionToolsPreview",
services={
"VisualEditor.ParsoidClientFactory","DiscussionTools.CommentParser","TempUserCreator","UserFactory","SkinFactory",},
},
discussiontoolssubscribe={
class="MediaWiki\\Extension\\DiscussionTools\\ApiDiscussionToolsSubscribe",
services={
"DiscussionTools.SubscriptionStore","ConfigFactory",},
},
},
SpecialPages={
TopicSubscriptions={
class="\\MediaWiki\\Extension\\DiscussionTools\\SpecialTopicSubscriptions",
services={
"LinkRenderer","LinkBatchFactory","DiscussionTools.ThreadItemStore","DiscussionTools.ThreadItemFormatter",},
},
FindComment={
class="\\MediaWiki\\Extension\\DiscussionTools\\SpecialFindComment",
services={
"DiscussionTools.ThreadItemStore","DiscussionTools.ThreadItemFormatter",},
},
GoToComment={
class="\\MediaWiki\\Extension\\DiscussionTools\\SpecialGoToComment",
services={
"DiscussionTools.ThreadItemStore",},
},
DiscussionToolsDebug={
class="\\MediaWiki\\Extension\\DiscussionTools\\SpecialDiscussionToolsDebug",
services={
"LanguageFactory","ParserOutputAccess","DiscussionTools.CommentParser",},
},
},
TrackingCategories={
"discussiontools-comments-before-first-heading-category",},
Hooks={
BeforeCreateEchoEvent="echo",
EchoGetBundleRules="echo",
EchoGetEventsForRevision="echo",
RevisionDataUpdates="dataupdates",
LoadExtensionSchemaUpdates="installer",
GetDoubleUnderscoreIDs="parser",
["ApiMain::moduleManager"]="api",
ParserAfterTidy="parser",
ParserOutputPostCacheTransform="parser",
BeforeDisplayNoArticleText="page",
BeforePageDisplay="page",
GetActionName="page",
OutputPageBeforeHTML="page",
OutputPageParserOutput="page",
SidebarBeforeOutput="page",
["SkinTemplateNavigation::Universal"]="page",
ResourceLoaderGetConfigVars="resourceloader",
GetBetaFeaturePreferences="betapreferences",
GetPreferences="preferences",
DiscussionToolsAddOverflowMenuItems="discussiontools",
ChangeTagsListActive="tags",
ListDefinedTags="tags",
RecentChange_save="tags",
},
HookHandlers={
dataupdates={
class="MediaWiki\\Extension\\DiscussionTools\\Hooks\\DataUpdatesHooks",
services={
"DiscussionTools.ThreadItemStore",},
},
installer={
class="MediaWiki\\Extension\\DiscussionTools\\Hooks\\InstallerHooks",
},
api={
class="MediaWiki\\Extension\\DiscussionTools\\Hooks\\ApiHooks",
},
page={
class="MediaWiki\\Extension\\DiscussionTools\\Hooks\\PageHooks",
services={
"DiscussionTools.SubscriptionStore","UserNameUtils","UserOptionsLookup",},
},
parser={
class="MediaWiki\\Extension\\DiscussionTools\\Hooks\\ParserHooks",
services={
"ConfigFactory",},
},
preferences={
class="MediaWiki\\Extension\\DiscussionTools\\Hooks\\PreferenceHooks",
services={
"ConfigFactory","LinkRenderer",},
},
betapreferences={
class="MediaWiki\\Extension\\DiscussionTools\\Hooks\\BetaPreferenceHooks",
services={
"MainConfig","ConfigFactory",},
},
discussiontools={
class="MediaWiki\\Extension\\DiscussionTools\\Hooks\\DiscussionToolsHooks",
services={
"ConfigFactory","UserNameUtils",},
},
tags={
class="MediaWiki\\Extension\\DiscussionTools\\Hooks\\TagHooks",
},
echo={
class="MediaWiki\\Extension\\DiscussionTools\\Hooks\\EchoHooks",
},
},
Actions={
dtsubscribe={
class="MediaWiki\\Extension\\DiscussionTools\\Actions\\SubscribeAction",
services={
"DiscussionTools.SubscriptionStore",},
},
dtunsubscribe={
class="MediaWiki\\Extension\\DiscussionTools\\Actions\\UnsubscribeAction",
services={
"DiscussionTools.SubscriptionStore",},
},
},
LateJSConfigVarNames={
"wgDiscussionToolsPageThreads",},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
DefaultUserOptions={
["discussiontools-betaenable"]=0,
["discussiontools-editmode"]="",
["discussiontools-newtopictool"]=1,
["discussiontools-newtopictool-createpage"]=1,
["discussiontools-replytool"]=1,
["discussiontools-sourcemodetoolbar"]=1,
["discussiontools-topicsubscription"]=1,
["discussiontools-autotopicsub"]=1,
["discussiontools-visualenhancements"]=1,
},
ConditionalUserOptions={
["echo-subscriptions-email-dt-subscription"]={
{
true,{
"registered-after","20240617000000",},},},
},
config={
DiscussionToolsBeta={
value=false,
description="Make DiscussionTools a BetaFeature.",
},
DiscussionTools_visualenhancements={
value="default",
description="Override availability of DiscussionTools visual enhancements. 'default', 'available', or 'unavailable'.",
},
DiscussionTools_visualenhancements_pageframe={
value="default",
description="Override availability of DiscussionTools visual enhancements's page frame sub-feature. 'default', 'available', or 'unavailable'.",
},
DiscussionTools_visualenhancements_reply={
value="default",
description="Override availability of DiscussionTools visual enhancements's reply buttons sub-feature. 'default', 'available', or 'unavailable'.",
},
DiscussionTools_visualenhancements_reply_icon_languages={
value={
ar=true,
zh=true,
yue=true,
ja=true,
nod=true,
},
description="A dictionary of language codes which will receive an icon in their enhanced reply-button treatment, due to translation being very short (T323537). Language fallbacks will be checked unless a language is explicitly set to `false` (T352289). Normalized language codes are lower case.",
merge_strategy="provide_default",
},
DiscussionToolsEnablePermalinksBackend={
value=true,
description="Enable the permalinks backend. Do not enable this unless the database tables exist.",
},
DiscussionToolsEnablePermalinksFrontend={
value=true,
description="Enable permalinks frontend features: 1. Convert signature timestamps to comment links. 2. Show notification when the target comment is found on another page.",
},
DiscussionToolsEnableThanks={
value=true,
description="Show a button to thank individual comments. Requires the 'Thanks' extension.",
},
DiscussionToolsAutoTopicSubEditor={
value="any",
description="Editor which triggers automatic topic subscriptions. Either 'discussiontoolsapi' for edits made using DiscussionTools' API (e.g. reply and new topic tools), or 'any' for any editor.",
},
DiscussionToolsTalkPageParserCacheExpiry={
value=0,
description="Override $wgParserCacheExpireTime for discussion pages, regardless of DiscussionTools enablement.",
},
DiscussionToolsReplyIndentation={
value="invisible",
description="Reply indentation syntax to use: 'invisible' (use `&lt;dl&gt;&lt;dd&gt;` tags to output `:` in wikitext) or 'bullet' (use `&lt;ul&gt;&lt;li&gt;` tags to output `*` in wikitext).",
},
DiscussionToolsShowFeedbackLinks={
value=false,
description="Show 'Share feedback...' links in the footer of reply tool and new topic tool.",
},
DiscussionToolsTimestampFormatSwitchTime={
value="2022-07-12",
description="Date on which the internal timestamp format has changed (T304595), in ISO 8601 format.",
},
DiscussionToolsConflictingGadgetName={
value="convenientDiscussions",
description="Internal name of the Convenient Discussions gadget, which conflicts with the reply tool. Reply tool will be unavailable when the user has this gadget enabled.",
},
},
ConfigRegistry={
discussiontools="GlobalVarConfig::newInstance",
},
type="other",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DiscussionTools",
},
DismissableSiteNotice={
name="DismissableSiteNotice",
namemsg="sitenotice-extensionname",
version="1.0.1",
author={
"Brion Vibber","Kevin Israel","Dror S.",},
url="https://www.mediawiki.org/wiki/Extension:DismissableSiteNotice",
descriptionmsg="sitenotice-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
config={
MajorSiteNoticeID={
value=1,
},
DismissableSiteNoticeForAnons={
value=false,
},
},
Hooks={
SiteNoticeAfter="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\DismissableSiteNotice\\Hooks",
},
},
requires={
MediaWiki="&gt;= 1.42",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DismissableSiteNotice",
},
DisplayTitle={
name="DisplayTitle",
version="4.0.2",
author={
"[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]","[https://www.semantic-mediawiki.org/wiki/User:Oetterer Tobias Oetterer]",},
url="https://www.mediawiki.org/wiki/Extension:DisplayTitle",
descriptionmsg="displaytitle-desc",
type="parserhook",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.39.0",
},
ExtensionMessagesFiles={
DisplayTitleMagic="includes/DisplayTitle.i18n.magic.php",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
HookHandlers={
main={
class="MediaWiki\\Extension\\DisplayTitle\\DisplayTitleHooks",
services={
"DisplayTitleService","NamespaceInfo",},
},
},
Hooks={
ParserFirstCallInit="main",
BeforePageDisplay="main",
HtmlPageLinkRendererBegin="main",
OutputPageParserOutput="main",
SelfLinkBegin="main",
["SkinTemplateNavigation::Universal"]="main",
ScribuntoExternalLibraries="MediaWiki\\Extension\\DisplayTitle\\DisplayTitleHooks::onScribuntoExternalLibraries",
},
config={
DisplayTitleHideSubtitle={
value=false,
},
DisplayTitleExcludes={
value={
},
},
DisplayTitleFollowRedirects={
value=true,
},
},
composer="mediawiki/display-title",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DisplayTitle",
},
DisqusTag={
name="DisqusTag",
version="0.3",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Felipe Schenone]",
url="https://www.mediawiki.org/wiki/Extension:DisqusTag",
descriptionmsg="disqustag-desc",
["license-name"]="GPL-3.0-only",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
BeforePageDisplay="DisqusTag::addModule",
ParserFirstCallInit="DisqusTag::setParserHook",
ResourceLoaderGetConfigVars="DisqusTag::onResourceLoaderGetConfigVars",
SkinAfterContent="DisqusTag::addDisqusElements",
},
config={
["_prefix"]="eg",
DisqusShortname="your-disqus-shortname",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DisqusTag",
},
DocBookExport={
name="DocBookExport",
version="1.0",
author={
"Nischayn22","WikiWorks",},
url="https://www.mediawiki.org/wiki/Extension:DocBookExport",
["license-name"]="MIT",
descriptionmsg="docbookexport-desc",
type="other",
requires={
MediaWiki="&gt;= 1.30.0",
},
config={
DocbookExportPandocServerPath="",
DocbookDownloadServerPath="",
DocBookExportXSLRepository="",
DocBookExportImportXSLRepoPathPDF="",
DocBookExportImportXSLRepoPathHTML="",
},
Hooks={
ParserFirstCallInit="DocBookExport::onParserSetup",
},
SpecialPages={
GetDocbook="SpecialGetDocbook",
},
ExtensionMessagesFiles={
DocBookExportMagic="DocBookExport.i18n.magic.php",
DocBookExportAlias="DocBookExport.i18n.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DocBookExport",
},
DonationInterface={
name="Donation Interface",
version="2.5.9.2",
author={
"Elliott Eggleston","Katie Horn","Ryan Kaldari","Arthur Richards","Sherah Smith","Matt Walker","Adam Wight","Peter Gehres","Jeremy Postlethwaite","Dylan Kozlowski","Casey Dentinger","Maggie Epps","Jack Gleeson","Christine Stone",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:DonationInterface",
type="specialpage",
requires={
MediaWiki="&gt;= 1.39",
},
callback="DonationInterface::registerExtension",
SpecialPages={
GatewayChooser="GatewayChooser",
SystemStatus="SystemStatus",
EmailPreferences="EmailPreferences",
RecurUpgrade="RecurUpgrade",
FundraiserMaintenance="FundraiserMaintenance",
IngenicoGateway="IngenicoGateway",
IngenicoGatewayResult="IngenicoGatewayResult",
AmazonGateway="AmazonGateway",
AdyenCheckoutGateway="AdyenCheckoutGateway",
AdyenCheckoutGatewayResult="AdyenCheckoutGatewayResult",
BraintreeGateway="BraintreeGateway",
BraintreeGatewayResult="BraintreeGatewayResult",
PaypalExpressGateway="PaypalExpressGateway",
PaypalExpressGatewayResult="PaypalExpressGatewayResult",
DlocalGateway="DlocalGateway",
DlocalGatewayResult="DlocalGatewayResult",
GravyGateway="GravyGateway",
GravyGatewayResult="GravyGatewayResult",
},
APIModules={
di_amazon_bill="AmazonBillingApi",
di_donate_adyen="AdyenDonationApi",
di_donate_dlocal="DlocalDonationApi",
di_applesession_adyen="AdyenAppleApi",
di_donate_braintree="BraintreeDonationApi",
donate="DonationApi",
di_recurring_convert="RecurringConversionApi",
getPaymentMethods="AdyenGetPaymentMethodsApi",
logPaymentsFormError="MediaWiki\\Extension\\DonationInterface\\Api\\ApiDonationClientError",
logRecurUpgradeFormError="MediaWiki\\Extension\\DonationInterface\\Api\\ApiRecurUpgradeClientError",
employerSearch="EmployerSearchAPI",
submitPayment="AdyenSubmitPaymentApi",
},
ExtensionMessagesFiles={
GatewayAliases="DonationInterface.alias.php",
AmazonGatewayAlias="amazon_gateway/amazon_gateway.alias.php",
IngenicoGatewayAlias="ingenico_gateway/ingenico_gateway.alias.php",
AdyenGatewayAlias="adyen_gateway/adyen_gateway.alias.php",
PaypalGatewayAlias="paypal_ec_gateway/paypal_gateway.alias.php",
BraintreeGatewayAlias="braintree_gateway/braintree_gateway.alias.php",
DlocalGatewayAlias="dlocal_gateway/dlocal_gateway.alias.php",
GravyGatewayAlias="gravy_gateway/gravy_gateway.alias.php",
},
RawHtmlMessages={
"donate_interface-otherways",},
Hooks={
["Language::getMessagesFileName"]="DonationInterface::onGetMessagesFileName",
UnitTestsList="DonationInterface::onDonationInterfaceUnitTests",
},
config={
DonationInterfaceTest={
value=false,
},
DonationInterfaceAppealWikiTemplate={
value="LanguageSwitch|2011FR/$appeal/text|$language",
},
DonationInterfaceDefaultAppeal={
value="JimmyQuote",
},
DonationInterfaceProblemsURL={
value="https://donate.wikimedia.org/wiki/Special:LandingCheck?landing_page=Problems_donating&amp;basic=true&amp;language=$language&amp;country=$country",
},
DonationInterfaceOtherWaysURL={
value="https://donate.wikimedia.org/wiki/Special:LandingCheck?basic=true&amp;landing_page=Ways_to_Give&amp;language=$language&amp;country=$country",
},
DonationInterfaceFaqURL={
value="https://donate.wikimedia.org/wiki/Special:LandingCheck?basic=true&amp;landing_page=FAQ&amp;language=$language&amp;country=$country",
},
DonationInterfaceTaxURL={
value="https://donate.wikimedia.org/wiki/Special:LandingCheck?basic=true&amp;landing_page=Tax_deductibility&amp;language=$language&amp;country=$country",
},
DonationInterfacePolicyURL={
value="https://foundation.wikimedia.org/wiki/Special:LandingCheck?basic=true&amp;landing_page=Donor_privacy_policy&amp;language=$language&amp;country=$country",
},
DonationInterfaceRecurringDonateURL={
value="https://donate.wikimedia.org/w/index.php?title=Special:LandingPage&amp;monthly=true",
},
DonationInterfaceChooserProblemURL={
value="https://donate.wikimedia.org",
},
DonationInterfaceProblemsEmail={
value="donate@wikimedia.org",
},
DonationInterfaceMajorGiftsEmail={
value="benefactors@wikimedia.org",
},
DonationInterfaceDefaultEmail={
value="nobody@wikimedia.org",
},
DonationInterfaceLogoOverride={
value={
},
},
DonationInterfaceDebugLog={
value=false,
},
DonationInterfaceDisplayDebug={
value=false,
},
DonationInterfaceUseSyslog={
value=false,
},
DonationInterfaceSaveCommStats={
value=false,
},
DonationInterfaceCurlVerboseLog={
value=false,
},
DonationInterfaceLogCompleted={
value=false,
},
DonationInterfaceTimeout={
value=5,
},
DonationInterfaceFallbackCurrency={
value=false,
},
DonationInterfaceFallbackCurrencyByCountry={
value=false,
},
DonationInterfaceNotifyOnConvert={
value=true,
},
DonationInterfaceSendOptInOnFailure={
value=false,
},
DonationInterfaceSalt={
value=nil,
},
DonationInterfaceHeader={
value=nil,
},
DonationInterfaceSurnameFirstCountries={
value={
"JP",},
},
DonationInterfaceNoScriptRedirect={
value=nil,
},
DonationInterfaceThankYouPage={
value="Donate-thanks",
},
DonationInterfaceFailPage={
value="Donate-error",
},
DonationInterfaceCancelPage={
value="Donate-cancel",
},
DonationInterfaceLocalConfigurationDirectory={
value=false,
},
DonationInterfaceVariantConfigurationDirectory={
value=false,
},
DonationInterfaceRetryLoopCount={
value=3,
},
DonationInterfaceForbiddenCountries={
value={
},
},
DonationInterface3DSRules={
value={
INR={
},
},
merge_strategy="array_plus",
},
DonationInterfaceMessageSourceType={
value="payments",
},
IngenicoGatewayHostedFormVariants={
value={
redirect=100,
iframe=100,
},
},
AmazonGatewayLoginScript={
value="https://api-cdn.amazon.com/sdk/login1.js",
},
PaypalExpressGatewayCertificateURL={
value="https://api.paypal.com/nvp",
},
PaypalExpressGatewaySignatureURL={
value="https://api-3t.paypal.com/nvp",
},
PaypalExpressGatewayTestingCertificateURL={
value="https://api.sandbox.paypal.com/nvp",
},
PaypalExpressGatewayTestingSignatureURL={
value="https://api-3t.sandbox.paypal.com/nvp",
},
DonationInterfaceCustomFiltersActionRanges={
value={
process={
0,100,},
review={
-1,-1,},
challenge={
-1,-1,},
reject={
-1,-1,},
},
merge_strategy="array_plus_2d",
},
DonationInterfaceCustomFiltersRiskScore={
value=0,
},
DonationInterfaceMinFraudAccountId={
value="",
},
DonationInterfaceMinFraudLicenseKey={
value="",
},
DonationInterfaceMinFraudClientOptions={
value={
},
},
DonationInterfaceMinFraudExtraFields={
value={
},
},
DonationInterfaceMinFraudAlarmLimit={
value=25000,
},
DonationInterfaceCustomFiltersRefRules={
value={
},
},
DonationInterfaceCustomFiltersSrcRules={
value={
},
},
DonationInterfaceCustomFiltersFunctions={
value={
},
},
DonationInterfaceCustomFiltersInitialFunctions={
value={
},
},
DonationInterfaceNameFilterRules={
value={
},
},
DonationInterfaceIPDenyFailScore={
value=100,
},
DonationInterfaceIPVelocityFailScore={
value=100,
},
DonationInterfaceIPVelocityTimeout={
value=300,
},
DonationInterfaceIPVelocityThreshhold={
value=3,
},
DonationInterfaceSessionVelocity_HitScore={
value=10,
},
DonationInterfaceSessionVelocity_DecayRate={
value=1,
},
DonationInterfaceSessionVelocity_Threshold={
value=50,
},
DonationInterfaceSessionVelocity_Multiplier={
value=1,
},
DonationInterfaceCountryMap={
value={
},
},
DonationInterfaceEmailDomainMap={
value={
},
},
DonationInterfaceUtmCampaignMap={
value={
},
},
DonationInterfaceUtmMediumMap={
value={
},
},
DonationInterfaceUtmSourceMap={
value={
},
},
DonationInterfaceEnableConversionLog={
value=false,
},
DonationInterfaceEnableMinFraud={
value=false,
},
DonationInterfaceMinFraudWeight={
value=100,
},
DonationInterfaceMinFraudErrorScore={
value=50,
},
DonationInterfaceEnableBannerHistoryLog={
value=false,
},
IngenicoGatewayEnabled={
value=false,
},
AmazonGatewayEnabled={
value=false,
},
AdyenCheckoutGatewayEnabled={
value=false,
},
PaypalExpressGatewayEnabled={
value=false,
},
BraintreeGatewayEnabled={
value=false,
},
DlocalGatewayEnabled={
value=false,
},
GravyGatewayEnabled={
value=false,
},
DonationInterfaceEnableCustomFilters={
value=true,
},
DonationInterfaceEnableGatewayChooser={
value=false,
},
DonationInterfaceGatewayPriorityRules={
value={
{
conditions={
country={
"AR","BR","CL","CO","IN","MX","PE","UY","ZA",},
payment_method="cc",
},
gateways={
"dlocal","adyen","ingenico",},
},{
gateways={
"adyen","ingenico","paypal_ec","amazon","dlocal","braintree",},
},},
},
DonationInterfaceEnableReferrerFilter={
value=false,
},
DonationInterfaceEnableSourceFilter={
value=false,
},
DonationInterfaceEnableFunctionsFilter={
value=false,
},
DonationInterfaceEnableIPVelocityFilter={
value=false,
},
DonationInterfaceEnableSessionVelocityFilter={
value=false,
},
DonationInterfaceEnableSystemStatus={
value=false,
},
DonationInterfaceLogClientErrors={
value=true,
},
DonationInterfaceClientErrorLogIgnorePatterns={
value={
".*ResizeObserver.*",},
},
DonationInterfaceGeoIpDbPath={
value="/usr/share/GeoIP/GeoLite2-Country.mmdb",
},
DonationInterfaceGatewayAdapters={
value={
ingenico="IngenicoAdapter",
amazon="AmazonAdapter",
adyen="AdyenCheckoutAdapter",
paypal_ec="PaypalExpressAdapter",
braintree="BraintreeAdapter",
dlocal="DlocalAdapter",
gravy="GravyAdapter",
},
},
DonationInterfaceTaxDedCountries={
value={
"FR",},
},
DonationInterfaceFundraiserMaintenance={
value=false,
},
DonationInterfaceEmployersListDataFileLocation={
value="/vagrant/employerData.csv",
},
DonationInterfaceMonthlyConvertCountries={
value={
},
},
DonationInterfaceMonthlyConvertDefaultModule={
value="ext.donationInterface.monthlyConvert",
},
DonationInterfaceMonthlyConvertAmounts={
value={
BRL={
{
9,0,},{
12,6,},{
22,7,},{
35,8,},{
45,9,},{
55,10,},{
80,12,},{
105,16,},{
160,25,},{
210,35,},{
270,45,},{
320,50,},},
CLP={
{
1999,0,},{
2300,1000,},{
2700,1100,},{
3300,1200,},{
4200,1300,},{
5500,1400,},{
9000,1500,},{
10500,1700,},{
16000,2600,},{
20800,3400,},{
26000,4200,},{
31200,5000,},{
38400,6400,},{
55000,8500,},},
COP={
{
9999,0,},{
11300,5000,},{
17000,5200,},{
22000,5500,},{
27000,5800,},{
45000,7500,},{
55000,9000,},{
75000,12500,},{
105000,17000,},{
120000,20000,},{
160000,25000,},{
180000,30000,},{
250000,34000,},},
CZK={
{
49,0,},{
180,30,},{
300,50,},{
600,100,},{
900,150,},{
1200,200,},{
1500,250,},{
1800,300,},{
2100,350,},{
2400,400,},{
3000,500,},{
3600,600,},{
4200,700,},{
4800,800,},},
DKK={
{
19,0,},{
25,10,},{
120,20,},{
250,40,},{
350,50,},{
450,75,},{
600,100,},{
750,125,},{
900,150,},{
1200,200,},{
1500,250,},{
1800,300,},{
2100,350,},},
GBP={
{
1.99,0,},{
2.35,1.4,},{
9,1.75,},{
12,2,},{
15,2.5,},{
18,3,},{
21,3.5,},{
24,4,},{
27,4.5,},{
30,5,},{
33,5.5,},{
36,6,},{
39,6.5,},{
42,7,},{
45,7.5,},{
48,8,},{
51,8.5,},{
54,9,},{
57,9.5,},{
60,10,},{
63,10.5,},{
66,11,},{
69,11.5,},{
72,12,},{
75,12.5,},{
102,17,},{
250,25,},{
499,50,},},
HUF={
{
499,0,},{
3000,500,},{
6000,1000,},{
9000,1500,},{
12000,2000,},{
18000,3000,},{
24000,4000,},{
30000,5000,},{
36000,6000,},{
42000,7000,},{
48000,8000,},{
54000,9000,},{
60000,10000,},},
ILS={
{
9,0,},{
10,5,},{
60,10,},{
90,15,},{
120,20,},{
180,30,},{
240,40,},{
300,50,},{
360,60,},{
420,70,},{
480,80,},{
540,90,},{
600,100,},},
JPY={
{
299,0,},{
900,150,},{
1200,200,},{
1500,250,},{
1800,300,},{
2100,350,},{
2400,400,},{
2700,450,},{
3000,500,},{
3300,550,},{
3600,600,},{
3900,650,},{
4200,700,},{
4500,750,},{
4800,800,},{
5100,850,},{
5400,900,},{
5700,950,},{
6000,1000,},{
6300,1050,},{
6600,1100,},{
6900,1150,},{
7200,1200,},{
7500,1250,},{
10800,1800,},{
18000,3000,},{
50000,6000,},},
MXN={
{
39,0,},{
48,25,},{
60,28,},{
110,30,},{
160,35,},{
260,45,},{
270,50,},{
350,60,},{
550,85,},{
650,90,},{
750,120,},{
1500,160,},},
MYR={
{
9,0,},{
30,5,},{
50,10,},{
120,20,},{
180,30,},{
240,40,},{
300,50,},{
360,60,},{
420,70,},{
480,80,},{
540,90,},{
600,100,},{
900,150,},},
PEN={
{
9,0,},{
12,5,},{
17,6,},{
26,7,},{
48,8,},{
55,9,},{
78,13,},{
105,17,},{
130,21,},{
160,26,},{
180,30,},{
210,32,},},
SEK={
{
29,0,},{
35,20,},{
55,25,},{
105,30,},{
160,40,},{
210,50,},{
360,60,},{
450,75,},{
600,100,},{
800,125,},{
900,150,},{
1200,200,},{
1500,250,},{
1800,300,},{
2100,350,},},
USD={
{
2.74,0,},{
9,1.75,},{
12,2,},{
15,2.5,},{
18,3,},{
21,3.5,},{
24,4,},{
27,4.5,},{
30,5,},{
33,5.5,},{
36,6,},{
39,6.5,},{
42,7,},{
45,7.5,},{
48,8,},{
51,8.5,},{
54,9,},{
57,9.5,},{
60,10,},{
63,10.5,},{
66,11,},{
69,11.5,},{
72,12,},{
75,12.5,},{
102,17,},{
250,25,},{
499,50,},},
UYU={
{
99,0,},{
120,50,},{
170,65,},{
220,70,},{
320,75,},{
480,85,},{
520,90,},{
750,125,},{
1050,170,},{
1350,225,},{
1600,250,},{
1800,300,},{
2100,320,},},
ZAR={
{
29,0,},{
30,20,},{
50,30,},{
100,40,},{
300,50,},{
450,75,},{
600,100,},{
900,150,},{
1200,200,},{
1500,250,},{
1800,300,},{
2400,400,},{
3000,500,},{
3600,600,},},
},
merge_strategy="array_plus",
},
DonationInterfaceEmailPreferencesCountries={
value={
"AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","SZ","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","XK","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MK","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","CS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW",},
},
DonationInterfaceEmailPreferencesLanguages={
value={
"af_ZA","sq_AL","ar_EG","bg_BG","ca_ES","zh_CN","zh_TW","cs_CZ","da_DK","nl_NL","nl_BE","en_AU","en_CA","en_GB","en_US","et_EE","fi_FI","fr_CA","fr_FR","de_DE","de_CH","el_GR","he_IL","hi_IN","hu_HU","id_ID","it_IT","ja_JP","km_KH","lt_LT","lv_LV","mk_MK","nb_NO","no_NO","fa_IR","pl_PL","pt_BR","pt_PT","ro_RO","ru_RU","sr_RS","sk_SK","sl_SI","es_ES","es_MX","es_PR","sv_SE","te_IN","th_TH","tr_TR","uk_UA","vi_VN",},
},
DonationInterfaceEmailPreferencesSnoozeDays={
value=90,
},
DonationInterfaceCiviproxyURLBase={
value="https://localhost",
},
DonationInterfaceRecurringUpgradeOptions={
value={
USD={
1,5,10,},
},
},
DonationInterfaceRecurringUpgradeMaxUSD={
value=1000,
},
DonationInterfaceEmailFormHelpEmail={
value="donate@wikimedia.org",
},
},
composer="wikimedia/donation-interface",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DonationInterface",
},
Drafts={
name="Drafts",
version="0.3.7",
author={
"Trevor Parscal","Petr Bena",},
url="https://www.mediawiki.org/wiki/Extension:Drafts",
descriptionmsg="drafts-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.35.3",
},
config_prefix="eg",
config={
DraftsAutoSaveWait={
value=120,
path=false,
description="Seconds of inactivity after change before autosaving. Use the value 0 to disable autosave",
public=false,
},
DraftsAutoSaveInputBased={
value=false,
path=false,
description="Enable auto save only if user stop typing (less auto saves, but much worse recovery ability)",
public=false,
},
DraftsAutoSaveTimeout={
value=20,
path=false,
description="Seconds to wait until giving up on a response from the server. Use the value 0 to disable autosave",
public=false,
},
DraftsLifeSpan={
value=30,
path=false,
description="Days to keep drafts around before automatic deletion. Set to 0 to keep forever.",
public=false,
},
DraftsCleanRatio={
value=1000,
path=false,
description="Ratio of times which a list of drafts requested and the list should be pruned for expired drafts - expired drafts will not apear in the list even if they are not yet pruned, this is just a way to keep the database from filling up with old drafts",
public=false,
},
},
APIModules={
loaddrafts="ApiLoadDrafts",
savedrafts="ApiSaveDrafts",
},
SpecialPages={
Drafts="SpecialDrafts",
},
ExtensionMessagesFiles={
DraftsAlias="Drafts.alias.php",
},
Hooks={
UserGetDefaultOptions="DraftHooks::onUserGetDefaultOptions",
GetPreferences="DraftHooks::onGetPreferences",
EditFilter="DraftHooks::onEditFilter",
PageSaveComplete="DraftHooks::onPageSaveComplete",
ArticleUndelete="DraftHooks::onArticleUndelete",
SpecialMovepageAfterMove="DraftHooks::onSpecialMovepageAfterMove",
EditPageBeforeEditButtons="DraftHooks::onEditPageBeforeEditButtons",
["EditPage::showEditForm:initial"]="DraftHooks::loadForm",
["EditPage::attemptSave:after"]="DraftHooks::onEditPage__attemptSave_after",
ResourceLoaderGetConfigVars="DraftHooks::onResourceLoaderGetConfigVars",
LoadExtensionSchemaUpdates="DraftHooks::schema",
},
composer="mediawiki/drafts",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Drafts",
},
DrawioEditor={
name="DrawioEditor",
["license-name"]="GPL-3.0-only",
version="3.0.0-alpha",
author={
"Markus Gebert","[https://www.hallowelt.com Hallo Welt! GmbH]",},
attributes={
ContentDroplets={
Droplets={
drawio={
class="\\MediaWiki\\Extension\\DrawioEditor\\ContentDroplets\\DrawioDroplet",
},
},
},
DrawioEditor={
InspectorPluginModules={
},
},
},
descriptionmsg="drawioeditor-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
},
ExtensionMessagesFiles={
DrawioEditorMagic="DrawioEditor.magic.php",
},
Hooks={
ParserFirstCallInit={
"tag","MediaWiki\\Extension\\DrawioEditor\\Hook\\ParserFirstCallInit\\SetFunctionHook::callback",},
DrawioGetFile="approveRevsSetStableFile",
BSUEModulePDFFindFiles="\\MediaWiki\\Extension\\DrawioEditor\\Hooks::onBSUEModulePDFFindFiles",
BSUEModulePDFBeforeAddingStyleBlocks="\\MediaWiki\\Extension\\DrawioEditor\\Hooks::onBSUEModulePDFBeforeAddingStyleBlocks",
ImagePageAfterImageLinks="\\MediaWiki\\Extension\\DrawioEditor\\Hooks::onImagePageAfterImageLinks",
},
HookHandlers={
tag={
class="\\MediaWiki\\Extension\\DrawioEditor\\Hook\\Tag",
},
approveRevsSetStableFile={
class="MediaWiki\\Extension\\DrawioEditor\\Hook\\ApprovedRevsSetStableFile",
services={
"DBLoadBalancer","RepoGroup",},
},
},
config={
DrawioEditorImageType={
value="png",
},
DrawioEditorBackendUrl={
value="https://embed.diagrams.net",
},
},
composer="mediawiki/drawio-editor",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DrawioEditor",
},
DumpsOnDemand={
name="DumpsOnDemand",
version="1.0.2",
author={
"Mainframe98",},
url="https://www.mediawiki.org/wiki/Extension:DumpsOnDemand",
descriptionmsg="dumpsondemand-desc",
namemsg="dumpsondemand-extensionname",
["license-name"]="MIT",
type="specialpage",
requires={
MediaWiki="&gt;=1.41.0",
},
SpecialPages={
RequestDump={
class="MediaWiki\\Extension\\DumpsOnDemand\\Specials\\SpecialRequestDump",
services={
"DumpsOnDemandFileBackend","ConfigFactory","JobQueueGroup",},
},
},
ExtensionMessagesFiles={
DumpsOnDemandAlias="DumpsOnDemand.alias.php",
},
ServiceWiringFiles={
"src/ServiceWiring.php",},
ConfigRegistry={
DumpsOnDemand="MediaWiki\\Config\\GlobalVarConfig::newInstance",
},
config={
DumpsOnDemandUseDefaultJobQueue={
value=false,
},
DumpsOnDemandCompression={
value=nil,
},
DumpsOnDemandRequestLimit={
value=604800,
},
DumpsOnDemandDumpFileBackend={
value={
class="MediaWiki\\Extension\\DumpsOnDemand\\Backend\\LocalFileBackend",
services={
"MainConfig",},
},
},
},
LogTypes={
"dumprequest",},
LogActions={
["dumprequest/dumprequest"]="logentry-dumprequest",
},
LogRestrictions={
dumprequest="dumprequestlog",
},
JobClasses={
DatabaseDumpGeneration={
class="MediaWiki\\Extension\\DumpsOnDemand\\Jobs\\DoDatabaseDumpJob",
services={
"DBLoadBalancerFactory","DumpsOnDemandFileBackend","WikiExporterFactory",},
needsPage=false,
},
},
AvailableRights={
"dumprequestlog","dumpsondemand","dumpsondemand-limit-exempt",},
callback="MediaWiki\\Extension\\DumpsOnDemand\\Hooks::onRegistration",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DumpsOnDemand",
},
DynamicPageListEngine={
name="DynamicPageListEngine",
version="1.1.0-rc1",
type="other",
author={
"[https://www.mediawiki.org/wiki/User:RV1971 RV1971]",},
descriptionmsg="dynamicpagelistengine-desc",
url="https://www.mediawiki.org/wiki/Extension:DynamicPageListEngine",
["license-name"]="GPL-3.0-or-later",
requires={
MediaWiki="&gt;= 1.34.0",
},
Hooks={
ScribuntoExternalLibraries="Scribunto_LuaDynamicPageListEngineLibrary::onScribuntoExternalLibraries",
},
config={
DpleMaxCost={
description="Maxiumum cost of a dynamic page list in terms of database load. Default null means that it is set to the corresponding value for [Extension:DynamicPageList](https://www.mediawiki.org/wiki/Extension:DynamicPageList_(Wikimedia%29#Setup)",
value=nil,
},
DpleMaxResultCount={
description="Maxiumum number of records to fetch. Default NULL means that it is set to the corresponding value for [Extension:DynamicPageList](https://www.mediawiki.org/wiki/Extension:DynamicPageList_(Wikimedia%29#Setup)",
value=nil,
},
DpleFeatures={
description="Which features to enable",
value={
DpleFeatureNamespace=true,
DpleFeatureCategory=true,
DpleFeatureRedirects=true,
DpleFeatureTitlematch=false,
DpleFeatureSubpages=false,
DpleFeatureLinksto=false,
DpleFeatureLinksfrom=false,
DpleFeatureRedirectsto=false,
DpleFeatureUses=false,
DpleFeatureUsedby=false,
DpleFeatureImageused=false,
DpleFeatureImagecontainer=false,
DpleFeatureContains=false,
DpleFeatureExtra=false,
DpleFeatureUser=false,
DpleFeatureCount=true,
DpleFeatureOrder=true,
DpleFeatureCheck=true,
DpleFeatureResults=true,
},
},
DpleCondCostMap={
description="Cost of conditions in terms of database load. A unit of 1 should correspond to an efficient table join. You can tune this map to reflect the real cost on your particular installation and/or prevent users from excessive use of certain features. Any conditions not mentioned in this map are assigned a cost of 0.",
value={
DpleFeatureNamespace=-0.2,
DpleFeatureCategory=1,
DpleFeatureTitlematch=0.3,
DpleFeatureLinksto=1,
DpleFeatureLinksfrom=1.3,
DpleFeatureUses=1,
DpleFeatureUsedby=1.3,
DpleFeatureImageused=1,
DpleFeatureImagecontainer=1.3,
DpleFeatureContains=1.3,
DpleFeatureExtra=0.3,
DpleFeatureUser=1,
DpleFeatureUserExpensive=2,
},
},
DpleOrderCostMap={
description="Cost of order methods in terms of database load. Any order methods not mentioned in this map are assigned a cost of 0.",
value={
categorysortkey=0.1,
title=0.1,
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DynamicPageListEngine",
},
DynamicSidebar={
name="DynamicSidebar",
version="1.1",
author={
"Ryan Lane","Derick Alangi",},
url="https://www.mediawiki.org/wiki/Extension:DynamicSidebar",
descriptionmsg="dynamicsidebar-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
config={
DynamicSidebarUseCategories={
value=true,
},
DynamicSidebarUseGroups={
value=true,
},
DynamicSidebarUsePageCategories={
value=false,
},
DynamicSidebarUseUserpages={
value=true,
},
},
HookHandlers={
DynamicSidebar={
class="MediaWiki\\Extension\\DynamicSidebar\\DynamicSidebarHooks",
services={
"HookContainer","UserGroupManager",},
},
},
Hooks={
SidebarBeforeOutput={
handler="DynamicSidebar",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/DynamicSidebar",
},
EImage={
name="EImage",
version="3.6",
author={
"[http://www.robpol86.com/index.php/User:Robpol86 Robert Pooley]","[https://www.mediawiki.org/wiki/m:User:Want Aleš Kapica]",},
type="parserhook",
url="https://www.mediawiki.org/wiki/Extension:EImage",
descriptionmsg="eimage-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
EImageAliases="EImage.alias.php",
EImageMagick="EImage.i18n.magic.php",
},
SpecialPages={
EImagePages={
class="MediaWiki\\Extension\\EImage\\SpecialEImagePages",
services={
},
},
},
config={
EImageOnlyLocalSource={
value=true,
description="By default searched info about image files in local repository",
},
EImageCache={
description="DB table 'ei_cache' has info about files in storages",
value={
expire=3600,
threshold=10,
path="eimage",
storage=nil,
},
},
EImageDjVu={
value={
editor="djvused",
app="ddjvu",
netpbm="pnmtojpeg",
use=false,
},
description="Application djvused get info about the selected page and ddjvu (Debian package djvulibre-bin) export cropped clip as bitmap file into PNM, which netpbm tool pnmtojpeg convert into JPEG.",
},
EImageExif={
value={
app="exiftool",
tags={
SourceFile=true,
FileName=true,
Directory=true,
FilePermissions=true,
ExifToolVersion=true,
},
},
description="If installed exiftool, you can insert or modify exif tags of the files from local storages.",
},
EImagePdf={
value={
app="pdftocairo",
use=false,
},
description="Application pdftocairo (Debian package poppler-utils), is conversion tool PDF into SVG, with a crop area support.",
},
EImageSvg={
value={
shell="/usr/sh",
app="cairosvg",
environment={
},
use=false,
},
description="Application cairosvg (Debian package cairosvg), convert SVG into PDF",
},
EImageAvif={
value={
shell="/usr/sh",
app="heif-enc",
environment={
},
use=false,
},
description="If installed heif-enc (Debian package libheif-examples, you can use for output bitmap images new format AV1 (avif)",
},
EImageImgElement={
value=true,
description="If false, class EImageIMG not use element img, but div and image set as background",
},
EImageQRcode={
value={
app="/usr/bin/qrencode",
format="SVG",
foreground="ffffff",
backgground="ffffff",
},
description="If installed qrencode, you can generated QR code image to page from wikitext",
},
EImageStaleMinutes={
value=60,
description="Refresh cached metadata if the stored entry is this many minutes old",
},
EImageEmptyPng={
value="empty.png",
description="Default empty png if isn't set any background image",
},
},
Hooks={
ParserFirstCallInit="EImageHooks::eImageExtension",
ParserClearState="EImageHooks::onParserClearState",
ParserOutputPostCacheTransform="EImageStatic::decode",
ArticlePurge="EImageStatic::purge",
LoadExtensionSchemaUpdates="EImageHooks::createTable",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EImage",
},
Echo={
name="Echo",
author={
"Andrew Garrett","Ryan Kaldari","Benny Situ","Luke Welling","Kunal Mehta","Moriel Schottlender","Jon Robson","Roan Kattouw",},
url="https://www.mediawiki.org/wiki/Extension:Echo",
descriptionmsg="echo-desc",
["license-name"]="MIT",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42.0",
},
APIMetaModules={
notifications={
class="MediaWiki\\Extension\\Notifications\\Api\\ApiEchoNotifications",
services={
"MainConfig",},
},
unreadnotificationpages={
class="MediaWiki\\Extension\\Notifications\\Api\\ApiEchoUnreadNotificationPages",
services={
"PageStore","TitleFactory",},
},
},
APIModules={
echomarkread="MediaWiki\\Extension\\Notifications\\Api\\ApiEchoMarkRead",
echomarkseen="MediaWiki\\Extension\\Notifications\\Api\\ApiEchoMarkSeen",
echocreateevent={
class="MediaWiki\\Extension\\Notifications\\Api\\ApiEchoCreateEvent",
services={
"UserNameUtils",},
},
echoarticlereminder="MediaWiki\\Extension\\Notifications\\Api\\ApiEchoArticleReminder",
echomute={
class="MediaWiki\\Extension\\Notifications\\Api\\ApiEchoMute",
services={
"CentralIdLookup","LinkBatchFactory","UserOptionsManager",},
},
},
DefaultUserOptions={
["echo-email-frequency"]=0,
["echo-dont-email-read-notifications"]=false,
},
ConditionalUserOptions={
["echo-subscriptions-web-reverted"]={
{
false,{
"registered-after","20240208200000",},},},
["echo-subscriptions-web-article-linked"]={
{
true,{
"registered-after","20240208200000",},},},
["echo-subscriptions-email-mention"]={
{
true,{
"registered-after","20240208200000",},},},
["echo-subscriptions-email-article-linked"]={
{
true,{
"registered-after","20240208200000",},},},
},
ExtensionFunctions={
"MediaWiki\\Extension\\Notifications\\Hooks::initEchoExtension",},
JobClasses={
EchoNotificationJob="MediaWiki\\Extension\\Notifications\\Jobs\\NotificationJob",
EchoNotificationDeleteJob={
class="MediaWiki\\Extension\\Notifications\\Jobs\\NotificationDeleteJob",
services={
"JobQueueGroup",},
},
EchoPushNotificationRequest="MediaWiki\\Extension\\Notifications\\Push\\NotificationRequestJob",
},
SpecialPages={
Notifications="MediaWiki\\Extension\\Notifications\\Special\\SpecialNotifications",
DisplayNotificationsConfiguration={
class="MediaWiki\\Extension\\Notifications\\Special\\SpecialDisplayNotificationsConfiguration",
services={
"EchoAttributeManager","UserOptionsManager",},
},
NotificationsMarkRead="MediaWiki\\Extension\\Notifications\\Special\\SpecialNotificationsMarkRead",
},
AvailableRights={
"manage-all-push-subscriptions","echo-create",},
GroupPermissions={
["push-subscription-manager"]={
["manage-all-push-subscriptions"]=true,
},
},
ExtensionMessagesFiles={
EchoAliases="Echo.alias.php",
},
QUnitTestModule={
localBasePath="",
remoteExtPath="Echo",
dependencies={
"ext.echo.dm","ext.echo.mobile",},
scripts={
"tests/qunit/model/test_mw.echo.dm.BundleNotificationItem.js","tests/qunit/model/test_mw.echo.dm.CrossWikiNotificationItem.js","tests/qunit/model/test_mw.echo.dm.FiltersModel.js","tests/qunit/model/test_mw.echo.dm.NotificationGroupsList.js","tests/qunit/model/test_mw.echo.dm.NotificationItem.js","tests/qunit/model/test_mw.echo.dm.NotificationsList.js","tests/qunit/model/test_mw.echo.dm.PaginationModel.js","tests/qunit/model/test_mw.echo.dm.SeenTimeModel.js","tests/qunit/model/test_mw.echo.dm.SourcePagesModel.js","tests/qunit/model/test_mw.echo.dm.UnreadNotificationCounter.js",},
},
Hooks={
LoadExtensionSchemaUpdates="schema",
GetPreferences="main",
BeforePageDisplay="main",
ResourceLoaderRegisterModules="main",
UserGroupsChanged="main",
LoadUserOptions="main",
SaveUserOptions="main",
UserGetDefaultOptions="main",
UserClearNewTalkNotification="main",
EmailUserComplete="main",
LoginFormValidErrorMessages="main",
OutputPageCheckLastModified="main",
ArticleDeleteComplete="main",
ArticleUndelete="main",
UserMergeAccountFields="usermerge",
MergeAccountFromTo="usermerge",
UserMergeAccountDeleteTables="usermerge",
PageSaveComplete="main",
LocalUserCreated="main",
RollbackComplete="main",
UserSaveSettings="main",
AbortTalkPageEmailNotification="main",
SendWatchlistEmailNotification="main",
GetNewMessagesAlert="main",
LinksUpdateComplete="main",
SpecialMuteModifyFormFields="main",
RecentChange_save="main",
["ApiMain::moduleManager"]="main",
["SkinTemplateNavigation::Universal"]="main",
PreferencesGetIcon="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Notifications\\Hooks",
services={
"AuthManager","CentralIdLookup","MainConfig","EchoAttributeManager","HookContainer","ContentLanguage","LinkRenderer","NamespaceInfo","PermissionManager","RevisionStore","StatsFactory","TalkPageNotificationManager","UserEditTracker","UserFactory","UserOptionsManager",},
},
schema={
class="MediaWiki\\Extension\\Notifications\\SchemaHooks",
},
usermerge={
class="MediaWiki\\Extension\\Notifications\\UserMergeHooks",
},
},
config={
EchoEnableEmailBatch={
value=true,
},
EchoUseJobQueue={
value=false,
},
EchoEmailFooterAddress={
value="",
},
EchoCluster={
value=false,
},
EchoSharedTrackingDB={
value=false,
},
EchoSharedTrackingCluster={
value=false,
},
EchoSeenTimeCacheType={
value=nil,
},
EchoMaxUpdateCount={
value=2000,
},
EchoMaxMentionsCount={
value=50,
},
EchoMentionStatusNotifications={
value=false,
},
EchoMentionsOnMultipleSectionEdits={
value=true,
},
EchoMentionOnChanges={
value=true,
},
EchoBundleEmailInterval={
value=0,
},
DefaultNotifyTypeAvailability={
value={
web=true,
email=true,
},
},
NotifyTypeAvailabilityByCategory={
value={
["system-noemail"]={
web=true,
email=false,
},
["system-emailonly"]={
web=false,
email=true,
},
emailuser={
web=true,
email=false,
},
["article-linked"]={
web=true,
email=false,
},
["mention-failure"]={
web=true,
email=false,
},
["mention-success"]={
web=true,
email=false,
},
["thank-you-edit"]={
web=true,
email=false,
},
},
merge_strategy="array_plus_2d",
},
EchoNotifiers={
value={
web="MediaWiki\\Extension\\Notifications\\Notifier::notifyWithNotification",
email="MediaWiki\\Extension\\Notifications\\Notifier::notifyWithEmail",
},
},
EchoAgentBlacklist={
value={
},
},
EchoOnWikiBlacklist={
value="Echo-blacklist",
},
EchoPerUserBlacklist={
value=false,
},
EchoPerUserWhitelistFormat={
value="%s/Echo-whitelist",
},
EchoCrossWikiNotifications={
value=false,
},
EchoNotificationCategories={
value={
system={
priority=9,
["no-dismiss"]={
"all",},
},
["system-noemail"]={
priority=9,
["no-dismiss"]={
"all",},
},
["system-emailonly"]={
priority=9,
["no-dismiss"]={
"all",},
},
["user-rights"]={
priority=9,
tooltip="echo-pref-tooltip-user-rights",
},
other={
["no-dismiss"]={
"all",},
},
["edit-user-talk"]={
priority=1,
["no-dismiss"]={
"web",},
tooltip="echo-pref-tooltip-edit-user-talk",
},
["edit-user-page"]={
priority=1,
tooltip="echo-pref-tooltip-edit-user-page",
},
reverted={
priority=9,
tooltip="echo-pref-tooltip-reverted",
},
["article-linked"]={
priority=5,
tooltip="echo-pref-tooltip-article-linked",
},
mention={
priority=4,
tooltip="echo-pref-tooltip-mention",
},
["mention-failure"]={
priority=4,
tooltip="echo-pref-tooltip-mention-failure",
},
["mention-success"]={
priority=4,
tooltip="echo-pref-tooltip-mention-success",
},
emailuser={
priority=9,
tooltip="echo-pref-tooltip-emailuser",
},
["article-reminder"]={
priority=1,
tooltip="echo-pref-tooltip-article-reminder",
},
["thank-you-edit"]={
priority=9,
tooltip="echo-pref-tooltip-thank-you-edit",
},
watchlist={
priority=5,
tooltip="echo-pref-tooltip-watchlist",
},
["minor-watchlist"]={
priority=6,
tooltip="echo-pref-tooltip-minor-watchlist",
},
["api-triggered"]={
priority=9,
tooltip="echo-pref-tooltip-api-triggered",
},
},
merge_strategy="array_plus_2d",
},
EchoNotificationIcons={
value={
["watchlist-progressive"]={
path={
ltr="Echo/modules/icons/watchlist-ltr-progressive.svg",
rtl="Echo/modules/icons/watchlist-rtl-progressive.svg",
},
},
placeholder={
path="Echo/modules/icons/notice.svg",
},
chat={
path={
ltr="Echo/modules/icons/speechBubbles-ltr-progressive.svg",
rtl="Echo/modules/icons/speechBubbles-rtl-progressive.svg",
},
},
edit={
path="Echo/modules/icons/edit-progressive.svg",
},
["edit-user-page"]={
path="Echo/modules/icons/edit-user-page.svg",
},
["edit-user-talk"]={
path="Echo/modules/icons/edit-user-talk-progressive.svg",
},
linked={
path="Echo/modules/icons/link-progressive.svg",
},
mention={
path="Echo/modules/icons/mention-progressive.svg",
},
["mention-failure"]={
path="Echo/modules/icons/mention-failure.svg",
},
["mention-success"]={
path="Echo/modules/icons/mention-success-constructive.svg",
},
["mention-status-bundle"]={
path="Echo/modules/icons/mention-status-bundle-progressive.svg",
},
reviewed={
path="Echo/modules/icons/articleCheck-progressive.svg",
},
revert={
path="Echo/modules/icons/revert.svg",
},
["user-rights"]={
path="Echo/modules/icons/user-rights-progressive.svg",
},
emailuser={
path="Echo/modules/icons/message-constructive.svg",
},
help={
path={
ltr="Echo/modules/icons/helpNotice-ltr.svg",
rtl="Echo/modules/icons/helpNotice-rtl.svg",
},
},
global={
path="Echo/modules/icons/global-progressive.svg",
},
site={
url=false,
},
["article-reminder"]={
path="Echo/modules/icons/global-progressive.svg",
},
robot={
path="Echo/modules/icons/robot.svg",
},
},
merge_strategy="array_plus_2d",
},
EchoSecondaryIcons={
value={
linked={
path="Echo/modules/icons/link-progressive.svg",
},
changes={
path="Echo/modules/icons/changes.svg",
},
thanks={
path={
ltr="Echo/modules/icons/userTalk-ltr.svg",
rtl="Echo/modules/icons/userTalk-rtl.svg",
},
},
unbell={
path="Echo/modules/icons/unbell.svg",
},
userSpeechBubble={
path="Echo/modules/icons/user-speech-bubble.svg",
},
},
merge_strategy="array_plus_2d",
},
EchoNotifications={
value={
welcome={
["user-locators"]={
"MediaWiki\\Extension\\Notifications\\UserLocator::locateEventAgent",},
canNotifyAgent=true,
category="system-noemail",
group="positive",
section="message",
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoWelcomePresentationModel",
},
["edit-user-page"]={
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoEditUserPagePresentationModel",
["user-locators"]={
"MediaWiki\\Extension\\Notifications\\UserLocator::locateUserPageOwner",},
category="edit-user-page",
group="interactive",
section="alert",
bundle={
web=true,
email=false,
expandable=true,
},
immediate=true,
},
["edit-user-talk"]={
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoEditUserTalkPresentationModel",
["user-locators"]={
"MediaWiki\\Extension\\Notifications\\UserLocator::locateTalkPageOwner",},
category="edit-user-talk",
group="interactive",
section="alert",
bundle={
web=true,
email=false,
expandable=true,
},
immediate=true,
},
reverted={
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoRevertedPresentationModel",
["user-locators"]={
{
"MediaWiki\\Extension\\Notifications\\UserLocator::locateFromEventExtra",{
"reverted-user-id",},},},
category="reverted",
group="negative",
section="alert",
},
["page-linked"]={
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoPageLinkedPresentationModel",
["user-locators"]={
"MediaWiki\\Extension\\Notifications\\UserLocator::locateArticleCreator",},
category="article-linked",
group="neutral",
section="message",
bundle={
web=true,
email=true,
expandable=true,
},
},
["minor-watchlist-change"]={
["user-locators"]={
"MediaWiki\\Extension\\Notifications\\UserLocator::locateUsersWatchingTitle",},
category="minor-watchlist",
group="interactive",
section="message",
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoWatchlistChangePresentationModel",
bundle={
web=true,
email=true,
expandable=true,
},
},
["watchlist-change"]={
["user-locators"]={
"MediaWiki\\Extension\\Notifications\\UserLocator::locateUsersWatchingTitle",},
section="message",
category="watchlist",
group="interactive",
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoWatchlistChangePresentationModel",
bundle={
web=true,
email=true,
expandable=true,
},
},
mention={
["user-locators"]={
{
"MediaWiki\\Extension\\Notifications\\UserLocator::locateFromEventExtra",{
"mentioned-users",},},},
category="mention",
group="interactive",
section="alert",
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoMentionPresentationModel",
},
["mention-summary"]={
["user-locators"]={
{
"MediaWiki\\Extension\\Notifications\\UserLocator::locateFromEventExtra",{
"mentioned-users",},},},
category="mention",
group="interactive",
section="alert",
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoMentionInSummaryPresentationModel",
},
["mention-failure"]={
["user-locators"]={
{
"MediaWiki\\Extension\\Notifications\\UserLocator::locateEventAgent",},},
canNotifyAgent=true,
category="mention-failure",
bundle={
web=true,
expandable=true,
},
group="negative",
section="alert",
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoMentionStatusPresentationModel",
},
["mention-failure-too-many"]={
["user-locators"]={
{
"MediaWiki\\Extension\\Notifications\\UserLocator::locateEventAgent",},},
canNotifyAgent=true,
category="mention-failure",
group="negative",
section="alert",
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoMentionStatusPresentationModel",
},
["mention-success"]={
["user-locators"]={
{
"MediaWiki\\Extension\\Notifications\\UserLocator::locateEventAgent",},},
canNotifyAgent=true,
category="mention-success",
bundle={
web=true,
expandable=true,
},
group="positive",
section="message",
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoMentionStatusPresentationModel",
},
["user-rights"]={
["user-locators"]={
{
"MediaWiki\\Extension\\Notifications\\UserLocator::locateFromEventExtra",{
"user",},},},
category="user-rights",
group="neutral",
section="alert",
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoUserRightsPresentationModel",
},
emailuser={
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoEmailUserPresentationModel",
["user-locators"]={
{
"MediaWiki\\Extension\\Notifications\\UserLocator::locateFromEventExtra",{
"to-user-id",},},},
category="emailuser",
group="neutral",
section="alert",
},
foreign={
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoForeignPresentationModel",
["user-locators"]={
"MediaWiki\\Extension\\Notifications\\UserLocator::locateEventAgent",},
category="foreign",
group="positive",
section="alert",
},
["thank-you-edit"]={
["user-locators"]={
"MediaWiki\\Extension\\Notifications\\UserLocator::locateEventAgent",},
canNotifyAgent=true,
category="thank-you-edit",
group="positive",
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoEditThresholdPresentationModel",
section="message",
},
["article-reminder"]={
["user-locators"]={
"MediaWiki\\Extension\\Notifications\\UserLocator::locateEventAgent",},
canNotifyAgent=true,
category="article-reminder",
group="positive",
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoArticleReminderPresentationModel",
section="message",
},
["api-alert"]={
["user-locators"]={
{
"MediaWiki\\Extension\\Notifications\\UserLocator::locateFromEventExtra",{
"recipients",},},},
canNotifyAgent=true,
category="api-triggered",
group="neutral",
section="alert",
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoManualPresentationModel",
},
["api-notice"]={
["user-locators"]={
{
"MediaWiki\\Extension\\Notifications\\UserLocator::locateFromEventExtra",{
"recipients",},},},
canNotifyAgent=true,
category="api-triggered",
group="neutral",
section="message",
["presentation-model"]="MediaWiki\\Extension\\Notifications\\Formatters\\EchoManualPresentationModel",
},
},
merge_strategy="array_plus_2d",
},
EchoCacheVersion={
value="1.12",
},
AllowArticleReminderNotification={
value=false,
description="This is a feature flag to the Article Reminder notification",
},
EchoMaxMentionsInEditSummary={
value=0,
description="Maximum nubmer of users that will be notified that they were linked from an edit summary or 0 for no notifications",
},
EchoPollForUpdates={
value=0,
description="This is the polling rate i.e. the time after which we check for notifications count on the client side. It also controls whether notification count will be displayed in browser title. If polling rate is 0 this means polling is disabled and notification count is also not shown in browser title",
},
EchoWatchlistNotifications={
value=false,
description="Feature flag to enable Echo notifications whenever a page on a user's watchlist is changed, replacing the built-in preference to send emails in that circumstance.",
},
EchoWatchlistEmailOncePerPage={
value=true,
description="Whether to send email notifications each time a watched page is edited (if false) or only the first time the page is changed before being visited again by the user (if true)",
},
EchoEnableApiEvents={
value=false,
description="Whether to enable the API for creating custom Echo events",
},
EchoEnablePush={
value=false,
description="Whether to enable push notifications",
},
EchoPushServiceBaseUrl={
value=false,
description="Request endpoint URL for the push notification service",
},
EchoPushMaxSubscriptionsPerUser={
value=0,
description="Maximum number of push subscriptions that may be stored in the DB at any given time for a single central user ID.",
},
},
ServiceWiringFiles={
"ServiceWiring.php",},
ConfigRegistry={
Echo="GlobalVarConfig::newInstance",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Echo",
},
EditAccount={
name="EditAccount",
version="1.3.5",
author={
"Łukasz Garczewski","Jack Phoenix","WikiTeq",},
url="https://www.mediawiki.org/wiki/Extension:EditAccount",
descriptionmsg="editaccount-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.36.0",
},
["license-name"]="GPL-2.0-or-later",
GroupPermissions={
["*"]={
editaccount=false,
},
staff={
editaccount=true,
},
},
AvailableRights={
"editaccount",},
SpecialPages={
CloseAccount={
class="CloseAccount",
services={
"UserGroupManager","UserNameUtils",},
},
EditAccount={
class="EditAccount",
services={
"PasswordFactory","UserNameUtils","UserOptionsManager","MainWANObjectCache",},
},
},
LogTypes={
"editaccnt",},
LogRestrictions={
editaccnt="editaccount",
},
LogActionsHandlers={
["editaccnt/*"]="LogFormatter",
},
ExtensionMessagesFiles={
EditAccountAliases="EditAccount.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EditAccount",
},
EditNotify={
name="EditNotify",
version="1.1",
author={
"Abhinand",},
url="https://www.mediawiki.org/wiki/Extension:EditNotify",
descriptionmsg="editnotify-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.36.0",
extensions={
Echo="*",
},
},
config={
EditNotifyEnableFoo=true,
EditNotifyAlerts={
},
},
ExtensionMessagesFiles={
EditNotifyAlias="EditNotify.i18n.alias.php",
},
Hooks={
BeforeCreateEchoEvent="EditNotifyHooks::onBeforeCreateEchoEvent",
EchoGetDefaultNotifiedUsers="EditNotifyHooks::onEchoGetDefaultNotifiedUsers",
MultiContentSave="EditNotifyHooks::onMultiContentSave",
PageSaveComplete="EditNotifyHooks::onPageSaveComplete",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EditNotify",
},
EditSimilar={
name="EditSimilar",
version="1.27",
author={
"Bartek Łapiński","Łukasz Garczewski",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:EditSimilar",
descriptionmsg="editsimilar-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
config={
EditSimilarMaxResultsPool={
description="The maximum pool of results to choose randomly from",
value=50,
},
EditSimilarMaxResultsToDisplay={
description="Maximum number of chosen results to display",
value=3,
},
EditSimilarCounterValue={
description="Specifies per which number of edits show the results' message (defaults to 1, which means that every time results are found the message is shown)",
value=1,
},
EditSimilarAlwaysShowThanks={
description="Whether to thank for an edit even on no results",
value=false,
},
},
Hooks={
OutputPageBeforeHTML="EditSimilarHooks::onOutputPageBeforeHTML",
PageSaveComplete="EditSimilarHooks::onPageSaveComplete",
GetPreferences="EditSimilarHooks::onGetPreferences",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EditSimilar",
},
EditSubpages={
name="EditSubpages",
version="3.5.0",
author={
"&lt;span class=\"plainlinks\"&gt;[http://strategywiki.org/wiki/User:Ryan_Schmidt Ryan Schmidt]&lt;/span&gt;","&lt;span class=\"plainlinks\"&gt;[http://strategywiki.org/wiki/User:Prod Prod]&lt;/span&gt;",},
["license-name"]="GPL-2.0-only",
url="https://www.mediawiki.org/wiki/Extension:EditSubpages",
descriptionmsg="editsubpages-desc",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
config={
EditSubpagesDefaultFlags="+scte-buinrw",
},
Hooks={
getUserPermissionsErrors="ExtEditSubpages::editSubpages",
},
GroupPermissions={
["*"]={
edit=true,
createpage=true,
createtalk=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EditSubpages",
},
EditUser={
name="EditUser",
namemsg="edituser-extensionname",
version="1.9.0",
author={
"Ryan Schmidt","Paladox",},
requires={
MediaWiki="&gt;= 1.32.0",
},
url="https://www.mediawiki.org/wiki/Extension:EditUser",
descriptionmsg="edituser-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
GroupPermissions={
bureaucrat={
edituser=true,
},
sysop={
["edituser-exempt"]=true,
},
},
AvailableRights={
"edituser","edituser-exempt",},
ExtensionMessagesFiles={
EditUserAliases="EditUser.alias.php",
},
SpecialPages={
EditUser="EditUser",
},
config={
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EditUser",
},
Editcount={
name="Editcount",
author={
"Ævar Arnfjörð Bjarmason","[[mw:User:Evelyn Marie|Evelyn Marie]]",},
url="https://www.mediawiki.org/wiki/Extension:Editcount",
descriptionmsg="editcount-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.36.0",
},
SpecialPages={
Editcount="Editcount",
},
ExtensionMessagesFiles={
EditcountAliases="Editcount.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Editcount",
},
EditcountAdditions={
name="EditcountAdditions",
version="0.4",
author={
"Jack Phoenix",},
["license-name"]="CC0-1.0",
url="https://www.mediawiki.org/wiki/Extension:EditcountAdditions",
descriptionmsg="editcountadditions-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
GetPreferences="EditcountAdditions::onGetPreferences",
PageSaveComplete="EditcountAdditions::onPageSaveComplete",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EditcountAdditions",
},
Elastica={
name="Elastica",
version="6.2.0",
author={
"Nik Everett","Chad Horohoe",},
url="https://www.mediawiki.org/wiki/Extension:Elastica",
descriptionmsg="elastica-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
platform={
["ext-curl"]="*",
},
},
composer="mediawiki/elastica",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Elastica",
},
ElectronPdfService={
name="ElectronPdfService",
author={
"[https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes Wikimedia Deutschland Technical Wishes Team]","Tobias Gritschacher","Addshore","Christoph Jauera",},
url="https://www.mediawiki.org/wiki/Extension:ElectronPdfService",
descriptionmsg="electronpdfservice-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
config={
ElectronPdfServiceRESTbaseURL={
value="/api/rest_v1/page/pdf/",
},
},
ExtensionMessagesFiles={
ElectronPdfServiceAlias="ElectronPdfService.i18n.alias.php",
},
Hooks={
SidebarBeforeOutput="main",
BeforePageDisplay="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\ElectronPdfService\\Hooks",
},
},
SpecialPages={
DownloadAsPdf="MediaWiki\\Extension\\ElectronPdfService\\Specials\\SpecialDownloadAsPdf",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ElectronPdfService",
},
EmailAuth={
name="EmailAuth",
version="0.1.0",
author={
"Tisza Gergő",},
url="https://www.mediawiki.org/wiki/Extension:EmailAuth",
descriptionmsg="emailauth-desc",
["license-name"]="GPL-2.0-or-later",
type="access",
requires={
MediaWiki="&gt;= 1.41.0",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\EmailAuth\\Hooks",
},
},
Hooks={
AuthChangeFormFields="main",
},
AuthManagerAutoConfig={
secondaryauth={
["MediaWiki\\Extension\\EmailAuth\\EmailAuthSecondaryAuthenticationProvider"]={
class="MediaWiki\\Extension\\EmailAuth\\EmailAuthSecondaryAuthenticationProvider",
sort=50,
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EmailAuth",
},
Email_Authorization={
name="Email Authorization",
version="3.0",
author={
"[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]","[https://www.mediawiki.org/wiki/User:Matthew-a-thompson Mint Thompson]",},
url="https://www.mediawiki.org/wiki/Extension:Email_Authorization",
descriptionmsg="emailauthorization-desc",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.35.3",
extensions={
PluggableAuth="*",
},
},
type="other",
ServiceWiringFiles={
"includes/ServiceWiring.php",},
SpecialPages={
EmailAuthorizationConfig={
class="MediaWiki\\Extension\\EmailAuthorization\\EmailAuthorizationConfig",
services={
"EmailAuthorizationStore",},
},
EmailAuthorizationRequest={
class="MediaWiki\\Extension\\EmailAuthorization\\EmailAuthorizationRequest",
services={
"EmailAuthorizationStore","MainConfig",},
},
EmailAuthorizationApprove={
class="MediaWiki\\Extension\\EmailAuthorization\\EmailAuthorizationApprove",
services={
"EmailAuthorizationStore",},
},
},
ExtensionMessagesFiles={
EmailAuthorizationAlias="includes/EmailAuthorization.alias.php",
},
APIModules={
["emailauthorization-getall"]={
class="MediaWiki\\Extension\\EmailAuthorization\\ApiEmailAuthorizationUsers",
services={
"EmailAuthorizationStore","EmailAuthorizationService","ParserFactory","UserFactory",},
},
["emailauthorization-getauthorized"]={
class="MediaWiki\\Extension\\EmailAuthorization\\ApiEmailAuthorizationAuthorized",
services={
"EmailAuthorizationStore","ParserFactory",},
},
},
HookHandlers={
schema={
class="MediaWiki\\Extension\\EmailAuthorization\\SchemaHooks",
},
main={
class="MediaWiki\\Extension\\EmailAuthorization\\MainHooks",
services={
"MainConfig","EmailAuthorizationService","UserFactory",},
},
},
Hooks={
LoadExtensionSchemaUpdates="schema",
SpecialPage_initList="main",
PluggableAuthUserAuthorization="main",
BeforeCreateEchoEvent="MediaWiki\\Extension\\EmailAuthorization\\LegacyHooks::onBeforeCreateEchoEvent",
},
config={
EmailAuthorization_EnableRequests={
value=false,
},
EmailAuthorization_RequestFields={
value={
},
},
EmailAuthorization_AuthorizedGroups={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EmailAuthorization",
},
EmailCapture={
name="EmailCapture",
version="0.5.0",
author="Trevor Parscal",
url="https://www.mediawiki.org/wiki/Extension:EmailCapture",
descriptionmsg="emailcapture-desc",
type="other",
requires={
MediaWiki="&gt;= 1.36.0",
},
APIModules={
emailcapture="ApiEmailCapture",
},
SpecialPages={
EmailCapture="SpecialEmailCapture",
},
ExtensionMessagesFiles={
EmailCaptureAlias="EmailCapture.alias.php",
},
Hooks={
LoadExtensionSchemaUpdates="EmailCaptureHooks::loadExtensionSchemaUpdates",
},
config={
EmailCaptureSendAutoResponse={
value=true,
},
EmailCaptureAutoResponse={
value={
from=nil,
["from-name"]=nil,
["subject-msg"]="emailcapture-response-subject",
["body-msg"]="emailcapture-response-body",
["reply-to"]=nil,
["content-type"]=nil,
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EmailCapture",
},
EmailDiff={
name="EmailDiff",
type="other",
author={
"Greg Sabino Mullane",},
version="1.8",
url="https://www.mediawiki.org/wiki/Extension:EmailDiff",
descriptionmsg="emaildiff-desc",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
SendNotificationEmail="EmailDiff::SendNotificationEmailDiff",
GetPreferences="EmailDiff::SetEmailDiffPref",
},
config={
EmailDiffCommand="/usr/bin/diff -u OLDFILE NEWFILE | /usr/bin/tail --lines=+3 &gt; DIFFFILE",
EmailDiffSubjectSuffix=" (diff)",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EmailDiff",
},
EncryptedUploads={
name="EncryptedUploads",
version="0.0.2",
author={
"Alexey",},
url="https://www.mediawiki.org/wiki/Extension:EncryptedUploads",
descriptionmsg="encrypteduploads-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
config={
EncryptedUploadsSendMail=false,
EncryptedUploadsSMWBasedRestrictionsEnabled=false,
EncryptedUploadsSMWFilePropertyName="",
EncryptedUploadsSMWFilePropertyNameDeep=false,
EncryptedUploadsSMWTargetPropertiesNames={
},
},
Hooks={
UploadComplete={
"EncryptedUploads\\EncryptedUploadsHooks::onUploadComplete",},
["UploadForm:initial"]={
"EncryptedUploads\\EncryptedUploadsHooks::onUploadFormInitial",},
["UploadForm:BeforeProcessing"]={
"EncryptedUploads\\EncryptedUploadsHooks::onUploadFormBeforeProcessing",},
LoadExtensionSchemaUpdates={
"EncryptedUploads\\EncryptedUploadsHooks::onLoadExtensionSchemaUpdates",},
ArticleDeleteComplete={
"EncryptedUploads\\EncryptedUploadsHooks::onArticleDeleteComplete",},
FileUpload={
"EncryptedUploads\\EncryptedUploadsHooks::onFileUpload",},
ImageOpenShowImageInlineBefore={
"EncryptedUploads\\EncryptedUploadsHooks::onImageOpenShowImageInlineBefore",},
APIAfterExecute={
"EncryptedUploads\\EncryptedUploadsHooks::onAPIAfterExecute",},
BeforePageDisplay={
"EncryptedUploads\\EncryptedUploadsHooks::onBeforePageDisplay",},
ParserFirstCallInit={
"EncryptedUploads\\EncryptedUploadsHooks::onParserFirstCallInit",},
},
ExtensionMessagesFiles={
EncryptedUploadsMagic="EncryptedUploads.i18n.magic.php",
},
Actions={
decrypt="EncryptedUploads\\EncryptedActionDecrypt",
},
AvailableRights={
"read-encrypted-files",},
GroupPermissions={
sysop={
["read-encrypted-files"]=true,
},
},
composer="wikiworks/encrypted-uploads",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EncryptedUploads",
},
EnhancedStandardUIs={
name="EnhancedStandardUIs",
version="2.0.0-alpha",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://www.hallowelt.com",
descriptionmsg="enhanced-standard-uis-desc",
["license-name"]="GPL-3.0-only",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
OOJSPlus="&gt;= 2.0.0",
},
},
attributes={
EnhancedStandardUIs={
HistoryPagePlugins={
},
AllPagesPluginModules={
},
FilelistPluginModules={
},
},
},
ExtensionMessagesFiles={
EnhancedAllPagesAlias="languages/EnhancedAllPages.i18n.alias.php",
EnhancedFilelist="languages/EnhancedFilelist.i18n.alias.php",
},
SpecialPages={
EnhancedAllPages="MediaWiki\\Extension\\EnhancedStandardUIs\\Special\\EnhancedAllPages",
EnhancedFilelist="MediaWiki\\Extension\\EnhancedStandardUIs\\Special\\EnhancedFilelist",
},
config={
EnhancedUIsVersionHistoryToolbarOffset={
value=0,
public=true,
},
EnhancedUIsAllPagesPaginatorOffset={
value=0,
public=true,
},
EnhancedUIsAllPagesOverride={
value=false,
},
EnhancedUIsExtendedFilelistOverride={
value=false,
},
},
Hooks={
GetPreferences="userpreference",
MWStakeCommonWebAPIsQueryStoreResult={
"addTitleWatchInfo","addFilePath",},
SpecialPage_initList="special-pages",
MWStakeCommonUIRegisterSkinSlotComponents="registerGlobalActions",
},
HookHandlers={
userpreference={
class="\\MediaWiki\\Extension\\EnhancedStandardUIs\\HookHandler\\UserPreference",
},
addTitleWatchInfo={
class="\\MediaWiki\\Extension\\EnhancedStandardUIs\\HookHandler\\AddTitleWatchInfo",
services={
"WatchlistManager","TitleFactory",},
},
addFilePath={
class="\\MediaWiki\\Extension\\EnhancedStandardUIs\\HookHandler\\AddFileImagePath",
services={
"TitleFactory","RepoGroup",},
},
["special-pages"]={
class="MediaWiki\\Extension\\EnhancedStandardUIs\\HookHandler\\OverwriteSpecialPages",
services={
"MainConfig",},
},
registerGlobalActions={
class="MediaWiki\\Extension\\EnhancedStandardUIs\\HookHandler\\RegisterGlobalActions",
},
},
DefaultUserOptions={
["history-show-revision"]=1,
["history-show-author"]=1,
["history-show-diff"]=1,
["history-show-size"]=0,
["history-show-summary"]=1,
["history-show-tags"]=0,
["allpages-show-talk"]=0,
["allpages-show-non-content"]=0,
["allpages-show-redirect"]=1,
["filelist-show-preview"]=1,
["filelist-show-title"]=1,
["filelist-show-author"]=1,
["filelist-show-formatted_ts"]=1,
["filelist-show-file_extension"]=0,
["filelist-show-file_size"]=0,
["filelist-show-categories"]=1,
["filelist-show-comment"]=0,
},
Actions={
history="MediaWiki\\Extension\\EnhancedStandardUIs\\Action\\EnhancedHistoryAction",
},
RestRoutes={
{
path="/standarduis/file-metadata/{filename}",
class="MediaWiki\\Extension\\EnhancedStandardUIs\\Rest\\GetMetadata",
services={
"TitleFactory","RepoGroup",},
},},
composer="mediawiki/enhanced-standard-uis",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EnhancedStandardUIs",
},
EnhancedUpload={
name="EnhancedUpload",
version="3.0.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]","Miriam Schlindwein","Patric Wirth",},
url="https://en.wiki.bluespice.com/wiki/Reference:EnhancedUpload",
descriptionmsg="enhancedupload-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
OOJSPlus="&gt;= 2.0.0",
VisualEditor="*",
},
},
callback="mwsInitComponents",
ServiceWiringFiles={
"includes/ServiceWiring.php",},
attributes={
BlueSpiceFoundation={
ConfigDefinitionRegistry={
EnhancedUploadDragDropImagesAlignment="\\MediaWiki\\Extension\\EnhancedUpload\\ConfigDefinition\\DragDropImagesAlignment::getInstance",
EnhancedUploadDragDropImagesType="\\MediaWiki\\Extension\\EnhancedUpload\\ConfigDefinition\\DragDropImagesType::getInstance",
EnhancedUploadDragDropImagesHeight="\\MediaWiki\\Extension\\EnhancedUpload\\ConfigDefinition\\DragDropImagesHeight::getInstance",
EnhancedUploadDragDropImagesWidth="\\MediaWiki\\Extension\\EnhancedUpload\\ConfigDefinition\\DragDropImagesWidth::getInstance",
EnhancedUploadAllowMismatchedMimeTypes="\\MediaWiki\\Extension\\EnhancedUpload\\ConfigDefinition\\AllowMismatchedMimeTypes::getInstance",
},
},
EnhancedUpload={
UploadFormPluginModules={
},
},
VisualEditor={
PluginModules={
"ext.enhancedUpload.attachments.visualEditor",},
},
ContentDroplets={
Droplets={
attachment={
class="\\MediaWiki\\Extension\\EnhancedUpload\\ContentDroplets\\AttachmentDroplet",
},
},
},
EnhancedStandardUIs={
FilelistPluginModules={
"ext.enhancedUpload.filelist",},
},
},
ExtensionMessagesFiles={
EnhancedUploadAlias="languages/EnhancedUpload.i18n.alias.php",
},
SpecialPages={
EnhancedUpload="MediaWiki\\Extension\\EnhancedUpload\\Special\\EnhancedUpload",
},
Hooks={
ParserFirstCallInit="tag",
MimeMagicImproveFromExtension="addMimeType",
BeforePageDisplay="addModules",
BlueSpiceDiscoveryTemplateDataProviderAfterInit="discovery-skin",
["SkinTemplateNavigation::Universal"]="addContentActions",
SpecialPage_initList="special-upload",
},
HookHandlers={
tag={
class="\\MediaWiki\\Extension\\EnhancedUpload\\HookHandler\\Tag",
services={
"TitleFactory",},
},
addModules={
class="MediaWiki\\Extension\\EnhancedUpload\\Hook\\BeforePageDisplay\\AddModules",
},
addMimeType={
class="MediaWiki\\Extension\\EnhancedUpload\\HookHandler\\AddMimeType",
services={
"MainConfig",},
},
["discovery-skin"]={
class="MediaWiki\\Extension\\EnhancedUpload\\HookHandler\\DiscoverySkin",
},
addContentActions={
class="MediaWiki\\Extension\\EnhancedUpload\\HookHandler\\AddContentActions",
services={
"PermissionManager",},
},
["special-upload"]={
class="MediaWiki\\Extension\\EnhancedUpload\\Hook\\SpecialPage_initList\\OverwriteSpecialUpload",
},
},
RestRoutes={
{
path="/enhancedupload/addattachments/{pageId}/{counter}",
method="POST",
class="\\MediaWiki\\Extension\\EnhancedUpload\\Rest\\SetAttachments",
services={
"EnhancedUploadAttachmentTagModifier","TitleFactory","PermissionManager",},
},{
path="/enhancedupload/removeattachments/{pageId}/{counter}",
method="POST",
class="\\MediaWiki\\Extension\\EnhancedUpload\\Rest\\RemoveAttachments",
services={
"EnhancedUploadAttachmentTagModifier","TitleFactory","PermissionManager",},
},},
QUnitTestModule={
localBasePath="",
remoteExtPath="EnhancedUpload",
scripts={
"tests/qunit/ext.enhancedUpload.paramsProcessor.test.js",},
dependencies={
"ext.enhancedUpload.paramsProcessor",},
},
config={
EnhancedUploadOverrideStandardUpload={
value=false,
},
EnhancedUploadDragDropImagesAlignment={
value="right",
public=true,
},
EnhancedUploadDragDropImagesType={
value="thumb",
public=true,
},
EnhancedUploadDragDropImagesHeight={
value="auto",
public=true,
},
EnhancedUploadDragDropImagesWidth={
value="300",
public=true,
},
EnhancedUploadAllowMismatchedMimeTypes={
value=false,
public=true,
},
},
composer="mediawiki/enhanced-upload",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EnhancedUpload",
},
EntitySchema={
name="EntitySchema",
author={
"The Wikidata team",},
url="https://www.mediawiki.org/wiki/Extension:EntitySchema",
descriptionmsg="entityschema-desc",
["license-name"]="GPL-2.0-or-later",
type="wikibase",
requires={
MediaWiki="&gt;= 1.42.0",
},
ExtensionMessagesFiles={
EntitySchemaAlias="EntitySchema.i18n.alias.php",
},
HookHandlers={
PageHistoryLineEnding={
class="\\EntitySchema\\MediaWiki\\Hooks\\PageHistoryLineEndingHandler",
services={
"EntitySchema.EntitySchemaIsRepo",},
optional_services={
"LinkRenderer","PermissionManager","RevisionStore",},
},
HtmlPageLinkRendererEnd={
class="\\EntitySchema\\MediaWiki\\Hooks\\HtmlPageLinkRendererEndHookHandler",
factory="\\EntitySchema\\MediaWiki\\Hooks\\HtmlPageLinkRendererEndHookHandler::factory",
services={
"LanguageFactory","EntitySchema.EntitySchemaIsRepo",},
optional_services={
"EntitySchema.LabelLookup",},
},
WikibaseClientDataTypes={
class="\\EntitySchema\\Wikibase\\Hooks\\WikibaseClientDataTypesHandler",
services={
"EntitySchema.FeatureConfiguration",},
},
WikibaseRepoDataTypes={
class="\\EntitySchema\\Wikibase\\Hooks\\WikibaseRepoDataTypesHandler",
services={
"LinkRenderer","TitleFactory","EntitySchema.EntitySchemaIsRepo",},
optional_services={
"WikibaseRepo.LanguageNameLookupFactory","WikibaseRepo.LocalEntitySource","EntitySchema.EntitySchemaExistsValidator","EntitySchema.FeatureConfiguration","EntitySchema.LabelLookup",},
},
WikibaseRepoEntitySearchHelperCallbacks={
class="\\EntitySchema\\Wikibase\\Hooks\\WikibaseRepoEntitySearchHelperCallbacksHandler",
services={
"EntitySchema.EntitySchemaIsRepo",},
optional_services={
"EntitySchema.EntitySchemaSearchHelperFactory",},
},
WikibaseRepoOnParserOutputUpdaterConstruction={
class="\\EntitySchema\\Wikibase\\Hooks\\ParserOutputUpdaterConstructionHandler",
services={
"EntitySchema.EntitySchemaIsRepo",},
optional_services={
"WikibaseRepo.PropertyDataTypeLookup",},
},
AddConceptLinkToSidebar={
class="\\EntitySchema\\MediaWiki\\Hooks\\SidebarHookHandler",
services={
"EntitySchema.EntitySchemaIsRepo",},
optional_services={
"WikibaseRepo.LocalEntitySource",},
},
TitleGetRestrictionTypes={
class="\\EntitySchema\\MediaWiki\\Hooks\\TitleGetRestrictionTypesHookHandler",
services={
"EntitySchema.EntitySchemaIsRepo",},
},
ImportHandleRevisionXMLTag={
class="\\EntitySchema\\MediaWiki\\Hooks\\ImportHandleRevisionXMLTagHookHandler",
},
ContentModelCanBeUsedOn={
class="\\EntitySchema\\MediaWiki\\Hooks\\ContentModelCanBeUsedOnHookHandler",
services={
"EntitySchema.EntitySchemaIsRepo",},
},
ExtensionTypes={
class="\\EntitySchema\\MediaWiki\\Hooks\\ExtensionTypesHookHandler",
},
BeforeDisplayNoArticleText={
class="\\EntitySchema\\MediaWiki\\Hooks\\BeforeDisplayNoArticleTextHookHandler",
services={
"EntitySchema.EntitySchemaIsRepo",},
},
FormatAutocomments={
class="\\EntitySchema\\MediaWiki\\Hooks\\FormatAutocommentsHookHandler",
services={
"EntitySchema.AutocommentFormatter","EntitySchema.EntitySchemaIsRepo",},
},
LoadExtensionSchemaUpdates={
class="\\EntitySchema\\MediaWiki\\Hooks\\LoadExtensionSchemaUpdatesHookHandler",
},
SpecialPageInitList={
class="EntitySchema\\MediaWiki\\Hooks\\SpecialPageInitListHookHandler",
services={
"EntitySchema.EntitySchemaIsRepo",},
},
GetContentModels={
class="EntitySchema\\MediaWiki\\Hooks\\GetContentModelsHookHandler",
services={
"EntitySchema.EntitySchemaIsRepo",},
},
ContentHandlerForModelID={
class="EntitySchema\\MediaWiki\\Hooks\\ContentHandlerForModelIDHookHandler",
services={
"ContentHandlerFactory","EntitySchema.EntitySchemaIsRepo",},
},
ResourceLoaderRegisterModules={
class="EntitySchema\\MediaWiki\\Hooks\\ResourceLoaderRegisterModulesHookHandler",
services={
"EntitySchema.EntitySchemaIsRepo",},
},
EntitySchemaHooks={
class="EntitySchema\\MediaWiki\\EntitySchemaHooks",
services={
"EntitySchema.EntitySchemaIsRepo",},
},
NamespaceRegistrationHandler={
class="EntitySchema\\MediaWiki\\Hooks\\NamespaceRegistrationHandler",
},
},
QUnitTestModule={
localBasePath="",
remoteExtPath="EntitySchema",
packageFiles={
"tests/qunit/index.js","tests/qunit/experts/EntitySchema.tests.js",},
dependencies={
"mediawiki.widgets","oojs-ui-core","oojs-ui-widgets","oojs-ui","vue","vuex","wikibase.datamodel","ext.EntitySchema.experts.EntitySchema","test.WikibaseRepository",},
},
Hooks={
["SkinTemplateNavigation::Universal"]="EntitySchemaHooks",
LoadExtensionSchemaUpdates="LoadExtensionSchemaUpdates",
ExtensionTypes="ExtensionTypes",
BeforeDisplayNoArticleText="BeforeDisplayNoArticleText",
PageHistoryLineEnding="PageHistoryLineEnding",
HtmlPageLinkRendererEnd="HtmlPageLinkRendererEnd",
FormatAutocomments="FormatAutocomments",
ContentModelCanBeUsedOn="ContentModelCanBeUsedOn",
ImportHandleRevisionXMLTag="ImportHandleRevisionXMLTag",
TitleGetRestrictionTypes="TitleGetRestrictionTypes",
CanonicalNamespaces="NamespaceRegistrationHandler",
WikibaseRepoEntitySearchHelperCallbacks="WikibaseRepoEntitySearchHelperCallbacks",
WikibaseRepoDataTypes="WikibaseRepoDataTypes",
WikibaseRepoOnParserOutputUpdaterConstruction="WikibaseRepoOnParserOutputUpdaterConstruction",
SidebarBeforeOutput="AddConceptLinkToSidebar",
WikibaseClientDataTypes="WikibaseClientDataTypes",
SpecialPage_initList="SpecialPageInitList",
GetContentModels="GetContentModels",
ContentHandlerForModelID="ContentHandlerForModelID",
ResourceLoaderRegisterModules="ResourceLoaderRegisterModules",
},
namespaces={
{
id=640,
constant="NS_ENTITYSCHEMA_JSON",
name="EntitySchema",
subpages=false,
content=true,
defaultcontentmodel="EntitySchema",
movable=false,
conditional=true,
},{
id=641,
constant="NS_ENTITYSCHEMA_JSON_TALK",
name="EntitySchema_talk",
subpages=true,
content=false,
defaultcontentmodel="wikitext",
conditional=true,
},},
config={
EntitySchemaIsRepo={
value=true,
description="Set to indicate that this wiki is a WikibaseRepo.",
public=true,
},
EntitySchemaSchemaTextMaxSizeBytes={
value=50000,
description="Max length of the Schema text in bytes",
public=true,
},
EntitySchemaNameBadgeMaxSizeChars={
value=250,
description="Max length of the label description or combined aliases in characters",
public=true,
},
EntitySchemaShExSimpleUrl={
value=nil,
description="The URL for a shex-simple installation. Users are sent here to check entities against schema, with a schemaURL=… url query parameter appended to the URL specifying a URL for the schema text.",
public=true,
},
EntitySchemaSkippedIDs={
value={
},
description="A list of integers to skip when generating new IDs. These must be pure integer numbers, _not_ strings starting with an E!",
public=true,
},
EntitySchemaEnableDatatype={
value=false,
description="Enable the upcoming EntitySchema Datatype for Wikibase",
public=false,
},
},
ServiceWiringFiles={
"src/EntitySchema.ServiceWiring.php",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EntitySchema",
},
EtherpadLite={
name="EtherpadLite",
version="1.14.0 20140331",
author={
"Thomas Gries",},
url="https://www.mediawiki.org/wiki/Extension:EtherpadLite",
descriptionmsg="etherpadlite-desc",
type="parserhook",
["license-name"]="MIT AND GPL-2.0-only",
requires={
MediaWiki="&gt;= 1.34.0",
},
TrackingCategories={
"etherpadlite-tracking-category",},
Hooks={
ParserFirstCallInit="EtherpadLite::EtherpadLiteParserInit",
},
config={
EtherpadLiteDefaultPadUrl={
value="http://beta.etherpad.org/p/",
},
EtherpadLiteDefaultWidth={
value="300px",
},
EtherpadLiteDefaultHeight={
value="200px",
},
EtherpadLiteMonospacedFont={
value=false,
},
EtherpadLiteShowControls={
value=true,
},
EtherpadLiteShowLineNumbers={
value=true,
},
EtherpadLiteShowChat={
value=true,
},
EtherpadLiteShowAuthorColors={
value=true,
},
EtherpadLiteUrlWhitelist={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EtherpadLite",
},
EventBus={
name="EventBus",
version="0.5.0",
author={
"Eric Evans","Petr Pchelko","Marko Obrovac",},
url="https://www.mediawiki.org/wiki/Extension:EventBus",
descriptionmsg="eventbus-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42",
},
config={
EnableEventBus={
value="TYPE_NONE",
},
EventServices={
value={
eventbus={
url="http://localhost:3000/v1/events",
timeout=5,
},
eventgate={
url="http://localhost:8192/v1/events",
timeout=5,
},
},
},
EventBusEnableRunJobAPI={
value=true,
},
EventServiceDefault={
value="eventbus",
},
EventBusMaxBatchByteSize={
value=4194304,
},
EventBusStreamNamesMap={
value={
},
},
},
HookHandlers={
mediawiki_page_change={
class="MediaWiki\\Extension\\EventBus\\HookHandlers\\MediaWiki\\PageChangeHooks",
services={
"EventBus.EventBusFactory","MainConfig","GlobalIdGenerator","UserGroupManager","TitleFormatter","WikiPageFactory","UserFactory","RevisionStore","ContentHandlerFactory","RedirectStore","PageStore",},
},
mediawiki_campaign_change={
class="MediaWiki\\Extension\\EventBus\\HookHandlers\\MediaWiki\\CampaignChangeHooks",
},
main={
class="MediaWiki\\Extension\\EventBus\\EventBusHooks",
},
},
Hooks={
PageSaveComplete={
"main","mediawiki_page_change",},
PageMoveComplete={
"main","mediawiki_page_change",},
PageDelete={
"mediawiki_page_change",},
PageDeleteComplete={
"main","mediawiki_page_change",},
PageUndeleteComplete={
"main","mediawiki_page_change",},
ArticleRevisionVisibilitySet={
"main","mediawiki_page_change",},
ArticlePurge="main",
BlockIpComplete="main",
LinksUpdateComplete="main",
ArticleProtectComplete="main",
ChangeTagsAfterUpdateTags="main",
CentralNoticeCampaignChange="mediawiki_campaign_change",
RevisionRecordInserted="main",
},
RestRoutes={
{
path="/eventbus/v0/internal/job/execute",
method="POST",
class="MediaWiki\\Extension\\EventBus\\Rest\\RunSingleJobHandler",
services={
"ReadOnlyMode","MainConfig","JobRunner",},
},},
ServiceWiringFiles={
"ServiceWiring.php",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EventBus",
},
EventLogging={
name="EventLogging",
author={
"Ori Livneh","Timo Tijhof","S Page","Matthew Flaschen",},
url="https://www.mediawiki.org/wiki/Extension:EventLogging",
descriptionmsg="eventlogging-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
},
namespaces={
{
id=470,
constant="NS_SCHEMA",
name="Schema",
defaultcontentmodel="JsonSchema",
protection={
"autoconfirmed",},
conditional=true,
},{
id=471,
constant="NS_SCHEMA_TALK",
name="Schema_talk",
conditional=true,
},},
DefaultUserOptions={
["eventlogging-display-web"]=0,
["eventlogging-display-console"]=0,
},
ContentHandlers={
JsonSchema="MediaWiki\\Extension\\EventLogging\\JsonSchemaContentHandler",
},
ExtensionFunctions={
"MediaWiki\\Extension\\EventLogging\\Hooks::onSetup",},
ExtensionMessagesFiles={
EventLoggingNamespaces="EventLogging.namespaces.php",
},
ForeignResourcesDir="modules/lib",
QUnitTestModule={
localBasePath="",
remoteExtPath="EventLogging",
scripts={
"tests/qunit/ext.eventLogging/BackgroundQueue.test.js","tests/qunit/ext.eventLogging/bucketing.test.js","tests/qunit/ext.eventLogging/id.test.js","tests/qunit/ext.eventLogging/log.test.js","tests/qunit/ext.eventLogging/stream.test.js","tests/qunit/ext.eventLogging/utils.test.js","tests/qunit/ext.eventLogging.debug/debug.test.js",},
dependencies={
"ext.eventLogging","ext.eventLogging.debug",},
},
Hooks={
CanonicalNamespaces="main",
BeforePageDisplay={
"main","jsonschema",},
GetPreferences="main",
CodeEditorGetPageLanguage="MediaWiki\\Extension\\EventLogging\\JsonSchemaHooks::onCodeEditorGetPageLanguage",
EditFilterMergedContent="jsonschema",
MovePageIsValidMove="jsonschema",
["ApiMain::moduleManager"]="jsonschema",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\EventLogging\\Hooks",
},
jsonschema={
class="MediaWiki\\Extension\\EventLogging\\JsonSchemaHooks",
},
},
config={
EventLoggingBaseUri={
value=false,
description="Legacy EventLogging GET URI.",
},
EventLoggingSchemaApiUri={
value="https://meta.wikimedia.org/w/api.php",
},
EventLoggingDBname={
value="metawiki",
},
EventLoggingSchemas={
value={
},
description="Legacy schemas EventLogging will produce. This is a mapping from schema name to on-wiki schema revision, or a $schema URI.  If a $schema URI is set, the event will be passed to mw.eventLog.submit and the event intake service at EventLoggingServiceUri will be used.",
},
EventLoggingServiceUri={
value=false,
description="URI to event intake service.  This should look something like http://localhost:8192/v1/events",
},
EventLoggingStreamNames={
value=false,
description="List of stream names to register for use by EventLogging from wgEventStreams.  If this is false, Event Stream Config will not be used, and EventLogging will produce any stream it is given.",
},
EventLoggingQueueLingerSeconds={
value=30,
description="Number of seconds EventLogging should wait to batch messages before sending them to the intake service.",
},
},
ServiceWiringFiles={
"ServiceWiring.php",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EventLogging",
},
EventSimulator={
name="EventSimulator",
author={
"Tim Starling",},
url="https://www.mediawiki.org/wiki/Extension:EventSimulator",
descriptionmsg="eventsimulator-desc",
["license-name"]="BSD-3-Clause",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EventSimulator",
},
EventStreamConfig={
name="EventStreamConfig",
author={
"Andrew Otto",},
url="https://www.mediawiki.org/wiki/Extension:EventStreamConfig",
descriptionmsg="eventstreamconfig-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
APIModules={
streamconfigs="MediaWiki\\Extension\\EventStreamConfig\\ApiStreamConfigs",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
config={
EventStreams={
value={
},
description="An associative array of stream configs keyed by a either static stream name string, or a regex that matches stream names for which the stream config should be used. Each stream config value must minimally specify its `schema_title` setting.",
},
EventStreamsDefaultSettings={
value={
},
description="Stream config default settings. Any setting here will be set in each entry in EventStreams if it is not set there already.",
},
},
composer="mediawiki/event-stream-config",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/EventStreamConfig",
},
Expressions={
name="Expressions",
namemsg="expressions-extensionname",
type="parserhook",
author={
"[https://mediawiki.org/wiki/User:Xxmarijnw Marijn van Wezel]",},
version="1.5",
url="https://www.mediawiki.org/wiki/Extension:Expressions",
descriptionmsg="expressions-desc",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.27.0",
},
ExtensionMessagesFiles={
ExpressionsMagic="i18n/Expressions.i18n.magic.php",
},
Hooks={
ParserFirstCallInit={
"Expressions\\Expressions::onParserFirstCallInit",},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Expressions",
},
ExtJSBase={
name="ExtJSBase",
version="4.0.0-alpha",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]","Robert Vogel",},
url="https://www.mediawiki.org/wiki/Extension:ExtJSBase",
descriptionmsg="extjsbase-desc",
["license-name"]="GPL-3.0-only",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
config_prefix="egExtJSBase",
config={
Theme={
value="MediaWiki\\Extension\\ExtJSBase\\Theme\\MediaWikiTouch",
public=false,
},
},
ConfigRegistry={
extjsbase="MediaWiki\\Extension\\ExtJSBase\\Config::newInstance",
},
composer="mediawiki/extjs-base",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ExtJSBase",
},
ExtensionDistributor={
name="ExtensionDistributor",
author={
"Tim Starling","Sam Reed","Chad Horohoe","Kunal Mehta",},
url="https://www.mediawiki.org/wiki/Extension:ExtensionDistributor",
descriptionmsg="extensiondistributor-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42",
},
config={
ExtDistAPIConfig={
value=false,
},
ExtDistListFile={
value=false,
},
ExtDistSnapshotRefs={
value={
},
},
ExtDistDefaultSnapshot={
value="master",
},
ExtDistCandidateSnapshot={
value=false,
},
ExtDistGraphiteRenderApi={
value=nil,
},
ExtDistPopularExtList={
value={
},
},
ExtDistPopularSkinList={
value={
},
},
},
ExtensionMessagesFiles={
ExtensionDistributorAliases="ExtensionDistributor.alias.php",
},
APIListModules={
extdistrepos="MediaWiki\\Extension\\ExtensionDistributor\\Api\\ApiListExtDistRepos",
extdistbranches="MediaWiki\\Extension\\ExtensionDistributor\\Api\\ApiListExtDistBranches",
},
Hooks={
APIQuerySiteInfoGeneralInfo="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\ExtensionDistributor\\Hooks",
},
},
SpecialPages={
ExtensionDistributor={
class="MediaWiki\\Extension\\ExtensionDistributor\\Specials\\SpecialExtensionDistributor",
services={
"StatsdDataFactory",},
},
SkinDistributor={
class="MediaWiki\\Extension\\ExtensionDistributor\\Specials\\SpecialSkinDistributor",
services={
"StatsdDataFactory",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ExtensionDistributor",
},
ExternalArticles={
name="ExternalArticles",
version="1.0.0",
author={
"Nathan Perry","Alvinos","Sam Wilson",},
url="https://www.mediawiki.org/wiki/Extension:ExternalArticles",
descriptionmsg="externalarticles-desc",
type="extension",
["license-name"]="GPL-3.0-only",
requires={
MediaWiki="&gt;= 1.32.0",
},
Hooks={
EditFormPreloadText="MediaWiki\\Extension\\ExternalArticles\\Hooks::onEditFormPreloadText",
},
repository="https://gerrit.wikimedia.org/r/p/mediawiki/extensions/ExternalArticles.git",
composer="samwilson/mediawiki-extensions-external-articles",
},
External_Data={
name="External Data",
version="3.4-alpha",
author={
"Yaron Koren","Alexander Mashin","...",},
url="https://www.mediawiki.org/wiki/Extension:External_Data",
descriptionmsg="externaldata-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
SpecialPages={
GetData="EDGetData",
},
ExtensionMessagesFiles={
ExternalDataMagic="ExternalData.i18n.magic.php",
ExternalDataAlias="ExternalData.i18n.alias.php",
},
Hooks={
ParserFirstCallInit="ExternalDataHooks::registerParser",
ScribuntoExternalLibraries="ExternalDataHooks::registerLua",
SoftwareInfo="ExternalDataHooks::onSoftwareInfo",
LoadExtensionSchemaUpdates="ExternalDataHooks::onLoadExtensionSchemaUpdates",
},
JobClasses={
edReparse="EDReparseJob",
},
callback="ExternalDataHooks::onRegistration",
config_prefix="wgExternalData",
config={
Sources={
description="An array of settings for data sources. Index '*' contains global fallbacks",
value={
["*"]={
["min cache seconds"]=3600,
["always use stale cache"]=false,
["throttle key"]="$2nd_lvl_domain$",
["throttle interval"]=0,
replacements={
},
["allowed urls"]={
},
options={
timeout="default",
},
encodings={
"ASCII","UTF-8","Windows-1251","Windows-1252","Windows-1254","KOI8-R","ISO-8859-1",},
params={
},
["param filters"]={
},
verbose=true,
},
},
merge_strategy="array_plus_2d",
},
Verbose={
description="Show an error message if there is no external value",
value=true,
},
Connectors={
description="Rules for choosing EDConnector* class in compatibility mode",
value={
{
{
["__pf"]="get_web_data",
hidden=false,
},"EDConnectorWeb",},{
{
["__pf"]="get_file_data",
directory=true,
["file name"]="/[[\\]?*]/",
hidden=false,
},"EDConnectorDirectoryWalker",},{
{
["__pf"]="get_file_data",
source=true,
["file name"]="/[[\\]?*]/",
hidden=false,
},"EDConnectorDirectoryWalker",},{
{
["__pf"]="get_file_data",
directory=true,
hidden=false,
},"EDConnectorDirectory",},{
{
["__pf"]="get_file_data",
source=true,
["file name"]=true,
hidden=false,
},"EDConnectorDirectory",},{
{
["__pf"]="get_file_data",
hidden=false,
},"EDConnectorFile",},{
{
["__pf"]="get_soap_data",
hidden=false,
},"EDConnectorSoap",},{
{
["__pf"]="get_ldap_data",
hidden=false,
},"EDConnectorLdap",},{
{
["__pf"]="get_db_data",
type="mysql",
prepared=true,
hidden=false,
},"EDConnectorPreparedMysql",},{
{
["__pf"]="get_db_data",
type="postgres",
prepared=true,
hidden=false,
},"EDConnectorPreparedPostgresql",},{
{
["__pf"]="get_db_data",
type="sqlite",
hidden=false,
},"EDConnectorSqlite",},{
{
["__pf"]="get_db_data",
type="odbc",
prepared=true,
hidden=false,
},"EDConnectorPreparedOdbc",},{
{
["__pf"]="get_db_data",
type="odbc",
driver="ODBC Driver 17 for SQL Server",
hidden=false,
},"EDConnectorOdbcMssql",},{
{
["__pf"]="get_db_data",
type="mongodb",
["__exists"]="MongoDB\\Client",
hidden=false,
},"EDConnectorMongodb7",},{
{
["__pf"]="get_db_data",
type="mongodb",
["__exists"]="MongoClient",
hidden=false,
},"EDConnectorMongodb5",},{
{
["__pf"]="get_db_data",
type="postgres",
hidden=false,
},"EDConnectorPostgresql",},{
{
["__pf"]="get_db_data",
hidden=false,
},"EDConnectorSql",},{
{
["__pf"]="get_program_data",
hidden=false,
},"EDConnectorExe",},{
{
["__pf"]="get_inline_data",
hidden=false,
},"EDConnectorInline",},{
{
["__pf"]="get_external_data",
hidden=true,
source=false,
},"EDConnectorDummy",},{
{
["__pf"]="get_external_data",
url=true,
request=false,
},"EDConnectorWeb",},{
{
["__pf"]="get_external_data",
["post data"]=true,
},"EDConnectorWeb",},{
{
["__pf"]="get_external_data",
directory=true,
["file name"]="/[[\\]?*]/",
},"EDConnectorDirectoryWalker",},{
{
["__pf"]="get_external_data",
source=true,
["file name"]="/[[\\]?*]/",
},"EDConnectorDirectoryWalker",},{
{
["__pf"]="get_external_data",
directory=true,
},"EDConnectorDirectory",},{
{
["__pf"]="get_external_data",
source=true,
["file name"]=true,
},"EDConnectorDirectory",},{
{
["__pf"]="get_external_data",
file=true,
},"EDConnectorFile",},{
{
["__pf"]="get_external_data",
source=true,
path=true,
},"EDConnectorFile",},{
{
["__pf"]="get_external_data",
request=true,
},"EDConnectorSoap",},{
{
["__pf"]="get_external_data",
source=true,
requestData=true,
},"EDConnectorSoap",},{
{
["__pf"]="get_external_data",
domain=true,
},"EDConnectorLdap",},{
{
["__pf"]="get_external_data",
source=true,
["base dn"]=true,
},"EDConnectorLdap",},{
{
["__pf"]="get_external_data",
type="mysql",
prepared=true,
},"EDConnectorPreparedMysql",},{
{
["__pf"]="get_external_data",
type="postgres",
prepared=true,
},"EDConnectorPreparedPostgresql",},{
{
["__pf"]="get_external_data",
type="sqlite",
},"EDConnectorSqlite",},{
{
["__pf"]="get_external_data",
type="odbc",
prepared=true,
},"EDConnectorPreparedOdbc",},{
{
["__pf"]="get_external_data",
type="odbc",
driver="ODBC Driver 17 for SQL Server",
},"EDConnectorOdbcMssql",},{
{
["__pf"]="get_external_data",
type="mongodb",
["__exists"]="MongoDB\\Client",
},"EDConnectorMongodb7",},{
{
["__pf"]="get_external_data",
type="mongodb",
["__exists"]="MongoClient",
},"EDConnectorMongodb5",},{
{
["__pf"]="get_external_data",
type="postgres",
},"EDConnectorPostgresql",},{
{
["__pf"]="get_external_data",
from=true,
},"EDConnectorSql",},{
{
["__pf"]="get_external_data",
prepared=true,
},"EDConnectorPreparedMysql",},{
{
["__pf"]="get_external_data",
command=true,
},"EDConnectorExe",},{
{
["__pf"]="get_external_data",
program=true,
},"EDConnectorExe",},{
{
["__pf"]="get_external_data",
text=true,
},"EDConnectorInline",},},
},
IntegratedConnectors={
description="Rules for choosing EDConnector* class in standalone mode",
value={
{
{
["__pf"]=nil,
url=true,
request=false,
},"EDConnectorWeb",},{
{
["__pf"]=nil,
["post data"]=true,
},"EDConnectorWeb",},{
{
["__pf"]=nil,
["file name"]="/[[\\]?*]/",
},"EDConnectorDirectoryWalker",},{
{
["__pf"]=nil,
["file name"]=true,
},"EDConnectorDirectory",},{
{
["__pf"]=nil,
path=true,
},"EDConnectorFile",},{
{
["__pf"]=nil,
request=true,
},"EDConnectorSoap",},{
{
["__pf"]=nil,
requestData=true,
},"EDConnectorSoap",},{
{
["__pf"]=nil,
["base dn"]=true,
},"EDConnectorLdap",},{
{
["__pf"]=nil,
type="mysql",
prepared=true,
},"EDConnectorPreparedMysql",},{
{
["__pf"]=nil,
type="postgres",
prepared=true,
},"EDConnectorPreparedPostgresql",},{
{
["__pf"]=nil,
type="sqlite",
},"EDConnectorSqlite",},{
{
["__pf"]=nil,
type="odbc",
prepared=true,
},"EDConnectorPreparedOdbc",},{
{
["__pf"]=nil,
type="odbc",
driver="ODBC Driver 17 for SQL Server",
},"EDConnectorOdbcMssql",},{
{
["__pf"]=nil,
type="mongodb",
["__exists"]="MongoDB\\Client",
},"EDConnectorMongodb7",},{
{
["__pf"]=nil,
type="mongodb",
["__exists"]="MongoClient",
},"EDConnectorMongodb5",},{
{
["__pf"]=nil,
type="postgres",
},"EDConnectorPostgresql",},{
{
["__pf"]=nil,
from=true,
},"EDConnectorSql",},{
{
["__pf"]=nil,
prepared=true,
},"EDConnectorPreparedMysql",},{
{
["__pf"]=nil,
command=true,
},"EDConnectorExe",},{
{
["__pf"]=nil,
program=true,
},"EDConnectorExe",},{
{
["__pf"]=nil,
text=true,
},"EDConnectorInline",},{
{
["__pf"]=nil,
source=false,
},"EDConnectorDummy",},{
{
["__pf"]=true,
},"EDConnectorDummy",},},
},
Parsers={
description="Rules for choosing EDParser* class",
value={
{
{
["__exists"]={
"PharData","ZipArchive",},
url="/\\.zip$/i",
["archive path"]=true,
},"EDParserZip",},{
{
["__exists"]={
"PharData","ZipArchive",},
["file name"]="/\\.zip$/i",
["archive path"]=true,
},"EDParserZip",},{
{
["__exists"]={
"PharData","ZipArchive",},
path="/\\.zip$/i",
["archive path"]=true,
},"EDParserZip",},{
{
["__exists"]={
"PharData","ZipArchive",},
source="/\\.zip$/i",
["archive path"]=true,
},"EDParserZip",},{
{
["__exists"]={
"PharData","RarArchive",},
url="/\\.rar$/i",
["archive path"]=true,
},"EDParserRar",},{
{
["__exists"]={
"PharData","RarArchive",},
["file name"]="/\\.rar$/i",
["archive path"]=true,
},"EDParserRar",},{
{
["__exists"]={
"PharData","RarArchive",},
path="/\\.rar$/i",
["archive path"]=true,
},"EDParserRar",},{
{
["__exists"]={
"PharData","RarArchive",},
source="/\\.rar$/i",
["archive path"]=true,
},"EDParserRar",},{
{
["__exists"]="PharData",
url="/\\.tar$/i",
["archive path"]=true,
},"EDParserPhar",},{
{
["__exists"]="PharData",
["file name"]="/\\.tar$/i",
["archive path"]=true,
},"EDParserPhar",},{
{
["__exists"]="PharData",
path="/\\.tar$/i",
["archive path"]=true,
},"EDParserPhar",},{
{
["__exists"]="PharData",
source="/\\.tar$/i",
["archive path"]=true,
},"EDParserPhar",},{
{
["__exists"]={
"PharData","gzopen",},
url="/\\.tar\\.gz$/i",
["archive path"]=true,
},"EDParserPhar",},{
{
["__exists"]={
"PharData","gzopen",},
["file name"]="/\\.tar\\.gz$/i",
["archive path"]=true,
},"EDParserPhar",},{
{
["__exists"]={
"PharData","gzopen",},
path="/\\.tar\\.gz$/i",
["archive path"]=true,
},"EDParserPhar",},{
{
["__exists"]={
"PharData","gzopen",},
source="/\\.tar\\.gz$/i",
["archive path"]=true,
},"EDParserPhar",},{
{
["__exists"]={
"PharData","bzopen",},
url="/\\.tar\\.bz2$/i",
["archive path"]=true,
},"EDParserPhar",},{
{
["__exists"]={
"PharData","bzopen",},
["file name"]="/\\.tar\\.bz2$/i",
["archive path"]=true,
},"EDParserPhar",},{
{
["__exists"]={
"PharData","bzopen",},
path="/\\.tar\\.bz2$/i",
["archive path"]=true,
},"EDParserPhar",},{
{
["__exists"]={
"PharData","bzopen",},
source="/\\.tar\\.bz2$/i",
["archive path"]=true,
},"EDParserPhar",},{
{
format="text",
regex=true,
},"EDParserRegex",},{
{
format="auto",
regex=true,
},"EDParserRegex",},{
{
format="text with regex",
},"EDParserRegex",},{
{
format="text",
},"EDParserText",},{
{
format="ini",
},"EDParserIni",},{
{
format="html",
["use xpath"]=true,
},"EDParserHTMLwithXPath",},{
{
format="html with xpath",
},"EDParserHTMLwithXPath",},{
{
format="html with css",
},"EDParserHTMLwithCSS",},{
{
format="html",
["use css"]=true,
},"EDParserHTMLwithCSS",},{
{
format="html",
},"EDParserHTMLwithCSS",},{
{
format="xml",
["use xpath"]=true,
},"EDParserXMLwithXPath",},{
{
format="xml with xpath",
},"EDParserXMLwithXPath",},{
{
format="xml",
},"EDParserXMLsimple",},{
{
format="json",
["use jsonpath"]=true,
},"EDParserJSONwithJSONPath",},{
{
format="json with jsonpath",
},"EDParserJSONwithJSONPath",},{
{
format="json",
},"EDParserJSONsimple",},{
{
format="yaml",
["use jsonpath"]=true,
},"EDParserYAMLwithJSONPath",},{
{
format="yaml with jsonpath",
},"EDParserYAMLwithJSONPath",},{
{
format="yaml",
},"EDParserYAMLsimple",},{
{
format="csv",
},"EDParserCSV",},{
{
format="csv with header",
},"EDParserCSV",},{
{
format="gff",
},"EDParserGFF",},{
{
format="auto",
},"EDParserAuto",},{
{
},"EDParserText",},},
},
AllowGetters={
description="Drop all {{#get_*_data:}} functions and all mw.ext.getExternalData.get*Data() except mw.ext.getExternalData.getExternalData()",
value=true,
},
},
composer="mediawiki/external-data",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ExternalData",
},
ExternalGuidance={
name="ExternalGuidance",
version="1.0.0",
author={
"Santhosh Thottingal","...",},
url="https://www.mediawiki.org/wiki/Extension:ExternalGuidance",
descriptionmsg="externalguidance-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
extensions={
MobileFrontend="&gt;= 2.1.0",
UniversalLanguageSelector="*",
},
},
ExtensionMessagesFiles={
ExternalGuidanceAliases="ExternalGuidance.alias.php",
},
SpecialPages={
ExternalGuidance={
class="MediaWiki\\Extension\\ExternalGuidance\\SpecialExternalGuidance",
services={
"LanguageNameUtils",},
},
},
ConfigRegistry={
ExternalGuidance="GlobalVarConfig::newInstance",
},
config={
ExternalGuidanceMTReferrers={
value={
},
description="Host names of machine translation services",
},
ExternalGuidanceSiteTemplates={
value={
view="//$1.wikipedia.org/wiki/$2",
action="//$1.wikipedia.org/w/index.php?title=$2",
api="//$1.wikipedia.org/w/api.php",
},
description="URL templates for sites corresponding to other languages",
},
ExternalGuidanceDomainCodeMapping={
value={
["be-x-old"]="be-tarask",
bho="bh",
["crh-latn"]="crh",
["en-simple"]="simple",
gsw="als",
lzh="zh-classical",
nan="zh-min-nan",
nb="no",
rup="roa-rup",
sgs="bat-smg",
vro="fiu-vro",
yue="zh-yue",
},
description="Language to domain name mapping",
},
ExternalGuidanceKnownServices={
value={
"Google",},
description="Valid list of service names",
},
ExternalGuidanceEnableContextDetection={
value=true,
description="Enable external context detection in the wiki where this is deployed. If not enabled, the Special:ExternalGuidance will be present, so that users can come from a different wiki where context detection is enabled.",
},
},
Hooks={
BeforePageDisplay="main",
ResourceLoaderGetConfigVars="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\ExternalGuidance\\Hooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ExternalGuidance",
},
ExternalLinkConfirm={
name="ExternalLinkConfirm",
version="1.0",
author={
"[https://www.mediawiki.org/wiki/User:Pastakhov Pavel Astakhov]",},
url="https://www.mediawiki.org/wiki/Extension:ExternalLinkConfirm",
descriptionmsg="externallinkconfirm-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
OutputPageBodyAttributes="ExternalLinkConfirmHooks::onOutputPageBodyAttributes",
BeforePageDisplay="ExternalLinkConfirmHooks::onBeforePageDisplay",
},
config={
ExternalLinkConfirmWhitelist={
value={
},
description="The list of sites that do not require confirmation before visiting",
},
ExternalLinkConfirmTarget={
value={
},
description="Determining what the target will be for the external site",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ExternalLinkConfirm",
},
ExtraLanguageLink={
name="ExtraLanguageLink",
version="1.0",
author={
"This, that and the other",},
url="https://www.mediawiki.org/wiki/Extension:ExtraLanguageLink",
descriptionmsg="extralanguagelink-desc",
type="other",
requires={
MediaWiki="&gt;= 1.32.0",
},
ExtensionMessagesFiles={
ExtraLanguageLinkMagic="ExtraLanguageLink.magic.php",
},
Hooks={
SkinTemplateOutputPageBeforeExec="ExtraLanguageLink::onSkinTemplateOutputPageBeforeExec",
ParserFirstCallInit="ExtraLanguageLink::onParserFirstCallInit",
OutputPageParserOutput="ExtraLanguageLink::onOutputPageParserOutput",
},
config={
ExtraLanguageLinkAllowedPrefixes={
value=false,
},
ExtraLanguageLinkAllowedTitles={
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ExtraLanguageLink",
},
FanBoxes={
name="FanBoxes",
version="3.6.1",
author={
"Aaron Wright","David Pean","Robert Lefkowitz","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:FanBoxes",
descriptionmsg="fanbox-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.3",
},
config={
FanBoxPageDisplay={
comments=true,
},
},
SpecialPages={
FanBoxAjaxUpload="SpecialFanBoxAjaxUpload",
UserBoxes="FanBoxes",
TopUserboxes="TopFanBoxes",
ViewUserBoxes="ViewFanBoxes",
},
namespaces={
{
id=600,
constant="NS_FANTAG",
name="UserBox",
},{
id=601,
constant="NS_FANTAG_TALK",
name="UserBox_talk",
},},
APIModules={
fanboxes="ApiFanBoxes",
},
ExtensionMessagesFiles={
FanBoxesAlias="includes/FanBoxes.alias.php",
FanBoxesNamespaces="includes/FanBoxes.namespaces.php",
},
Hooks={
ParserFirstCallInit={
"UserBoxesHook::onParserFirstCallInit","FanBoxHooks::registerFanTag",},
PageMoveComplete="FanBoxHooks::updateFanBoxTitle",
ArticleDelete="FanBoxHooks::deleteFanBox",
ArticleFromTitle="FanBoxHooks::fantagFromTitle",
DiffTools="FanBoxHooks::onDiffTools",
HistoryTools="FanBoxHooks::onHistoryTools",
ParserBeforeInternalParse="FanBoxHooks::transformFanBoxTags",
ParserBeforePreprocess="FanBoxHooks::transformFanBoxTags",
LoadExtensionSchemaUpdates="FanBoxHooks::onLoadExtensionSchemaUpdates",
},
AvailableRights={
"create-userbox",},
GroupPermissions={
user={
["create-userbox"]=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/FanBoxes",
},
Favorites={
name="Favorites",
version="1.1.3",
author="Jeremy Lemley",
url="https://www.mediawiki.org/wiki/Extension:Favorites",
descriptionmsg="favorites-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.36.0",
},
APIModules={
favorite="ApiFavorite",
},
SpecialPages={
Favoritelist="SpecialFavoritelist",
},
Actions={
favorite="FavoriteAction",
unfavorite="UnfavoriteAction",
},
ExtensionMessagesFiles={
FavoritesAlias="SpecialFavorites.alias.php",
},
Hooks={
BeforePageDisplay="FavoritesHooks::onBeforePageDisplay",
ParserFirstCallInit="FavoritesHooks::onParserFirstCallInit",
TitleMoveComplete="FavoritesHooks::onTitleMoveComplete",
ArticleDeleteComplete="FavoritesHooks::onArticleDeleteComplete",
["SkinTemplateNavigation::Universal"]="FavoritesHooks::onSkinTemplateNavigation__Universal",
LoadExtensionSchemaUpdates="FavoritesHooks::onLoadExtensionSchemaUpdates",
},
config={
FavoritesPersonalURL={
value=false,
},
UseIconFavorite={
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Favorites",
},
FeaturedFeeds={
name="FeaturedFeeds",
author={
"Max Semenik",},
url="https://www.mediawiki.org/wiki/Extension:FeaturedFeeds",
descriptionmsg="ffeed-desc",
type="other",
["license-name"]="WTFPL",
requires={
MediaWiki="&gt;= 1.42",
},
ExtensionMessagesFiles={
FeaturedFeedsAliases="FeaturedFeeds.alias.php",
},
APIModules={
featuredfeed="MediaWiki\\Extension\\FeaturedFeeds\\ApiFeaturedFeeds",
},
Hooks={
BeforePageDisplay="FeaturedFeedsHooks",
PageSaveComplete="FeaturedFeedsHooks",
SidebarBeforeOutput="FeaturedFeedsHooks",
},
HookHandlers={
FeaturedFeedsHooks={
class="MediaWiki\\Extension\\FeaturedFeeds\\FeaturedFeeds",
},
},
config={
DisplayFeedsInSidebar={
value=true,
},
FeaturedFeedsDefaults={
value={
limit=10,
frequency="daily",
inUserLanguage=false,
},
},
FeaturedFeeds={
value={
},
},
},
SpecialPages={
FeedItem={
class="MediaWiki\\Extension\\FeaturedFeeds\\SpecialFeedItem",
services={
"MainWANObjectCache",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/FeaturedFeeds",
},
Figures={
name="Figures",
version="0.0.0",
author={
"Nischayn22","WikiWorks",},
url="https://www.mediawiki.org/wiki/Extension:Figures",
descriptionmsg="figures-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
ParserFirstCallInit="Figures::onParserSetup",
},
ExtensionMessagesFiles={
FiguresMagic="Figures.i18n.magic.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Figures",
},
FileAnnotations={
name="FileAnnotations",
version="0.0.1",
author={
"Mark Holmquist",},
url="https://www.mediawiki.org/wiki/Extension:FileAnnotations",
descriptionmsg="fileannotations-desc",
["license-name"]="GPL-3.0-only",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
namespaces={
{
name="File_annotations",
id=492,
constant="NS_FILE_ANNOTATIONS",
defaultcontentmodel="FileAnnotations",
},{
name="File_annotations_talk",
id=493,
constant="NS_FILE_ANNOTATIONS_TALK",
},},
ContentHandlers={
FileAnnotations="FileAnnotationsContentHandler",
},
APIPropModules={
fileannotations={
class="ApiFileAnnotations",
},
},
Hooks={
BeforePageDisplay="FileAnnotationsHooks::onBeforePageDisplay",
["SkinTemplateNavigation::Universal"]="FileAnnotationsHooks::onSkinTemplateNavigation",
CodeEditorGetPageLanguage="FileAnnotationsHooks::getCodeLanguage",
},
ConfigRegistry={
fileannotations="GlobalVarConfig::newInstance",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/FileAnnotations",
},
FileExporter={
name="FileExporter",
author={
"[https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes Wikimedia Deutschland Technical Wishes Team]","Addshore","Andrew Kostka","Christoph Jauera","Thiemo Kreuz",},
url="https://www.mediawiki.org/wiki/Extension:FileExporter",
namemsg="fileexporter",
descriptionmsg="fileexporter-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
config={
FileExporterTarget={
value=nil,
description="Link to the FileImporter's Special:ImportFile page on the target wiki where files should be exported to. For Wikimedia wikis this is \"https://commons.wikimedia.org/wiki/Special:ImportFile\".",
public=true,
},
},
Hooks={
ChangeTagsAllowedAdd="main",
ChangeTagsListActive="main",
["SkinTemplateNavigation::Universal"]="main",
ListDefinedTags="main",
},
HookHandlers={
main={
class="FileExporter\\FileExporterHooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/FileExporter",
},
FileImporter={
name="FileImporter",
author={
"[https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes Wikimedia Deutschland Technical Wishes Team]","Addshore","Andrew Kostka","Christoph Jauera","Thiemo Kreuz",},
url="https://www.mediawiki.org/wiki/Extension:FileImporter",
namemsg="fileimporter",
descriptionmsg="fileimporter-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.43.0",
},
ExtensionMessagesFiles={
FileImporterAlias="FileImporter.alias.php",
},
SpecialPages={
ImportFile={
class="FileImporter\\SpecialImportFile",
services={
"FileImporterSourceSiteLocator","FileImporterImporter","FileImporterImportPlanFactory","ContentHandlerFactory","StatsdDataFactory","UserOptionsManager","MainConfig",},
},
},
ServiceWiringFiles={
"src/ServiceWiring.php","src/Remote/MediaWiki/SiteWiring.php",},
config={
FileImporterRequiredRight={
value="upload",
public=true,
},
FileImporterInterWikiMap={
value={
},
description="Manually maps host names to multi-hop interwiki prefixes. Deprecated.",
public=true,
},
FileImporterShowInputScreen={
value=false,
description="Whether or not to show the source URL input page.",
public=true,
},
FileImporterSourceSiteServices={
value={
},
public=true,
},
FileImporterCommonsHelperServer={
value="",
description="Location of CommonsHelper2-compatible configuration pages to use, e.g. \"https://www.mediawiki.org\". Set to an empty string to disable.",
public=true,
},
FileImporterWikidataEntityEndpoint={
value="",
description="Location of Wikidata entity endpoint for fetching localized template names, e.g. \"https://www.wikidata.org/wiki/Special:EntityData/\". Set to an empty string to disable.",
public=true,
},
FileImporterWikidataNowCommonsEntity={
value="",
description="Entity ID of the NowCommons template, e.g. \"Q5611625\".",
public=true,
},
FileImporterCommonsHelperBasePageName={
value="Extension:FileImporter/Data/",
description="Base page name of CommonsHelper2-compatible configuration pages to use.",
public=true,
},
FileImporterCommonsHelperHelpPage={
value="",
description="Location of the help page for the CommonsHelper2-compatible configuration page management.",
public=true,
},
FileImporterAccountForSuppressedUsername={
value="FileImporterSuppressed",
public=true,
},
FileImporterCommentForPostImportRevision={
value="Imported with FileImporter from $1",
description="Text used for the edit summary of a post import revision.",
public=true,
},
FileImporterTextForPostImportRevision={
value="&lt;!--This file was moved here using FileImporter from $1--&gt;",
description="Text to add to the imported page's wikitext.",
public=true,
},
FileImporterMaxRevisions={
value=100,
description="Maximum number of revisions (file or text) a file can have in order to be imported.",
public=true,
},
FileImporterMaxAggregatedBytes={
value=250000000,
description="Maximum aggregated size of versions a file can have in order to be imported.",
public=true,
},
FileImporterSourceWikiDeletion={
value=false,
description="When set to true, FileImporter offers an option to automatically delete the source file after a successful import. Requires the CentralAuth extension to be set up and running on both the source and target wiki.",
public=true,
},
FileImporterSourceWikiTemplating={
value=false,
description="When set to true, FileImporter offers an option to automatically edit the source file after a successful import. Requires the CentralAuth extension to be set up and running on both the source and target wiki.",
public=true,
},
FileImporterCodexMode={
value=false,
description="When set to true, FileImporter will allow a mode where some parts of it's interface are replaced with Codex to provide a more dynamic workflow.",
public=true,
},
},
Hooks={
BeforeInitialize="main",
ChangeTagsListActive="main",
ListDefinedTags="main",
UserGetReservedNames="main",
VisualEditorBeforeEditor="visualeditor",
},
HookHandlers={
main={
class="FileImporter\\FileImporterHooks",
},
visualeditor={
class="FileImporter\\VisualEditorHooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/FileImporter",
},
FileSystemImageServer={
name="FileSystemImageServer",
version="1.2.0",
author="Niklas Laxström",
url="https://www.mediawiki.org/wiki/Extension:FileSystemImageServer",
descriptionmsg="fsis-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.41.0",
},
ExtensionMessagesFiles={
FSIS="includes/FileSystemImageServer.alias.php",
},
SpecialPages={
FSIS={
class="MediaWiki\\Extension\\FileSystemImageServer\\Specials\\SpecialFSIS",
services={
"MimeAnalyzer","PermissionManager",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/FileSystemImageServer",
},
FilterListUsers={
name="FilterListUsers",
version="1.6",
author={
"Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:FilterListUsers",
descriptionmsg="filterlistusers-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
config={
FilterListUsersMinimumEdits={
description="Number of edits users must have made in order to appear on Special:ListUsers",
value=5,
},
FilterListUsersExemptGroups={
description="List of user groups whose members will always appear on Special:ListUsers, even if they have made less than $wgFilterListUsersMinimumEdits edits or no edits at all",
value={
"sysop","bureaucrat","steward","staff","globalbot",},
},
},
Hooks={
SpecialListusersQueryInfo="FilterListUsers::onSpecialListusersQueryInfo",
SpecialListusersHeaderForm="FilterListUsers::onSpecialListusersHeaderForm",
},
AvailableRights={
"viewallusers",},
GroupPermissions={
sysop={
viewallusers=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/FilterListUsers",
},
FilterSpecialPages={
name="FilterSpecialPages",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]","Leonid Verhovskij",},
url="https://www.mediawiki.org/wiki/Extension:FilterSpecialPages",
descriptionmsg="filterspecialpages-desc",
version="3.0.0-alpha",
["license-name"]="GPL-3.0+",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
Hooks={
BeforePageDisplay="FilterSpecialPages::onBeforePageDisplay",
},
composer="hallowelt/filter-special-pages",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/FilterSpecialPages",
},
FlaggedRevs={
name="FlaggedRevs",
namemsg="flaggedrevs",
author={
"Aaron Schulz","Joerg Baach",},
url="https://www.mediawiki.org/wiki/Extension:FlaggedRevs",
descriptionmsg="flaggedrevs-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42",
},
callback="FlaggedRevsHooks::onRegistration",
ActionFilteredLogs={
review={
accept={
"approve","approve2","approve-i","approve2-i",},
unaccept={
"unapprove","unapprove2",},
},
stable={
config={
"config",},
modify={
"modify",},
reset={
"reset",},
move_stable={
"move_stable",},
},
},
AddGroups={
sysop={
"editor","autoreview",},
},
APIListModules={
oldreviewedpages="ApiQueryOldreviewedpages",
},
APIModules={
review="ApiReview",
flagconfig="ApiFlagConfig",
},
APIPropModules={
flagged="ApiQueryFlagged",
},
RestRoutes={
{
path="/flaggedrevs/internal/diffheader/{oldId}/{newId}",
method="GET",
class="MediaWiki\\Extension\\FlaggedRevs\\Rest\\DiffHeaderHandler",
},{
path="/flaggedrevs/internal/review/{target}",
method="POST",
class="MediaWiki\\Extension\\FlaggedRevs\\Rest\\ReviewHandler",
},},
AvailableRights={
"review","validate","autoreview","autoreviewrestore","unreviewedpages","movestable","stablesettings",},
DefaultUserOptions={
flaggedrevssimpleui=1,
flaggedrevsstable=0,
flaggedrevseditdiffs=true,
flaggedrevsviewdiffs=false,
flaggedrevswatch=false,
},
FilterLogTypes={
review=true,
},
GrantPermissions={
basic={
autoreview=true,
autoreviewrestore=true,
unreviewedpages=true,
},
patrol={
review=true,
validate=true,
},
protect={
stablesettings=true,
},
editprotected={
movestable=true,
},
},
GroupPermissions={
editor={
review=true,
autoreview=true,
autoconfirmed=true,
editsemiprotected=true,
unreviewedpages=true,
},
reviewer={
validate=true,
review=true,
autoreview=true,
autoconfirmed=true,
editsemiprotected=true,
unreviewedpages=true,
},
sysop={
autoreview=true,
stablesettings=true,
movestable=true,
review=true,
unreviewedpages=true,
},
autoreview={
autoreview=true,
},
bot={
autoreview=true,
},
},
JobClasses={
flaggedrevs_CacheUpdate="FRExtraCacheUpdateJob",
},
LogActions={
["rights/erevoke"]="rights-editor-revoke",
},
LogActionsHandlers={
["review/*"]={
class="FlaggedRevsReviewLogFormatter",
services={
"RevisionLookup",},
},
["stable/config"]="FlaggedRevsStableLogFormatter",
["stable/modify"]="FlaggedRevsStableLogFormatter",
["stable/reset"]="FlaggedRevsStableLogFormatter",
["stable/move_stable"]="FlaggedRevsStableLogFormatter",
},
LogHeaders={
review="review-logpagetext",
stable="stable-logpagetext",
},
LogNames={
review="review-logpage",
stable="stable-logpage",
},
LogTypes={
"review","stable",},
RemoveGroups={
sysop={
"editor","autoreview",},
},
ExtensionMessagesFiles={
FlaggedRevsMagic="includes/frontend/language/FlaggedRevs.i18n.magic.php",
FlaggedRevsAliases="includes/frontend/language/FlaggedRevs.alias.php",
},
ServiceWiringFiles={
"includes/backend/ServiceWiring.php",},
Hooks={
APIGetAllowedParams="api",
APIQueryAfterExecute="api",
ArticleDeleteComplete="main",
ArticleMergeComplete="main",
ArticleRevisionVisibilitySet="main",
ArticleUndelete="main",
ArticleUpdateBeforeRedirect="ui",
ArticleViewHeader="ui",
AutopromoteCondition="main",
BeforePageDisplay="ui",
BeforeRevertedTagUpdate="main",
CategoryPageView="ui",
ChangesListInsertArticleLink="ui",
ChangesListSpecialPageQuery="ui",
ChangesListSpecialPageStructuredFilters="ui",
["ContribsPager::getQueryInfo"]={
"ui","contributions",},
ContributionsLineEnding="ui",
DeleteAccount="FlaggedRevsHooks::onDeleteAccount",
DifferenceEngineViewHeader="ui",
EchoGetDefaultNotifiedUsers="FlaggedRevsHooks::onEchoGetDefaultNotifiedUsers",
EditPageBeforeEditButtons="ui",
EditPageGetCheckboxesDefinition="ui",
EditPageNoSuchSection="ui",
GetPreferences="ui",
getUserPermissionsErrors="main",
["GoogleNewsSitemap::Query"]="FlaggedRevsHooks::gnsmQueryModifier",
InfoAction="ui",
InitializeArticleMaybeRedirect="ui",
LoadExtensionSchemaUpdates="updater",
MagicWordwgVariableIDs="main",
MakeGlobalVariablesScript="ui",
MediaWikiServices="main",
MergeAccountFromTo="FlaggedRevsHooks::onMergeAccountFromTo",
NewDifferenceEngine="ui",
RevisionFromEditComplete="main",
PageSaveComplete="main",
PageHistoryBeforeList="ui",
PageHistoryLineEnding="ui",
["PageHistoryPager::getQueryInfo"]="ui",
PageMoveComplete="main",
ParserFirstCallInit="main",
ParserGetVariableValueSwitch="main",
ProtectionFormAddFormFields="ui",
["ProtectionForm::save"]="ui",
["ProtectionForm::showLogExtract"]="ui",
RecentChange_save="main",
RevisionDataUpdates="main",
RevisionUndeleted="main",
ScribuntoExternalLibraries="scribunto",
SkinAfterContent="ui",
["SkinTemplateNavigation::Universal"]="ui",
["SpecialContributions::getForm::filters"]="contributions",
SpecialNewpagesConditions="ui",
SpecialNewPagesFilters="ui",
SpecialPage_initList="ui",
TitleGetEditNotices="ui",
UserGetRights="main",
UserLoadAfterLoadFromSession="main",
UserMergeAccountFields="FlaggedRevsHooks::onUserMergeAccountFields",
["WikiExporter::dumpStableQuery"]="main",
},
HookHandlers={
api={
class="FlaggedRevsApiHooks",
services={
},
},
contributions={
class="\\MediaWiki\\Extension\\FlaggedRevs\\Backend\\FlaggedRevsContributionsHooks",
services={
},
},
main={
class="FlaggedRevsHooks",
services={
},
},
updater={
class="FlaggedRevsUpdaterHooks",
services={
},
},
ui={
class="FlaggedRevsUIHooks",
services={
},
},
scribunto={
class="\\MediaWiki\\Extension\\FlaggedRevs\\Backend\\ScribuntoHooks",
services={
},
},
},
DeprecatedHooks={
FlaggedRevsRevisionReviewFormAfterDoSubmit={
deprecatedVersion="1.41",
},
},
config={
SimpleFlaggedRevsUI={
description="This will only distinguish \"checked\", \"quality\", and unreviewed. A small icon will show in the upper right hand corner",
value=true,
},
FlaggedRevsLowProfile={
description="For visitors, only show tags/icons for unreviewed/outdated pages",
value=true,
},
FlaggedRevsNamespaces={
description="Allowed namespaces of reviewable pages",
value={
0,6,10,},
},
FlaggedRevsOverride={
description="Is a \"stable version\" used as the default display version for all pages in reviewable namespaces?",
value=true,
},
FlaggedRevsAutoReview={
description={
"Auto-review settings for edits/new pages:","0 - (FR_AUTOREVIEW_NONE)","  Don't auto-review any edits or new pages","1 - (FR_AUTOREVIEW_CHANGES)","  Auto-review the following types of edits (to existing pages):","  (a) changes directly to the stable version by users with 'autoreview'/'bot'","  (b) reversions to old reviewed versions by users with 'autoreview'/'bot'","  (c) self-reversions back to the stable version by any user","2 - (FR_AUTOREVIEW_CREATION)","  Auto-review new pages as minimally \"checked\"","3 - (FR_AUTOREVIEW_CREATION_AND_CHANGES)","  Combines FR_AUTOREVIEW_CHANGES (1) and FR_AUTOREVIEW_CREATION (2)",},
value=3,
},
FlaggedRevsTags={
description={
"Define the tags we can use to rate an article, and the number of levels.","NOTE: When setting up new dimensions or levels, you will need to add some MediaWiki messages for the UI to show properly; any sysop can do this.",},
value={
accuracy={
levels=3,
},
},
},
FlaggedRevsTagsRestrictions={
description={
"For each tag, define the highest tag level that is unlocked by having certain rights. For example, having 'review' rights may allow for \"depth\" to be rated up to second level.","NOTE: Users cannot lower revision tags from a level they can't set","NOTE: Users with 'validate' (Reviewers) can set all tags to all levels",},
value={
accuracy={
review=1,
autoreview=1,
},
},
},
FlaggedRevsTagsAuto={
description="For each tag, what is the highest level that it can be auto-reviewed to? $wgFlaggedRevsAutoReview must be enabled for this to apply",
value={
accuracy=1,
},
},
FlaggedRevsRestrictionLevels={
description="Restriction levels for 'autoreview'/'review' rights. When a level is selected for a page, an edit made by a user will not be auto-reviewed if the user lacks the specified permission. Levels are set at the Stabilization special page.",
value={
"sysop",},
},
FlaggedRevsProtection={
description={
"Set this to use FlaggedRevs *only* as a protection-like mechanism.","This will disable Stabilization and show the above restriction levels on the protection form of pages. Each level has the stable version shown by default.","A \"none\" level will appear in the form as well, to disable the review process.","Pages will only be reviewable if manually restricted to a level above \"none\".",},
value=false,
},
FlaggedRevsAutopromote={
description="Define when users get automatically promoted to Editors. Set as false to disable. Once users meet these requirements they will be promoted, unless previously demoted.",
value=false,
},
FlaggedRevsAutoconfirm={
description="Define when users get to have their own edits auto-reviewed. Set to false to disable. This can be used for newer, semi-trusted users to improve workflow. It is done by granting some users the implicit 'autoreview' group.",
value=false,
},
FlaggedRevsHandleIncludes={
description={
"How to handle templates used in stable versions:","0 - (FR_INCLUDES_CURRENT)","  Always use the current version of templates","2 - (FR_INCLUDES_STABLE)","  For each template, check if a version of it was used when the page was reviewed and if the template itself has a stable version; use the newest those versions","NOTE: We may have templates that do not have stable version. Also, given situational inclusion of templates (e.g. parser functions selecting template X or Y based on date) there may also be no \"review time version\" revision ID for a template used on a page. In such cases, we select the current (unreviewed) revision.",},
value=2,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/FlaggedRevs",
},
Flex_Diagrams={
name="Flex Diagrams",
version="0.5.2",
author={
"Yaron Koren","Sahaj Khandelwal",},
url="https://www.mediawiki.org/wiki/Extension:Flex_Diagrams",
descriptionmsg="flexdiagrams-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
namespaces={
{
id=740,
constant="FD_NS_BPMN",
name="BPMN",
conditional=true,
defaultcontentmodel="flexdiagrams-bpmn",
},{
id=741,
constant="FD_NS_BPMN_TALK",
name="BPMN_talk",
conditional=true,
},{
id=742,
constant="FD_NS_GANTT",
name="Gantt",
conditional=true,
defaultcontentmodel="flexdiagrams-gantt",
},{
id=743,
constant="FD_NS_GANTT_TALK",
name="Gantt_talk",
conditional=true,
},{
id=744,
constant="FD_NS_MERMAID",
name="Mermaid",
conditional=true,
defaultcontentmodel="flexdiagrams-mermaid",
},{
id=745,
constant="FD_NS_MERMAID_TALK",
name="Mermaid_talk",
conditional=true,
},{
id=746,
constant="FD_NS_DRAWIO",
name="Drawio",
conditional=true,
defaultcontentmodel="flexdiagrams-drawio",
},{
id=747,
constant="FD_NS_DRAWIO_TALK",
name="Drawio_talk",
conditional=true,
},},
requires={
MediaWiki="&gt;= 1.38.0",
},
callback="FDHooks::registerExtension",
Actions={
editdiagram="FDEditDiagramAction",
},
ContentHandlers={
["flexdiagrams-bpmn"]="FDBPMNContentHandler",
["flexdiagrams-gantt"]="FDGanttContentHandler",
["flexdiagrams-drawio"]="FDDrawioContentHandler",
["flexdiagrams-mermaid"]="FDMermaidContentHandler",
},
SpecialPages={
EditDiagram="FDSpecialEditDiagram",
},
ExtensionMessagesFiles={
FlexDiagramsAlias="FlexDiagrams.i18n.aliases.php",
FlexDiagramsNamespaces="FlexDiagrams.i18n.namespaces.php",
FlexDiagramsMagic="FlexDiagrams.i18n.magic.php",
},
Hooks={
["SkinTemplateNavigation::Universal"]="FDEditDiagramAction::displayTab",
ParserFirstCallInit="FDHooks::registerParserFunctions",
MakeGlobalVariablesScript="FDHooks::setGlobalJSVariables",
CanonicalNamespaces="FDHooks::registerNamespaces",
ParserAfterTidy="FDHooks::disableParserCache",
HtmlPageLinkRendererEnd="FDHooks::linkToEditDiagramAction",
},
config={
FlexDiagramsEnabledFormats={
value={
740,742,744,746,},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/FlexDiagrams",
},
FlexiSkin={
name="FlexiSkin",
version="3.0.0-alpha",
["license-name"]="GPL-3.0-only",
url="https://en.wiki.bluespice.com/wiki/Reference:FlexiSkin",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]","Robert Vogel","Daniel Vogel",},
descriptionmsg="flexiskin-extension-desc",
namemsg="flexiskin-extension-name",
type="specialpage",
requires={
MediaWiki="&gt;= 1.39.0",
},
attributes={
BlueSpiceFoundation={
PermissionRegistry={
["flexiskin-viewspecialpage"]={
type="global",
roles={
"admin",},
},
["flexiskin-api"]={
type="global",
roles={
"admin",},
},
},
},
FlexiSkin={
PluginRegistry={
Images="MediaWiki\\Extension\\FlexiSkin\\Plugin\\Images::factory",
ColorPresets="MediaWiki\\Extension\\FlexiSkin\\Plugin\\ColorPresets::factory",
Colors="MediaWiki\\Extension\\FlexiSkin\\Plugin\\Colors::factory",
LayoutColors="MediaWiki\\Extension\\FlexiSkin\\Plugin\\LayoutColors::factory",
Content="MediaWiki\\Extension\\FlexiSkin\\Plugin\\Content::factory",
FreeCss="MediaWiki\\Extension\\FlexiSkin\\Plugin\\FreeCss::factory",
},
SubscriberRegistry={
},
},
},
callback="mwsInitComponents",
AvailableRights={
"flexiskin-viewspecialpage","flexiskin-api",},
ServiceWiringFiles={
"ServiceWiring.php",},
SpecialPages={
FlexiSkin="MediaWiki\\Extension\\FlexiSkin\\Special\\FlexiSkin",
},
ExtensionMessagesFiles={
FlexiSkinAlias="languages/FlexiSkin.alias.php",
},
APIModules={
["flexiskin-activation"]="MediaWiki\\Extension\\FlexiSkin\\Api\\Activation",
["flexiskin-save"]="MediaWiki\\Extension\\FlexiSkin\\Api\\Save",
["flexiskin-preview"]="MediaWiki\\Extension\\FlexiSkin\\Api\\Preview",
["flexiskin-delete"]="MediaWiki\\Extension\\FlexiSkin\\Api\\Delete",
},
config={
FlexiSkinColorPresets={
value={
bluespice={
["colors/background/primary"]="#3e5389",
["colors/background/secondary"]="#ffffff",
["colors/background/tertiary"]="#d9d9d9",
["colors/background/quaternary"]="#999999",
["colors/foreground/primary"]="#ffffff",
["colors/foreground/secondary"]="#666666",
["colors/foreground/tertiary"]="#ffffff",
["colors/foreground/quaternary"]="#ffffff",
},
turquoise={
["colors/background/primary"]="#1bbc9b",
["colors/background/secondary"]="#f5f5f5",
["colors/background/tertiary"]="#ffffff",
["colors/background/quaternary"]="#454545",
["colors/foreground/primary"]="#ffffff",
["colors/foreground/secondary"]="#454545",
["colors/foreground/tertiary"]="#1bbc9b",
["colors/foreground/quaternary"]="#ffffff",
},
orange={
["colors/background/primary"]="#f4912c",
["colors/background/secondary"]="#4d4d4d",
["colors/background/tertiary"]="#f6f6f6",
["colors/background/quaternary"]="#dedede",
["colors/foreground/primary"]="#ffffff",
["colors/foreground/secondary"]="#ffffff",
["colors/foreground/tertiary"]="#4d4d4d",
["colors/foreground/quaternary"]="#4d4d4d",
},
crimson={
["colors/background/primary"]="#bd0000",
["colors/background/secondary"]="#f6f6f6",
["colors/background/tertiary"]="#333333",
["colors/background/quaternary"]="#f6f6f6",
["colors/foreground/primary"]="#f6f6f6",
["colors/foreground/secondary"]="#333333",
["colors/foreground/tertiary"]="#bd0000",
["colors/foreground/quaternary"]="#333333",
},
lime={
["colors/background/primary"]="#97bc00",
["colors/background/secondary"]="#e6e6e6",
["colors/background/tertiary"]="#f6f6f6",
["colors/background/quaternary"]="#97bc00",
["colors/foreground/primary"]="#ffffff",
["colors/foreground/secondary"]="#474747",
["colors/foreground/tertiary"]="#474747",
["colors/foreground/quaternary"]="#ffffff",
},
["turquoise dark"]={
["colors/background/primary"]="#4d4d4d",
["colors/background/secondary"]="#4d4d4d",
["colors/background/tertiary"]="#00adf1",
["colors/background/quaternary"]="#4d4d4d",
["colors/foreground/primary"]="#ffffff",
["colors/foreground/secondary"]="#ffffff",
["colors/foreground/tertiary"]="#4d4d4d",
["colors/foreground/quaternary"]="#ffffff",
},
["sunflower dark"]={
["colors/background/primary"]="#d9d9d9",
["colors/background/secondary"]="#d9d9d9",
["colors/background/tertiary"]="#fdce05",
["colors/background/quaternary"]="#353d40",
["colors/foreground/primary"]="#666666",
["colors/foreground/secondary"]="#666666",
["colors/foreground/tertiary"]="#ffffff",
["colors/foreground/quaternary"]="#ffffff",
},
},
},
},
HookHandlers={
["discovery-skin"]={
class="\\MediaWiki\\Extension\\FlexiSkin\\HookHandler\\DiscoverySkin",
},
["convert-default-file"]={
class="MediaWiki\\Extension\\FlexiSkin\\HookHandler\\ConvertDefaultFile",
},
stabilizationExceptionForImages={
class="MediaWiki\\Extension\\FlexiSkin\\HookHandler\\StabilizationExceptionForImages",
},
},
Hooks={
MWStakeCommonUIRegisterSkinSlotComponents="discovery-skin",
LoadExtensionSchemaUpdates="convert-default-file",
UserLoadAfterLoadFromSession="MediaWiki\\Extension\\FlexiSkin\\Extension::onUserLoadAfterLoadFromSession",
ContentStabilizationIsStabilizationEnabled="stabilizationExceptionForImages",
},
ExtensionFunctions={
"MediaWiki\\Extension\\FlexiSkin\\Extension::overrideLessVars",},
composer="mediawiki/flexiskin",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/FlexiSkin",
},
FlickrAPI={
name="FlickrAPI",
version="2.0.2",
["license-name"]="GPL-2.0-or-later",
author={
"Ike Hecht","Sam Wilson",},
url="https://www.mediawiki.org/wiki/Extension:FlickrAPI",
descriptionmsg="flickrapi-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
ParserFirstCallInit="FlickrAPIHooks::onParserFirstCallInit",
},
config={
FlickrAPIKey="",
FlickrAPISecret="",
FlickrAPIDefaults={
type="frameless",
location="right",
size="-",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/FlickrAPI",
},
Flow={
name="Flow",
version="1.2.0",
author={
"Erik Bernhardson","Stephane Bisson","Matthew Flaschen","Andrew Garrett","Shahyar Ghobadpour","Pau Giner","Roan Kattouw","Chris McMahon","Kunal Mehta","Matthias Mullie","S Page","Jon Robson","Moriel Schottlender","Benny Situ","Volker E.",},
url="https://www.mediawiki.org/wiki/Extension:Flow",
descriptionmsg="flow-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
callback="Flow\\Hooks::registerExtension",
APIModules={
["flow-parsoid-utils"]="Flow\\Api\\ApiParsoidUtilsFlow",
flow="Flow\\Api\\ApiFlow",
},
APIPropModules={
flowinfo="Flow\\Api\\ApiQueryPropFlowInfo",
},
AvailableRights={
"flow-hide","flow-lock","flow-delete","flow-suppress","flow-edit-post","flow-edit-title","flow-create-board",},
ContentHandlers={
["flow-board"]="Flow\\Content\\BoardContentHandler",
},
DefaultUserOptions={
["echo-subscriptions-web-flow-discussion"]=true,
["echo-subscriptions-email-flow-discussion"]=false,
["flow-topiclist-sortby"]="updated",
["flow-editor"]="wikitext",
["flow-side-rail-state"]="expanded",
["flow-visualeditor"]=1,
},
ExtensionFunctions={
"Flow\\Hooks::initFlowExtension",},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
GroupPermissions={
["*"]={
["flow-hide"]=true,
["flow-edit-title"]=true,
},
user={
["flow-lock"]=true,
},
sysop={
["flow-lock"]=true,
["flow-delete"]=true,
["flow-edit-post"]=true,
["flow-edit-title"]=true,
},
suppress={
["flow-suppress"]=true,
},
["flow-bot"]={
["flow-create-board"]=true,
},
},
GrantPermissions={
editpage={
["flow-hide"]=true,
["flow-edit-post"]=true,
["flow-edit-title"]=true,
},
editprotected={
["flow-create-board"]=true,
},
protect={
["flow-lock"]=true,
},
delete={
["flow-delete"]=true,
},
oversight={
["flow-suppress"]=true,
},
},
LogActionsHandlers={
["delete/flow-restore-post"]="Flow\\Log\\ActionFormatter",
["suppress/flow-restore-post"]="Flow\\Log\\ActionFormatter",
["delete/flow-restore-topic"]="Flow\\Log\\ActionFormatter",
["suppress/flow-restore-topic"]="Flow\\Log\\ActionFormatter",
["lock/flow-restore-topic"]="Flow\\Log\\ActionFormatter",
["import/lqt-to-flow-topic"]="Flow\\Log\\LqtImportFormatter",
["delete/flow-delete-post"]="Flow\\Log\\ActionFormatter",
["delete/flow-delete-topic"]="Flow\\Log\\ActionFormatter",
["suppress/flow-suppress-post"]="Flow\\Log\\ActionFormatter",
["suppress/flow-suppress-topic"]="Flow\\Log\\ActionFormatter",
["lock/flow-lock-topic"]="Flow\\Log\\ActionFormatter",
},
SpecialPages={
StructuredDiscussions="Flow\\Specials\\SpecialStructuredDiscussions",
EnableStructuredDiscussions="Flow\\Specials\\SpecialEnableStructuredDiscussions",
},
ExtensionMessagesFiles={
FlowNamespaces="Flow.namespaces.php",
FlowAlias="Flow.alias.php",
},
MessagePosterModule={
scripts={
"modules/messagePoster/ext.flow.messagePoster.js",},
dependencies={
"oojs","mediawiki.api",},
},
QUnitTestModule={
localBasePath="tests/qunit",
remoteExtPath="Flow/tests/qunit",
scripts={
"flow/dm/test_mw.flow.dm.Content.js","flow/dm/test_mw.flow.dm.System.js","flow/dm/test_mw.flow.dm.Post.js","flow/dm/test_mw.flow.dm.Topic.js","flow/dm/test_mw.flow.dm.Board.js","engine/misc/test_mw-ui.enhance.js","engine/misc/test_jquery.findWithParent.js",},
dependencies={
"ext.flow.ui","ext.flow","ext.flow.jquery.findWithParent",},
},
HookHandlers={
AbuseFilter={
class="MediaWiki\\Extension\\StructuredDiscussions\\Hooks\\AbuseFilterHandler",
},
main={
class="Flow\\Hooks",
},
schema={
class="Flow\\SchemaHooks",
},
},
Hooks={
ResourceLoaderRegisterModules="main",
BeforePageDisplay="main",
LoadExtensionSchemaUpdates="schema",
GetPreferences="main",
OldChangesListRecentChangesLine="main",
ChangesListInsertArticleLink="main",
ChangesListInitRows="main",
["EnhancedChangesList::getLogText"]="main",
EnhancedChangesListModifyLineData="main",
EnhancedChangesListModifyBlockLineData="main",
ChangesListSpecialPageQuery="main",
["SkinTemplateNavigation::Universal"]="main",
["Article::MissingArticleConditions"]="main",
SpecialWatchlistGetNonRevisionTypes="main",
UserGetReservedNames="main",
ResourceLoaderGetConfigVars="main",
["ContribsPager::reallyDoQuery"]="main",
["DeletedContribsPager::reallyDoQuery"]="main",
ContributionsLineEnding="main",
DeletedContributionsLineEnding="main",
["ApiFeedContributions::feedItem"]="main",
["AbuseFilter-builder"]="Flow\\Hooks::onAbuseFilterBuilder",
["AbuseFilter-deprecatedVariables"]="Flow\\Hooks::onAbuseFilterDeprecatedVariables",
["AbuseFilter-computeVariable"]="Flow\\Hooks::onAbuseFilterComputeVariable",
AbuseFilterGenerateVarsForRecentChange="AbuseFilter",
AbortEmailNotification="main",
BeforeDisplayOrangeAlert="main",
EchoAbortEmailNotification="Flow\\Hooks::onEchoAbortEmailNotification",
BeforeEchoEventInsert="Flow\\Hooks::onBeforeEchoEventInsert",
ArticleEditUpdateNewTalk="main",
InfoAction="main",
CheckUserFormatRow="Flow\\Hooks::onCheckUserFormatRow",
SpecialCheckUserGetLinksFromRow="Flow\\Hooks::onSpecialCheckUserGetLinksFromRow",
CheckUserInsertChangesRow="Flow\\Hooks::onCheckUserInsertChangesRow",
IRCLineURL="main",
WhatLinksHereProps="main",
ShowMissingArticle="main",
WatchArticle="main",
UnwatchArticle="main",
MovePageCheckPermissions="main",
MovePageIsValidMove="main",
TitleMoveStarting="main",
PageMoveCompleting="main",
TitleSquidURLs="main",
WatchlistEditorBuildRemoveLine="main",
WatchlistEditorBeforeFormRender="main",
["CategoryViewer::doCategoryQuery"]="main",
["CategoryViewer::generateLink"]="main",
ArticleConfirmDelete="main",
ArticleDelete="main",
ArticleDeleteComplete="main",
RevisionUndeleted="main",
ArticleUndelete="main",
SearchableNamespaces="main",
ImportHandleToplevelXMLTag="main",
UserMergeAccountFields="Flow\\Hooks::onUserMergeAccountFields",
MergeAccountFromTo="Flow\\Hooks::onMergeAccountFromTo",
LiquidThreadsIsLqtPage="Flow\\Hooks::onIsLiquidThreadsPage",
BeforeCreateEchoEvent="Flow\\Notifications\\Controller::onBeforeCreateEchoEvent",
EchoGetBundleRules="Flow\\Notifications\\Controller::onEchoGetBundleRules",
GetBetaFeaturePreferences="main",
SaveUserOptions="main",
NukeGetNewPages="Flow\\Hooks::onNukeGetNewPages",
NukeDeletePage="Flow\\Hooks::onNukeDeletePage",
getUserPermissionsErrors="main",
},
namespaces={
{
id=2600,
constant="NS_TOPIC",
name="Topic",
subpages=false,
defaultcontentmodel="flow-board",
capitallinkoverride=true,
movable=false,
},},
config={
FlowHelpPage={
value="//www.mediawiki.org/wiki/Special:MyLanguage/Extension:Flow",
},
FlowNotificationTruncateLength={
value=200,
description="If set to an integer value, this is the maximum length in characters to use for content in Flow-generated notifications. \"null\" disables truncation, though a hard-coded maximum will apply.",
},
FlowCluster={
value=false,
},
FlowDefaultWikiDb={
value=false,
},
FlowExternalStore={
value=false,
},
FlowContentFormat={
value="html",
},
FlowParsoidURL={
value=nil,
},
FlowParsoidPrefix={
value=nil,
},
FlowParsoidTimeout={
value=nil,
},
FlowParsoidHTTPProxy={
value=nil,
},
FlowParsoidForwardCookies={
value=false,
},
FlowDefaultLimit={
value=10,
},
FlowMaxLimit={
value=100,
},
FlowMaxMentionCount={
value=50,
},
FlowMaxThreadingDepth={
value=8,
},
FlowCacheTime={
value=259200,
},
FlowCacheVersion={
value="4.9",
},
FlowAbuseFilterGroup={
value="flow",
},
FlowAbuseFilterEmergencyDisableThreshold={
value=0.1,
},
FlowAbuseFilterEmergencyDisableCount={
value=50,
},
FlowAbuseFilterEmergencyDisableAge={
value=86400,
},
FlowAjaxTimeout={
value=30,
},
FlowCoreActionWhitelist={
value={
"info","protect","unprotect","unwatch","watch","history","wikilove","move","delete",},
},
FlowServerCompileTemplates={
value=false,
},
FlowEnableOptInBetaFeature={
value=false,
},
FlowReadOnly={
value=false,
},
},
composer="mediawiki/flow",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Flow",
},
ForcePreview={
name="ForcePreview",
version="2.0.0",
author={
"Ryan Schmidt",},
url="https://www.mediawiki.org/wiki/Extension:ForcePreview",
descriptionmsg="forcepreview-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.41.0",
},
Hooks={
EditPageBeforeEditButtons="main",
BeforePageDisplay="main",
ResourceLoaderGetConfigVars="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\ForcePreview\\Hooks",
services={
"PermissionManager","UserOptionsLookup",},
},
},
AvailableRights={
"forcepreviewexempt",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ForcePreview",
},
Form={
name="Form",
version="0.6.0",
author={
"Evan Prodromou","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:Form",
descriptionmsg="form-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.0",
},
SpecialPages={
Form="SpecialForm",
},
ExtensionMessagesFiles={
FormAliases="Form.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Form",
},
FormWizard={
name="FormWizard",
version="0.0.1",
author={
"Egbe Eugene","James Hare",},
url="https://www.mediawiki.org/wiki/Extension:FormWizard",
namemsg="formwizard",
descriptionmsg="formwizard-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
SpecialPages={
FormWizard="SpecialFormWizard",
},
ExtensionMessagesFiles={
FormWizardAlias="FormWizard.alias.php",
FormWizardMagic="FormWizard.magic.php",
},
Hooks={
BeforePageDisplay="FormWizardHooks::onBeforePageDisplay",
ParserFirstCallInit="FormWizardHooks::onParserSetup",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/FormWizard",
},
Forms={
name="Forms",
version="1.2-alpha",
["license-name"]="GPL-3.0-only",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://en.wiki.bluespice.com/wiki/Reference:Forms",
descriptionmsg="forms-desc",
requires={
MediaWiki="&gt;= 1.39.0",
},
attributes={
BlueSpiceFoundation={
PermissionRegistry={
["forms-create-form"]={
type="global",
roles={
"editor",},
},
["forms-edit-form-definition"]={
type="global",
roles={
"admin",},
},
},
},
Forms={
Definitions={
FormEditor="Forms/resources/formDefinitions/FormEditor.js",
FormProperties="Forms/resources/formDefinitions/FormProperties.js",
},
Targets={
["json-on-wikipage"]="MediaWiki\\Extension\\Forms\\Target\\JsonOnWikiPage::factory",
["form-definition"]="MediaWiki\\Extension\\Forms\\Target\\FormDefinition::factory",
database="MediaWiki\\Extension\\Forms\\Target\\Database::factory",
email="MediaWiki\\Extension\\Forms\\Target\\Email::factory",
template="MediaWiki\\Extension\\Forms\\Target\\Template::factory",
},
},
},
callback="mwsInitComponents",
ServiceWiringFiles={
"ServiceWiring.php",},
SpecialPages={
CreateFormInstance="MediaWiki\\Extension\\Forms\\Special\\CreateFormInstance",
FormEditor={
class="MediaWiki\\Extension\\Forms\\Special\\FormEditor",
services={
"MainConfig",},
},
},
ExtensionMessagesFiles={
FormsAlias="languages/Forms.alias.php",
},
config={
FormsTargetEMailRecipients={
value={
},
},
},
GroupPermissions={
user={
["forms-create-form"]=true,
},
sysop={
["forms-create-form"]=true,
["forms-edit-form-definition"]=true,
},
},
AvailableRights={
"forms-create-form","forms-edit-form-definition",},
ContentHandlers={
FormDefinition="MediaWiki\\Extension\\Forms\\ContentHandler\\FormDefinitionHandler",
FormData="MediaWiki\\Extension\\Forms\\ContentHandler\\FormDataHandler",
},
APIModules={
["forms-get-definitions"]="MediaWiki\\Extension\\Forms\\Api\\GetDefinitions",
["forms-form-submit"]="MediaWiki\\Extension\\Forms\\Api\\FormSubmit",
},
Actions={
editdefinitionsource="MediaWiki\\Extension\\Forms\\Action\\FormDefinitionSourceEditAction",
},
HookHandlers={
["discovery-skin"]={
class="\\MediaWiki\\Extension\\Forms\\HookHandler\\DiscoverySkin",
},
},
Hooks={
ContentHandlerDefaultModelFor="MediaWiki\\Extension\\Forms\\Setup::onContentHandlerDefaultModelFor",
ParserFirstCallInit="MediaWiki\\Extension\\Forms\\Setup::onParserFirstCallInit",
["SkinTemplateNavigation::Universal"]="MediaWiki\\Extension\\Forms\\Setup::onSkinTemplateNavigation_Universal",
CodeEditorGetPageLanguage="MediaWiki\\Extension\\Forms\\Setup::onCodeEditorGetPageLanguage",
LoadExtensionSchemaUpdates={
"MediaWiki\\Extension\\Forms\\Hook\\LoadExtensionSchemaUpdates\\AddFormAutosaveTable::callback","MediaWiki\\Extension\\Forms\\Hook\\LoadExtensionSchemaUpdates\\AddFormDataTable::callback","MediaWiki\\Extension\\Forms\\Hook\\LoadExtensionSchemaUpdates\\AddFormRevisionTable::callback",},
BlueSpiceDiscoveryTemplateDataProviderAfterInit="discovery-skin",
},
composer="mediawiki/forms",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Forms",
},
FundraiserLandingPage={
name="FundraiserLandingPage",
author={
"Peter Gehres","Ryan Kaldari",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:FundraiserLandingPage",
descriptionmsg="fundraiserlandingpage-desc",
version="1.1.0",
type="specialpage",
requires={
MediaWiki="&gt;= 1.39",
extensions={
EventLogging="*",
},
},
Hooks={
ParserFirstCallInit="MediaWiki\\Extension\\FundraiserLandingPage\\Hooks::onParserFirstCallInit",
BeforePageDisplay="MediaWiki\\Extension\\FundraiserLandingPage\\Hooks::onBeforePageDisplay",
ResourceLoaderGetConfigVars="MediaWiki\\Extension\\FundraiserLandingPage\\Hooks::onResourceLoaderGetConfigVars",
},
ExtensionMessagesFiles={
FundraiserLandingPageAlias="FundraiserLandingPage.alias.php",
FundraiserLandingPageMagic="FundraiserLandingPage.i18n.magic.php",
},
SpecialPages={
FundraiserLandingPage="MediaWiki\\Extension\\FundraiserLandingPage\\Specials\\FundraiserLandingPage",
FundraiserRedirector="MediaWiki\\Extension\\FundraiserLandingPage\\Specials\\FundraiserRedirector",
},
attributes={
EventLogging={
Schemas={
LandingPageImpression="/analytics/legacy/landingpageimpression/1.0.0",
},
},
},
config={
FundraiserLPDefaults={
value={
template="Lp-layout-default",
appeal="Appeal-default",
["appeal-template"]="Appeal-template-default",
["form-template"]="Form-template-default",
["form-countryspecific"]="Form-countryspecific-control",
country="XX",
},
merge_strategy="array_plus",
},
FundraiserLandingPageChapters={
value={
CH="fundraiserlandingpage-wmch-landing-page",
DE="fundraiserlandingpage-wmde-landing-page",
},
merge_strategy="array_plus",
},
FundraiserLandingPageMaxAge={
value=600,
},
FundraiserLandingPageELSampleRate={
value=0.01,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/FundraiserLandingPage",
},
FundraiserUnsubscribe={
name="FundraisingEmailUnsubscribe",
version="2.1.0",
author={
"Matt Walker","Elliott Eggleston","Adam Roses Wight",},
["license-name"]="GPL-2.0-only",
url="https://www.mediawiki.org/wiki/Extension:FundraiserUnsubscribe",
descriptionmsg="fundraiserunsubscribe-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.0",
},
SpecialPages={
FundraiserUnsubscribe="SpecialFundraiserUnsubscribe",
FundraiserSubscribe="SpecialFundraiserSubscribe",
},
ExtensionMessagesFiles={
FundraisingEmailUnsubscribeAlias="FundraisingEmailUnsubscribe.alias.php",
},
config={
FundraisingEmailUnsubscribeSessionKey="fr-unsub",
FundraisingEmailUnsubscribeCancelUri="https://www.wikimediafoundation.org/",
FundraisingEmailUnsubscribeHelpEmail="donate@wikimedia.org",
FundraisingEmailUnsubscribeHashSecretKey="",
FundraisingEmailUnsubscribeSilverpopUsername=nil,
FundraisingEmailUnsubscribeSilverpopPassword=nil,
FundraisingEmailUnsubscribeSilverpopTimeout=5,
FundraisingEmailUnsubscribeSilverpopURL=nil,
FundraisingEmailUnsubscribeLogFacility=8,
FundraisingEmailUnsubscribeLogXmlTransactions=false,
FundraisingEmailUnsubscribeQueueClass="PHPQueue\\Backend\\Predis",
FundraisingEmailUnsubscribeQueueParameters={
unsubscribe={
},
["opt-in"]={
},
},
FundraisingEmailUnsubscribeProcesses={
thankyou={
"FundraiserUnsubscribeThankYou",},
silverpop={
"FundraiserUnsubscribeThankYou","FundraiserUnsubscribeSilverpop",},
optin={
"FundraiserSubscribe",},
},
FundraisingEmailUnsubscribeVarMap={
thankyou={
email={
"FundraiserUnsubscribeThankYou::decodeEmail","e",},
["contribution-id"]="c",
hash="h",
},
silverpop={
email={
"FundraiserUnsubscribeSilverpop::decodeEmail","e",},
["contribution-id"]="c",
hash="h",
["mailing-id"]="m",
["recipient-id"]="r",
["job-id"]="j",
["list-id"]="l",
},
optin={
email={
"FundraiserUnsubscribeThankYou::decodeEmail","e",},
},
},
TwigCachePath="/tmp/twig",
TwigCacheExpiry=300,
},
composer="wikimedia/fundraiser-unsubscribe",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/FundraisingEmailUnsubscribe",
},
FundraisingTranslateWorkflow={
name="FundraisingTranslateWorkflow",
version="0.2",
author={
"Adam Roses Wight",},
url="https://www.mediawiki.org/wiki/Extension:FundraisingTranslateWorkflow",
descriptionmsg="fundraising-translate-workflow-desc",
["license-name"]="GPL-2.0-only",
type="other",
requires={
MediaWiki="&gt;= 1.42",
extensions={
Translate="*",
},
},
Hooks={
["Translate:modifyMessageGroupStates"]="FundraisingTranslateWorkflow\\TranslateHooks::onModifyMessageGroupStates",
},
config={
FundraisingTranslateWorkflowPagePatterns={
value={
"|^page-Fundraising/|",},
description="List of regexes to match against message group IDs.",
public=true,
},
FundraisingTranslateWorkflowPublishRight={
value="translate-manage",
description="Additional group right to add to the \"published\" workflow state.",
public=true,
},
},
composer="mediawiki/fundraising-translate-workflow",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/FundraisingTranslateWorkflow",
},
GPGMail={
name="GPGMail",
version="0.1.0",
author={
"Gergő Tisza",},
url="https://www.mediawiki.org/wiki/Extension:GPGMail",
descriptionmsg="gpgmail-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
callback="GPGMailHooks::registerExtension",
config={
GPGMailBinary={
value="gpg",
},
GPGMailTempDir={
value="/tmp",
},
GpgMailUsePgpMime={
description="true: use PGP/MIME, false: use inline encryption",
value=true,
},
},
Hooks={
GetPreferences="GPGMailHooks::onGetPreferences",
UserMailerSplitTo="GPGMailHooks::onUserMailerSplitTo",
UserMailerTransformContent="GPGMailHooks::onUserMailerTransformContent",
UserMailerTransformMessage="GPGMailHooks::onUserMailerTransformMessage",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GPGMail",
},
Gadgets={
name="Gadgets",
author={
"Daniel Kinzler","Max Semenik","Timo Tijhof","Siddharth VP",},
url="https://www.mediawiki.org/wiki/Extension:Gadgets",
descriptionmsg="gadgets-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42",
},
type="other",
ContentHandlers={
GadgetDefinition={
class="MediaWiki\\Extension\\Gadgets\\Content\\GadgetDefinitionContentHandler",
services={
"GadgetsRepo",},
},
},
SpecialPages={
Gadgets={
class="MediaWiki\\Extension\\Gadgets\\Special\\SpecialGadgets",
services={
"ContentLanguage","GadgetsRepo","SkinFactory",},
},
GadgetUsage={
class="MediaWiki\\Extension\\Gadgets\\Special\\SpecialGadgetUsage",
services={
"GadgetsRepo","ConnectionProvider",},
},
},
APIListModules={
gadgetcategories={
class="MediaWiki\\Extension\\Gadgets\\Api\\ApiQueryGadgetCategories",
services={
"GadgetsRepo",},
},
gadgets={
class="MediaWiki\\Extension\\Gadgets\\Api\\ApiQueryGadgets",
services={
"GadgetsRepo",},
},
},
ExtensionMessagesFiles={
GadgetsAlias="Gadgets.alias.php",
},
RawHtmlMessages={
"gadgets-definition",},
HookHandlers={
GadgetHooks={
class="MediaWiki\\Extension\\Gadgets\\Hooks",
services={
"GadgetsRepo","UserOptionsLookup",},
},
GadgetCodeEditorHooks={
class="MediaWiki\\Extension\\Gadgets\\CodeEditorHooks",
},
},
Hooks={
PageDeleteComplete="GadgetHooks",
PageSaveComplete="GadgetHooks",
BeforePageDisplay="GadgetHooks",
CodeEditorGetPageLanguage="GadgetCodeEditorHooks",
ContentHandlerDefaultModelFor="GadgetHooks",
UserGetDefaultOptions="GadgetHooks",
GetPreferences="GadgetHooks",
PreferencesGetLegend="GadgetHooks",
ResourceLoaderRegisterModules="GadgetHooks",
wgQueryPages="GadgetHooks",
DeleteUnknownPreferences="GadgetHooks",
PreferencesGetIcon="GadgetHooks",
getUserPermissionsErrors="GadgetHooks",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
config={
GadgetsRepo={
value="definition",
},
SpecialGadgetUsageActiveUsers={
value=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Gadgets",
},
Genealogy={
name="Genealogy",
namemsg="genealogy",
version="2.4.0",
author={
"[https://samwilson.id.au/ Sam Wilson]",},
url="https://www.mediawiki.org/wiki/Extension:Genealogy",
descriptionmsg="genealogy-desc",
["license-name"]="GPL-3.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.36",
},
ExtensionMessagesFiles={
GenealogyMagic="Genealogy.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="main",
["EditPage::showEditForm:initial"]="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Genealogy\\Hooks",
services={
"LinkRenderer","DBLoadBalancer",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Genealogy",
composer="samwilson/mediawiki-extensions-genealogy",
},
GenerateMochaConfig={
name="GenerateMochaConfig",
author="Clara Andrew-Wani",
["license-name"]="GPL-2.0-or-later",
version="1.0",
namemsg="generatemochaconfig-extensionname",
descriptionmsg="generatemochaconfig-desc",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GenerateMochaConfig",
},
GeoCrumbs={
name="GeoCrumbs",
version="2.0.1",
author={
"Roland Unger","Hans Musil","Matthias Mullie",},
url="https://www.mediawiki.org/wiki/Extension:GeoCrumbs",
["license-name"]="GPL-2.0-or-later",
descriptionmsg="geocrumbs-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
},
ExtensionMessagesFiles={
GeoCrumbsMagic="GeoCrumbs.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="main",
ParserAfterTidy="main",
OutputPageParserOutput="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\GeoCrumbs\\Hooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GeoCrumbs",
},
GeoData={
name="GeoData",
author={
"Max Semenik",},
url="https://www.mediawiki.org/wiki/Extension:GeoData",
descriptionmsg="geodata-desc",
["license-name"]="WTFPL",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
APIListModules={
geosearch={
class="GeoData\\Api\\QueryGeoSearch",
factory="GeoData\\Hooks::createQueryGeoSearchBackend",
},
},
APIPropModules={
coordinates={
class="GeoData\\Api\\QueryCoordinates",
services={
"WikiPageFactory",},
},
},
ExtensionMessagesFiles={
GeoDataMagic="GeoData.i18n.magic.php",
},
HookHandlers={
geodata={
class="GeoData\\Hooks",
services={
"MainConfig",},
},
cirrussearch={
class="GeoData\\CirrusSearchHooks",
},
schema={
class="GeoData\\SchemaHooks",
},
},
Hooks={
LoadExtensionSchemaUpdates="schema",
ParserFirstCallInit="geodata",
ArticleDeleteComplete="geodata",
LinksUpdateComplete="geodata",
FileUpload="geodata",
OutputPageParserOutput="geodata",
SearchIndexFields="geodata",
SearchDataForIndex={
handler="geodata",
deprecated=true,
},
SearchDataForIndex2="geodata",
CirrusSearchAddQueryFeatures="cirrussearch",
},
TrackingCategories={
"geodata-broken-tags-category","geodata-unknown-globe-category","geodata-unknown-region-category","geodata-unknown-type-category",},
config={
MaxGeoSearchRadius={
value=10000,
description="Maximum radius in meters users can use for the \"radius=\" parameter in \"list=geosearch\" API queries.",
},
MaxCoordinatesPerPage={
value=500,
description="Maximum number of {{#coordinates:…}} parser functions that can be used on a single page. Usages beyond this limit will be ignored and not render anything. Set to 0 for unlimited.",
},
TypeToDim={
value={
country=1000000,
satellite=1000000,
state=300000,
adm1st=100000,
adm2nd=30000,
adm3rd=10000,
city=10000,
isle=10000,
mountain=10000,
river=10000,
waterbody=10000,
event=5000,
forest=5000,
glacier=5000,
airport=3000,
railwaystation=1000,
edu=1000,
pass=1000,
camera=1000,
landmark=1000,
},
description="Default viewing radius in meters for coordinates that don't specify their own \"dim=\" or \"scale=\", but have a \"type=\". This list also defines what an \"unknown type\" is, see $wgGeoDataWarningLevel.",
},
DefaultDim={
value=1000,
description="Default viewing radius in meters for coordinates that don't specify their own \"dim=\", \"scale=\", or \"type=\" (see $wgTypeToDim).",
},
Globes={
value={
},
description="Allows to specify additional globes, in addition to the globes hardcoded in Globe.php. Array keys are lowercase globe names. Values are arrays with the elements \"lon\" (a 2-element array with minimum and maximum longitude), \"east\" (one of the signs -1 or +1), and \"radius\" in meters (optional).",
},
GeoDataWarningLevel={
value={
["unknown type"]=nil,
["unknown globe"]=nil,
["invalid region"]=nil,
},
description="Customizable error handling for some parameters of the {{#coordinates:…}} parser function. \"unknown type\" is triggered when a \"type=\" is used that's not listed in $wgTypeToDim. \"unknown globe\" is triggered when the \"globe=\" is neither one of the hardcoded ones nor listed in $wgGlobes. \"invalid region\" is triggered when the syntax of the \"region=\" parameter is not correct. The value \"fail\" makes the parser function fail with an error. \"warn\" adds one of the \"geodata-unknown-…-category\" tracking categories to the page. Other values do nothing.",
},
GeoDataIndexGranularity={
value=10,
description="How precise \"list=geosearch\" API queries are when $wgGeoDataBackend is set to \"db\". Higher values are more precise, e.g. 10 means 1/10 of a degree. Note you probably want to run the updateIndexGranularity maintenance script when you change this. Doesn't have any effect when $wgGeoDataBackend is set to \"elastic\".",
},
GeoDataBackend={
value="db",
description="To switch to either the default \"db\" or \"elastic\" backend.",
},
GeoDataInJS={
value={
"lat","lon",},
description="Which elements from the page's primary coordinates should be exposed via \"mw.config.get( 'wgCoordinates' )\" in JavaScript. Possible elements are \"lat\", \"lon\", \"globe\", \"primary\", \"dim\", \"type\", \"name\", \"country\", and \"region\". Set to an empty array to not expose anything.",
},
GeoDataUseCirrusSearch={
value=false,
description="Forces coordinates to be added to the CirrusSearch index even if $wgGeoDataBackend is set to \"db\". This is ignored and the indexing always happens when $wgGeoDataBackend is set to \"elastic\".",
},
GeoDataRadiusScoreOverrides={
value={
config_override="GeoDataPreferGeoRadiusWeight",
uri_param_override="geodataPreferGeoRadiusWeight",
},
description="Additional ways to influence the boost factor used for the \"boost-nearcoord:\" and \"boost-neartitle:\" CirrusSearch features. The hardcoded default is currently 2.0. \"config_override\" specifies the name of another configuration variable that, when it exists, replaces the default. \"uri_param_override\" is the name of a URL parameter that can be used to manually specify a different factor, e.g. for testing.",
},
GeoDataDebug={
value=false,
description="Allows to use the \"debug=1\" parameter in \"list=geosearch\" API queries. Currently only has an effect when $wgGeoDataBackend is set to \"elastic\".",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GeoData",
},
GeoGebra={
name="GeoGebra",
version="3.0.9",
author={
"Rudolf Grossmann","Zbynek Konecny","...",},
url="https://www.mediawiki.org/wiki/Extension:GeoGebra",
descriptionmsg="geogebra-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.25.0",
},
Hooks={
ParserFirstCallInit="ExtGeoGebra::init",
BeforePageDisplay="ExtGeoGebra::injectJS",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GeoGebra",
},
Git2Pages={
name="Git2Pages",
version="1.1.1",
author={
"Teresa Cho","Himeshi de Silva",},
url="https://www.mediawiki.org/wiki/Extension:Git2Pages",
descriptionmsg="git2pages-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
callback="Git2PagesHooks::setGit2PagesDataDir",
config={
Git2PagesDataDir=nil,
},
ExtensionMessagesFiles={
Git2PagesMagic="Git2Pages.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="Git2PagesHooks::Git2PagesSetup",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Git2Pages",
},
GitGadgets={
name="GitGadgets",
version="0.1.0",
author={
"Gergő Tisza",},
url="https://www.mediawiki.org/wiki/Extension:GitGadgets",
descriptionmsg="gitgadgets-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
ConfigRegistry={
GitGadgets="GlobalVarConfig::newInstance",
},
config_prefix="wg",
config={
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GitGadgets",
},
GlobalBlocking={
name="GlobalBlocking",
author="Andrew Garrett",
url="https://www.mediawiki.org/wiki/Extension:GlobalBlocking",
descriptionmsg="globalblocking-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
GroupPermissions={
steward={
globalblock=true,
},
sysop={
["globalblock-whitelist"]=true,
},
},
GrantPermissions={
basic={
["globalblock-exempt"]=true,
},
globalblock={
globalblock=true,
},
},
GrantPermissionGroups={
globalblock="administration",
},
GrantRiskGroups={
globalblock="vandalism",
},
AvailableRights={
"globalblock","globalblock-whitelist","globalblock-exempt",},
SpecialPages={
GlobalBlock={
class="MediaWiki\\Extension\\GlobalBlocking\\Special\\SpecialGlobalBlock",
services={
"BlockUserFactory","BlockUtils","GlobalBlocking.GlobalBlockingConnectionProvider","GlobalBlocking.GlobalBlockManager","GlobalBlocking.GlobalBlockingLinkBuilder","CentralIdLookup","UserNameUtils",},
},
GlobalBlockList={
class="MediaWiki\\Extension\\GlobalBlocking\\Special\\SpecialGlobalBlockList",
services={
"BlockUtils","CommentFormatter","CentralIdLookup","GlobalBlocking.GlobalBlockLookup","GlobalBlocking.GlobalBlockingLinkBuilder","GlobalBlocking.GlobalBlockingConnectionProvider","GlobalBlocking.GlobalBlockLocalStatusLookup",},
},
GlobalBlockStatus={
class="MediaWiki\\Extension\\GlobalBlocking\\Special\\SpecialGlobalBlockStatus",
services={
"BlockUtils","UserNameUtils","GlobalBlocking.GlobalBlockLookup","GlobalBlocking.GlobalBlockLocalStatusManager","GlobalBlocking.GlobalBlockLocalStatusLookup","GlobalBlocking.GlobalBlockingLinkBuilder",},
},
RemoveGlobalBlock={
class="MediaWiki\\Extension\\GlobalBlocking\\Special\\SpecialRemoveGlobalBlock",
services={
"BlockUtils","UserNameUtils","GlobalBlocking.GlobalBlockManager","GlobalBlocking.GlobalBlockingLinkBuilder",},
},
},
LogTypes={
"gblblock",},
ActionFilteredLogs={
gblblock={
gblock={
"gblock","gblock2",},
gunblock={
"gunblock",},
modify={
"modify",},
whitelist={
"whitelist",},
dwhitelist={
"dwhitelist",},
},
},
LogNames={
gblblock="globalblocking-logpage",
},
LogHeaders={
gblblock="globalblocking-logpagetext",
},
LogActionsHandlers={
["gblblock/*"]={
class="MediaWiki\\Extension\\GlobalBlocking\\GlobalBlockLogFormatter",
services={
"UserIdentityLookup","GlobalBlocking.GlobalBlockingLinkBuilder","GlobalBlocking.GlobalBlockingUserVisibilityLookup",},
},
},
LogActions={
["gblblock/gunblock"]="globalblocking-unblock-logentry",
},
APIModules={
globalblock={
class="MediaWiki\\Extension\\GlobalBlocking\\Api\\ApiGlobalBlock",
services={
"BlockUserFactory","GlobalBlocking.GlobalBlockLookup","GlobalBlocking.GlobalBlockManager","CentralIdLookup",},
},
},
APIListModules={
globalblocks={
class="MediaWiki\\Extension\\GlobalBlocking\\Api\\ApiQueryGlobalBlocks",
services={
"CentralIdLookup","GlobalBlocking.GlobalBlockLookup","GlobalBlocking.GlobalBlockingConnectionProvider",},
},
},
ExtensionMessagesFiles={
GlobalBlockingAlias="GlobalBlocking.alias.php",
},
QUnitTestModule={
localBasePath="",
remoteExtPath="GlobalBlocking",
packageFiles={
"tests/qunit/index.js","tests/qunit/ext.globalBlocking/special.globalBlock.test.js","tests/qunit/ext.globalBlocking/cases/checkboxDisabledState.json","modules/ext.globalBlocking/special.globalBlock.js",},
dependencies={
"mediawiki.qunit-testrunner","mediawiki.base","mediawiki.router","mediawiki.widgets","mediawiki.widgets.UserInputWidget","ext.globalBlocking","sinonjs",},
},
Hooks={
GetUserBlock="main",
UserIsBlockedGlobally="main",
OtherBlockLogLink="main",
SpecialContributionsBeforeMainOutput="main",
UserMergeAccountFields="usermerge",
LoadExtensionSchemaUpdates="schema",
GetBlockErrorMessageKey="main",
GetLogTypesOnUser="main",
ContributionsToolLinks="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\GlobalBlocking\\GlobalBlockingHooks",
services={
"MainConfig","CommentFormatter","CentralIdLookup","GlobalBlocking.GlobalBlockingLinkBuilder","GlobalBlocking.GlobalBlockLookup","GlobalBlocking.GlobalBlockingConnectionProvider","GlobalBlocking.GlobalBlockLocalStatusLookup","UserNameUtils","GlobalBlocking.GlobalBlockingUserVisibilityLookup",},
},
usermerge={
class="MediaWiki\\Extension\\GlobalBlocking\\UserMergeHooks",
},
schema={
class="MediaWiki\\Extension\\GlobalBlocking\\GlobalBlockingSchemaHooks",
},
},
DeprecatedHooks={
GlobalBlockingBlockedIpMsg={
deprecatedVersion="1.42",
},
GlobalBlockingBlockedIpRangeMsg={
deprecatedVersion="1.42",
},
GlobalBlockingBlockedIpXffMsg={
deprecatedVersion="1.42",
},
},
config={
ApplyGlobalBlocks={
value=true,
},
GlobalBlockingBlockXFF={
value=true,
},
GlobalBlockRemoteReasonUrl={
description="Full path to api.php to use to expand templates in block reasons",
value=nil,
},
GlobalBlockingCIDRLimit={
description="Maximum CIDR range when globally blocking an IP range.",
value={
IPv4=16,
IPv6=19,
},
},
GlobalBlockingAllowedRanges={
description="IP ranges that bypass checks and are always allowed",
value={
},
},
GlobalBlockingAllowGlobalAccountBlocks={
description="Whether to enable global blocks on accounts",
value=true,
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
DatabaseVirtualDomains={
"virtual-globalblocking",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalBlocking",
},
GlobalContribs={
name="GlobalContribs",
version="1.3.0",
author={
"Adam Carter","George Barnick","Jack Phoenix",},
url="https://www.mediawiki.org/wiki/Extension:GlobalContribs",
descriptionmsg="globalcontribs-desc",
["license-name"]="GPL-3.0-only",
type="specialpage",
requires={
MediaWiki="&gt;= 1.38.0",
extensions={
Editcount="*",
},
},
ExtensionMessagesFiles={
GlobalContribsAlias="GlobalContribs.alias.php",
},
SpecialPages={
GlobalContributions="SpecialGlobalContributions",
GlobalEditcount="SpecialGlobalEditcount",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalContribs",
},
GlobalContributions={
name="GlobalContributions",
version="0.2.1",
author={
"Kunal Mehta","Adam Carter","George Barnick","Jack Phoenix",},
url="https://www.mediawiki.org/wiki/Extension:GlobalContributions",
descriptionmsg="guc-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.38.0",
},
config={
GUCWikis={
},
},
ExtensionMessagesFiles={
GlobalContributionsAlias="GlobalContributions.alias.php",
},
SpecialPages={
GlobalContributions="SpecialGlobalContributions",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalContributions",
},
GlobalCssJs={
name="GlobalCssJs",
version="3.4.0",
author={
"Ryan Schmidt","Szymon Świerkosz","Kunal Mehta",},
url="https://www.mediawiki.org/wiki/Extension:GlobalCssJs",
descriptionmsg="globalcssjs-desc",
namemsg="globalcssjs-extensionname",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
HookHandlers={
main={
class="MediaWiki\\GlobalCssJs\\Hooks",
},
},
Hooks={
BeforePageDisplay="main",
ResourceLoaderRegisterModules="main",
["EditPage::showEditForm:initial"]="main",
GetPreferences="main",
},
config={
UseGlobalSiteCssJs={
value=true,
},
GlobalCssJsConfig={
value={
baseurl=false,
wiki=false,
source=false,
},
},
},
attributes={
VisualEditor={
PreloadModules={
"ext.globalCssJs.site","ext.globalCssJs.user",},
},
},
ConfigRegistry={
globalcssjs="GlobalVarConfig::newInstance",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalCssJs",
},
GlobalNotice={
name="GlobalNotice",
version="0.8.0",
author={
"Misza","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:GlobalNotice",
descriptionmsg="globalnotice-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
HookHandlers={
default={
class="GlobalNotice",
services={
"UserGroupManager",},
},
},
Hooks={
SiteNoticeAfter="default",
["EditPage::showEditForm:initial"]="GlobalNotice::displayWarningOnEditPage",
},
config={
GlobalNoticeDisplayWarningOnEditPage={
value=false,
path=false,
description="Show a big, red warning when editing [[MediaWiki:Forced-globalnotice]] and force user to read it and click a link to indicate that they've read the warning before they're allowed to edit the page?",
public=false,
},
GlobalNoticeFile={
value=false,
path=false,
description="Location of a file system file from which to read a global notice shown to all users. Wikitext parsing is supported. Only use this if MessageCommons is disabled and you can't serve GlobalNotice content from the MessageCommons wiki on the wiki farm.",
public=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalNotice",
},
GlobalPreferences={
name="GlobalPreferences",
version="0.1.2",
author={
"Kunal Mehta","Sam Wilson","Max Semenik",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:GlobalPreferences",
descriptionmsg="globalprefs-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42.0",
},
config={
GlobalPreferencesDB={
value=nil,
},
GlobalPreferencesAutoPrefs={
value={
},
},
},
SpecialPages={
GlobalPreferences="GlobalPreferences\\SpecialGlobalPreferences",
},
ExtensionMessagesFiles={
GlobalPreferencesAlias="GlobalPreferences.alias.php",
},
Hooks={
SaveUserOptions="Hooks",
PreferencesFormPreSave="Hooks",
LoadExtensionSchemaUpdates="LoadExtensionSchemaUpdates",
MediaWikiServices="MediaWikiServices",
BeforePageDisplay="Hooks",
},
HookHandlers={
Hooks={
class="GlobalPreferences\\Hooks",
services={
"PreferencesFactory","UserOptionsManager",},
},
MediaWikiServices={
class="GlobalPreferences\\HookHandler\\MediaWikiServicesHookHandler",
},
LoadExtensionSchemaUpdates={
class="GlobalPreferences\\HookHandler\\LoadExtensionSchemaUpdatesHookHandler",
},
},
UserOptionsStoreProviders={
GlobalPreferences={
class="GlobalPreferences\\GlobalUserOptionsStore",
services={
"CentralIdLookup",},
},
},
APIModules={
globalpreferences={
class="GlobalPreferences\\ApiGlobalPreferences",
services={
"PreferencesFactory","UserOptionsManager",},
},
globalpreferenceoverrides={
class="GlobalPreferences\\ApiGlobalPreferenceOverrides",
services={
"PreferencesFactory","UserOptionsManager",},
},
},
APIMetaModules={
globalpreferences={
class="GlobalPreferences\\ApiQueryGlobalPreferences",
services={
"PreferencesFactory","UserOptionsLookup",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalPreferences",
},
GlobalUsage={
name="Global Usage",
version="2.2.0",
author="Bryan Tong Minh",
url="https://www.mediawiki.org/wiki/Extension:GlobalUsage",
descriptionmsg="globalusage-desc",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.42",
},
type="specialpage",
SpecialPages={
MostGloballyLinkedFiles={
class="MediaWiki\\Extension\\GlobalUsage\\SpecialMostGloballyLinkedFiles",
services={
"DBLoadBalancer","LinkBatchFactory",},
},
GloballyWantedFiles={
class="MediaWiki\\Extension\\GlobalUsage\\SpecialGloballyWantedFiles",
services={
"DBLoadBalancer","LinkBatchFactory","RepoGroup",},
},
GloballyUnusedFiles="MediaWiki\\Extension\\GlobalUsage\\SpecialGloballyUnusedFiles",
GlobalUsage="MediaWiki\\Extension\\GlobalUsage\\SpecialGlobalUsage",
},
JobClasses={
globalUsageCachePurge="MediaWiki\\Extension\\GlobalUsage\\GlobalUsageCachePurgeJob",
},
APIPropModules={
globalusage="MediaWiki\\Extension\\GlobalUsage\\ApiQueryGlobalUsage",
},
ExtensionMessagesFiles={
GlobalUsageAliases="GlobalUsage.alias.php",
},
Hooks={
LinksUpdateComplete="main",
ArticleDeleteComplete="main",
FileDeleteComplete="main",
FileUndeleteComplete="main",
UploadComplete="main",
ImagePageAfterImageLinks="imagepage",
ImagePageShowTOC="imagepage",
PageMoveComplete="main",
LoadExtensionSchemaUpdates="schema",
wgQueryPages="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\GlobalUsage\\Hooks",
},
imagepage={
class="MediaWiki\\Extension\\GlobalUsage\\GlobalUsageImagePageHooks",
},
schema={
class="MediaWiki\\Extension\\GlobalUsage\\SchemaHooks",
},
},
config={
GlobalUsageDatabase={
description="If set to false, the local database contains the globalimagelinks table, else set to something understandable to LBFactory",
value=false,
},
GlobalUsageSharedRepoWiki={
description="Name of the shared repo that backlinks are shared for",
value=false,
},
GlobalUsagePurgeBacklinks={
description="If set to true, this will purge pages on the wikis that use a file when it changes. This works by directly inserting HTMLCacheUpdate jobs into the local wikis. @see $wgGlobalUsagePurgeBacklinks",
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalUsage",
},
GlobalUserPage={
name="GlobalUserPage",
version="0.11.1",
author={
"Kunal Mehta","Jack Phoenix",},
url="https://www.mediawiki.org/wiki/Extension:GlobalUserPage",
descriptionmsg="globaluserpage-desc",
["license-name"]="GPL-3.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
ExtensionMessagesFiles={
GlobalUserPageMagic="GlobalUserPage.i18n.magic.php",
},
Hooks={
TitleIsAlwaysKnown="main",
ArticleFromTitle="main",
LinksUpdateComplete="main",
PageSaveComplete="main",
ArticleDeleteComplete="main",
TitleGetEditNotices="main",
GetDoubleUnderscoreIDs="main",
WikiPageFactory="main",
},
HookHandlers={
main={
class="MediaWiki\\GlobalUserPage\\Hooks",
},
},
config={
GlobalUserPageCacheExpiry={
value=604800,
},
GlobalUserPageAPIUrl={
value="https://example.org/w/api.php",
},
GlobalUserPageTimeout={
value=10,
},
GlobalUserPageFooterKey={
value="globaluserpage-footer",
},
GlobalUserPageDBname={
value="examplewiki",
},
},
JobClasses={
GlobalUserPageLocalJobSubmitJob="MediaWiki\\GlobalUserPage\\LocalJobSubmitJob",
LocalGlobalUserPageCacheUpdateJob="MediaWiki\\GlobalUserPage\\LocalCacheUpdateJob",
},
DefaultUserOptions={
globaluserpage=true,
},
ConfigRegistry={
globaluserpage="GlobalVarConfig::newInstance",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalUserPage",
},
GlobalUserrights={
name="GlobalUserrights",
version="1.5.3",
author={
"Nathaniel Herman","Mainframe98",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:GlobalUserrights",
descriptionmsg="gur-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.3",
},
SpecialPages={
GlobalUserrights="GlobalUserrights",
},
ExtensionMessagesFiles={
GlobalUserrightsAlias="GlobalUserrights.alias.php",
},
Hooks={
LoadExtensionSchemaUpdates="GlobalUserrightsHooks::onLoadExtensionSchemaUpdates",
UserEffectiveGroups="GlobalUserrightsHooks::onUserEffectiveGroups",
SpecialListusersQueryInfo="GlobalUserrightsHooks::onSpecialListusersQueryInfo",
SiteStatsNumberInGroup="GlobalUserrightsHooks::updateStatsForGUR",
UserIsBot="GlobalUserrightsHooks::onUserIsBot",
UsersPagerDoBatchLookups="GlobalUserrightsHooks::onUsersPagerDoBatchLookups",
},
LogTypes={
"gblrights",},
LogNames={
gblrights="gur-rightslog-name",
},
LogHeaders={
gblrights="gur-rightslog-header",
},
LogActionsHandlers={
["gblrights/rights"]="GlobalRightsLogFormatter",
},
AvailableRights={
"userrights-global",},
GroupPermissions={
staff={
["userrights-global"]=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalUserrights",
},
GlobalWatchlist={
name="GlobalWatchlist",
author={
"DannyS712",},
url="https://www.mediawiki.org/wiki/Extension:GlobalWatchlist",
descriptionmsg="globalwatchlist-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
},
SpecialPages={
GlobalWatchlist={
class="MediaWiki\\Extension\\GlobalWatchlist\\SpecialGlobalWatchlist",
services={
"StatsdDataFactory",},
},
GlobalWatchlistSettings={
class="MediaWiki\\Extension\\GlobalWatchlist\\SpecialGlobalWatchlistSettings",
factory="MediaWiki\\Extension\\GlobalWatchlist\\SpecialGlobalWatchlistSettings::newFromGlobalState",
services={
"GlobalWatchlistSettingsManager","SpecialPageFactory","UserOptionsLookup",},
},
},
HookHandlers={
GlobalWatchlistHooks={
class="MediaWiki\\Extension\\GlobalWatchlist\\GlobalWatchlistHooks",
services={
"SpecialPageFactory","StatsdDataFactory",},
},
GlobalWatchlistGuidedTourHooks={
class="MediaWiki\\Extension\\GlobalWatchlist\\GlobalWatchlistGuidedTourHooks",
factory="MediaWiki\\Extension\\GlobalWatchlist\\GlobalWatchlistGuidedTourHooks::newFromGlobalState",
},
},
Hooks={
ApiOptions={
handler="GlobalWatchlistHooks",
},
GetPreferences={
handler="GlobalWatchlistHooks",
},
LoginFormValidErrorMessages={
handler="GlobalWatchlistHooks",
},
ResourceLoaderRegisterModules={
handler="GlobalWatchlistGuidedTourHooks",
},
SidebarBeforeOutput={
handler="GlobalWatchlistHooks",
},
},
ExtensionMessagesFiles={
GlobalWatchlistAliases="GlobalWatchlist.alias.php",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
config={
GlobalWatchlistWikibaseSite={
value=false,
description="Site for which labels should be fetched for items on the watchlist, or false for none",
},
GlobalWatchlistDevMode={
value=false,
description="Whether to send debug entries to the console",
},
GlobalWatchlistEnableGuidedTour={
value=false,
description="Whether to enable the GuidedTour for Special:GlobalWatchlistSettings",
},
GlobalWatchlistSiteLimit={
value=5,
description="The maximum number of sites that a user can save to their watchlist. Set to 0 to disable the limit",
},
},
QUnitTestModule={
localBasePath="",
remoteExtPath="GlobalWatchlist",
packageFiles={
"tests/qunit/tests.js","tests/qunit/Debug.tests.js","tests/qunit/Linker.tests.js","tests/qunit/getSettings.tests.js","tests/qunit/WatchlistUtils.tests.js","modules/Debug.js","modules/EntryBase.js","modules/Linker.js","modules/getSettings.js","modules/WatchlistUtils.js",},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalWatchlist",
},
Google_AdSense={
name="Google AdSense",
namemsg="googleadsense-extensionname",
version="3.0.0",
author={
"Siebrand Mazeland","Zoranzoki21",},
url="https://www.mediawiki.org/wiki/Extension:Google_AdSense",
descriptionmsg="googleadsense-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
SkinBuildSidebar="GoogleAdSense::onSkinBuildSidebar",
},
config={
GoogleAdSenseClient={
value="none",
},
GoogleAdSenseSlot={
value="none",
},
GoogleAdSenseID={
value="none",
},
GoogleAdSenseWidth={
value=120,
},
GoogleAdSenseHeight={
value=240,
},
GoogleAdSenseLang={
value="en",
},
GoogleAdSenseEncoding={
value="utf8",
},
GoogleAdSenseSrc={
value="//pagead2.googlesyndication.com/pagead/show_ads.js",
},
GoogleAdSenseAnonOnly={
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GoogleAdSense",
},
GoogleAnalyticsMetrics={
name="GoogleAnalyticsMetrics",
version="1.0.3",
author={
"Ike Hecht","Nischay Nahata",},
url="https://www.mediawiki.org/wiki/Extension:GoogleAnalyticsMetrics",
descriptionmsg="googleanalyticsmetrics-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
},
config={
GoogleAnalyticsMetricsAllowed="*",
GoogleAnalyticsMetricsPath=nil,
GoogleAnalyticsMetricsExpiry=600,
GoogleAnalyticsMetricsViewId="",
},
ExtensionMessagesFiles={
GoogleAnalyticsMetricsHooksMagic="GoogleAnalyticsMetrics.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="GoogleAnalyticsMetricsHooks::onParserFirstCallInit",
},
composer="mediawiki/google-analytics-metrics",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GoogleAnalyticsMetrics",
},
GoogleAnalyticsTopPages={
name="GoogleAnalyticsTopPages",
version="0.0.2",
author="Florian Schmidt",
url="https://www.mediawiki.org/wiki/Extension:GoogleAnalyticsTopPages",
descriptionmsg="googleanalyticstoppages-desc",
["license-name"]="MIT",
type="parserhook",
requires={
MediaWiki="&gt;= 1.36.0",
},
SpecialPages={
GoogleAnalyticsTopPages="SpecialGoogleAnalyticsTopPages",
},
APIModules={
googlepagestatsupdate="ApiGooglePageStatsUpdate",
},
ExtensionMessagesFiles={
GoogleAnalyticsTopPagesAlias="GoogleAnalyticsTopPages.alias.php",
},
Hooks={
LoadExtensionSchemaUpdates="GoogleAnalyticsTopPagesHooks::onLoadExtensionSchemaUpdates",
ParserFirstCallInit="GoogleAnalyticsTopPagesHooks::onParserFirstCallInit",
},
config={
GATPServiceAccountName="",
GATPKeyFileLocation="",
GATPAppName="googleanalyticstoppages",
GATPProfileId="",
GATPInterval=30,
GATPProtectAPI=true,
},
composer="mediawiki/googleanalyticstoppages",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GoogleAnalyticsTopPages",
},
GoogleAuthenticator={
name="GoogleAuthenticator",
author="Youri van den Bogert",
version="1.0.0",
url="https://www.xl-knowledge.nl",
descriptionmsg="googleauthenticator-desc",
["license-name"]="GPL-2.0+",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
GoogleAuthenticatorAlias="GoogleAuthenticator.i18n.alias.php",
},
Hooks={
BeforePageDisplay="MediaWiki\\Extension\\GoogleAuthenticator\\Hooks::onBeforePageDisplay",
},
SpecialPages={
Google2FARecover={
class="MediaWiki\\Extension\\GoogleAuthenticator\\Google2FARecover",
services={
"UserOptionsManager",},
},
},
config={
GAIssuer="__SITENAME__",
},
AuthManagerAutoConfig={
secondaryauth={
["MediaWiki\\Extension\\GoogleAuthenticator\\Google2FactorSecondaryAuthenticationProvider"]={
class="MediaWiki\\Extension\\GoogleAuthenticator\\Google2FactorSecondaryAuthenticationProvider",
sort=50,
services={
"UserOptionsManager",},
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GoogleAuthenticator",
},
GoogleCustomWikiSearch={
name="GoogleCustomWikiSearch",
version="0.6.0",
author="Ike Hecht for [http://wikiworks.com/ WikiWorks]",
url="https://www.mediawiki.org/wiki/Extension:GoogleCustomWikiSearch",
descriptionmsg="gcws-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.31.0",
},
SpecialPages={
GoogleCustomWikiSearch="SpecialGoogleCustomWikiSearch",
},
ExtensionMessagesFiles={
GoogleCustomWikiSearchAlias="includes/specials/SpecialGoogleCustomWikiSearch.alias.php",
},
Hooks={
SpecialSearchSetupEngine="GoogleCustomWikiSearchHooks::onSpecialSearchSetupEngine",
SpecialPageAfterExecute="GoogleCustomWikiSearchHooks::onSpecialPageAfterExecute",
},
config={
GoogleCustomWikiSearchReplaceSearch={
description="Configuration value for replacing standard search. Default is false. When true, standard search will be replaced.",
value=false,
},
GoogleCustomWikiSearchAppendToSearch={
description="Append to standard search results? Only makes sense if $wgGoogleCustomWikiSearchReplaceSearch is false.",
value=false,
},
GoogleCustomWikiSearchId={
description="Google Custom Search ID - requires account with Google. Note that if this is left blank (not set in LocalSettings), the result will be a site search.",
value="",
},
GoogleCustomWikiSearchOptions={
description="The custom search options may leave out customSearchControl.draw, though options will only display then if the variable is named 'options'. If this is set, $wgGoogleCustomWikiSearchId is ignored.",
value="",
},
GoogleCustomWikiSearchTheme={
description="The search theme which may be overwitten by Control Panel settings in Google script Version 2. Possible values are: 'DEFAULT', 'BUBBLEGUM', 'ESPRESSO', 'GREENSKY', 'MINIMALIST', 'SHINY'.",
value="V2_DEFAULT",
},
GoogleCustomWikiSearchCodeVersion={
description="Version of Google's script.",
value=2,
},
},
composer="mediawiki/googlecustomwikisearch",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GoogleCustomWikiSearch",
},
GoogleDocCreator={
name="GoogleDocCreator",
version="2.0",
author={
"Nischay Nahata","Sanjay Thiyagarajan",},
url="https://www.mediawiki.org/wiki/Extension:GoogleDocCreator",
descriptionmsg="googledoccreator-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
ExtensionMessagesFiles={
GoogleDocsCreatorAlias="GoogleDocCreator.alias.php",
},
SpecialPages={
GoogleDocCreator="SpecialGoogleDocCreator",
},
Hooks={
ParserFirstCallInit="SpecialGoogleDocCreator::setParserHook",
},
config={
GoogleApiClientCredentialsPath="",
},
requires={
MediaWiki="&gt;= 1.35.0",
},
composer="mediawiki/google-doc-creator",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GoogleDocCreator",
},
GoogleDocTag={
name="GoogleDocTag",
version="0.6",
author={
"Reddo","[https://www.mediawiki.org/wiki/User:Sophivorus Felipe Schenone]",},
url="https://www.mediawiki.org/wiki/Extension:GoogleDocTag",
descriptionmsg="googledoctag-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="GoogleDocTag::setParserHook",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GoogleDocTag",
},
GoogleDocs4MW={
name="GoogleDocs4MW",
version="1.4",
author={
"Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:GoogleDocs4MW",
descriptionmsg="googledocs4mw-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
ParserFirstCallInit="GoogleDocs4MW::registerTag",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GoogleDocs4MW",
},
GoogleGeocode={
name="GoogleGeocode",
author="Ike Hecht",
url="https://www.mediawiki.org/wiki/Extension:GoogleGeocode",
descriptionmsg="googlegeocode-desc",
["license-name"]="GPL-2.0-or-later",
version="0.1.0",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
config={
GoogleGeocodeAPIKey=nil,
GoogleGeocodeExpiry=600,
GoogleGeocodeDelimiter=";",
},
Hooks={
ParserFirstCallInit="GoogleGeocodeHooks::onParserFirstCallInit",
},
ExtensionMessagesFiles={
GoogleGeocodeMagic="GoogleGeocode.i18n.magic.php",
},
repository="https://phabricator.wikimedia.org/diffusion/EGGC",
composer="mediawiki/google-geocode",
},
GoogleLogin={
name="GoogleLogin",
version="0.4.0-git",
author="Florian Schmidt",
url="https://www.mediawiki.org/wiki/Extension:GoogleLogin",
descriptionmsg="googlelogin-desc-authmanager",
["license-name"]="MIT",
type="other",
GroupPermissions={
sysop={
managegooglelogin=true,
},
},
requires={
MediaWiki="&gt;= 1.36.0",
},
AvailableRights={
"managegooglelogin","managegooglelogindomains",},
ConfigRegistry={
googlelogin="GlobalVarConfig::newInstance",
},
SpecialPages={
GoogleLoginReturn="GoogleLogin\\Specials\\SpecialGoogleLoginReturn",
ManageGoogleLogin="GoogleLogin\\Specials\\SpecialManageGoogleLogin",
GoogleLoginAllowedDomains="GoogleLogin\\Specials\\SpecialGoogleLoginAllowedDomains",
},
DefaultUserOptions={
["echo-subscriptions-web-change-googlelogin"]=true,
["echo-subscriptions-email-change-googlelogin"]=true,
},
APIModules={
googleplusprofileinfo="GoogleLogin\\Api\\ApiGoogleLoginInfo",
},
ExtensionMessagesFiles={
GoogleLoginAlias="GoogleLogin.alias.php",
},
AuthManagerAutoConfig={
primaryauth={
["GoogleLogin\\Auth\\GooglePrimaryAuthenticationProvider"]={
class="GoogleLogin\\Auth\\GooglePrimaryAuthenticationProvider",
sort=0,
},
},
},
callback="GoogleLogin\\GoogleLoginHooks::onSetup",
Hooks={
AuthChangeFormFields="GoogleLogin\\GoogleLoginHooks::onAuthChangeFormFields",
UserLogoutComplete="GoogleLogin\\GoogleLoginHooks::onUserLogoutComplete",
LoadExtensionSchemaUpdates="GoogleLogin\\GoogleLoginHooks::onLoadExtensionSchemaUpdates",
MergeAccountFromTo="GoogleLogin\\GoogleLoginHooks::onMergeAccountFromTo",
UserMergeAccountDeleteTables="GoogleLogin\\GoogleLoginHooks::onUserMergeAccountDeleteTables",
BeforeCreateEchoEvent="GoogleLogin\\GoogleLoginHooks::onBeforeCreateEchoEvent",
EchoGetBundleRules="GoogleLogin\\GoogleLoginHooks::onEchoGetBundleRules",
["ApiMain::moduleManager"]="GoogleLogin\\GoogleLoginHooks::onApiMainModuleManager",
},
config={
GLSecret="",
GLAppId="",
GLAllowedDomains="",
GLAllowedDomainsStrict=false,
GLAllowedDomainsDB=false,
GLAPIKey="",
GLEnableEchoEvents=true,
GLAuthoritativeMode=false,
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
composer="mediawiki/googlelogin",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GoogleLogin",
},
GoogleNewsSitemap={
name="GoogleNewsSitemap",
version="2.2.0",
author={
"Amgine","[https://www.mediawiki.org/wiki/User:Bawolff Brian Wolff]",},
url="https://www.mediawiki.org/wiki/Extension:GoogleNewsSitemap",
descriptionmsg="googlenewssitemap-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42",
},
SpecialPages={
GoogleNewsSitemap={
class="MediaWiki\\Extension\\GoogleNewsSitemap\\Specials\\GoogleNewsSitemap",
services={
"NamespaceInfo","ContentLanguage","MainWANObjectCache","DBLoadBalancer","HookContainer","LanguageNameUtils",},
},
},
ExtensionMessagesFiles={
GoogleNewsSitemapAlias="GoogleNewsSitemap.alias.php",
},
FeedClasses={
sitemap="MediaWiki\\Extension\\GoogleNewsSitemap\\SitemapFeed",
},
config={
GNSMmaxCategories={
value=6,
},
GNSMmaxResultCount={
value=50,
},
GNSMfallbackCategory={
value="Published",
},
GNSMsmaxage={
value=1800,
},
GNSMcommentNamespace={
value=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GoogleNewsSitemap",
},
GooglePlaces={
name="GooglePlaces",
author="Ike Hecht",
url="https://www.mediawiki.org/wiki/Extension:GooglePlaces",
descriptionmsg="googleplaces-desc",
["license-name"]="GPL-2.0-or-later",
version="1.1",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
config={
GooglePlacesAPIKey=nil,
GooglePlacesExpiry=600,
},
Hooks={
ParserFirstCallInit="GooglePlacesHooks::onParserFirstCallInit",
},
ExtensionMessagesFiles={
GooglePlacesMagic="GooglePlaces.i18n.magic.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GooglePlaces",
},
GoogleSiteSearch={
name="GoogleSiteSearch",
version="3.1",
author="Ryan Finnie",
url="https://www.mediawiki.org/wiki/Extension:GoogleSiteSearch",
descriptionmsg="googlesitesearch-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
Hooks={
SpecialSearchResultsPrepend="GoogleSiteSearch::searchPrepend",
SpecialSearchResultsAppend="GoogleSiteSearch::searchAppend",
},
config={
GoogleSiteSearchCSEID="",
GoogleSiteSearchOnly=false,
GoogleSiteSearchAppend=false,
GoogleSiteSearchAttributes={
},
},
requires={
MediaWiki="&gt;= 1.35.0",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GoogleSiteSearch",
},
GoogleTagManager={
name="GoogleTagManager",
version="1.1",
url="https://www.mediawiki.org/wiki/Extension:GoogleTagManager",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",
descriptionmsg="googletagmanager-desc",
["license-name"]="GPL-3.0-or-later",
type="user activity",
requires={
MediaWiki="&gt;= 1.39.0",
},
Hooks={
BeforePageDisplay="GoogleTagManager::onBeforePageDisplay",
ResourceLoaderGetConfigVars="GoogleTagManager::onResourceLoaderGetConfigVars",
},
config={
GoogleTagManagerContainerID={
value="",
},
GoogleTagManagerSkipGroups={
value={
},
},
GoogleTagManagerDefer={
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GoogleTagManager",
},
GoogleTranslate={
name="GoogleTranslate",
version="3.2",
url="https://www.mediawiki.org/wiki/Extension:GoogleTranslate",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",
descriptionmsg="googletranslate-desc",
["license-name"]="GPL-3.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
APIModules={
googletranslatesave="GoogleTranslateSave",
},
Hooks={
BeforePageDisplay="GoogleTranslate::onBeforePageDisplay",
ResourceLoaderGetConfigVars="GoogleTranslate::onResourceLoaderGetConfigVars",
["SkinTemplateNavigation::Universal"]="GoogleTranslate::onSkinTemplateNavigationUniversal",
PageContentLanguage="GoogleTranslate::onPageContentLanguage",
},
config={
GoogleTranslateNamespaces={
value={
0,},
merge_strategy="provide_default",
},
GoogleTranslateNearEdit={
value=true,
},
GoogleTranslateSave={
value=false,
},
GoogleTranslateSaveTreshold={
value=0.9,
},
GoogleTranslateSaveTitle={
value=false,
},
GoogleTranslateSaveCategories={
value=false,
},
GoogleTranslateSaveNotice={
value="",
},
GoogleTranslateSubpageLanguage={
value=false,
},
GoogleTranslateSystemAccount={
value="Translations bot",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GoogleTranslate",
},
Graph={
name="Graph",
author={
"Dan Andreescu","Yuri Astrakhan","Frédéric Bolduc",},
url="https://www.mediawiki.org/wiki/Extension:Graph",
descriptionmsg="graph-desc",
["license-name"]="MIT",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
},
APIModules={
graph={
class="Graph\\ApiGraph",
services={
"ParserFactory","MainWANObjectCache","WikiPageFactory",},
},
},
QUnitTestModule={
localBasePath="",
remoteExtPath="Graph",
scripts={
"modules/ve-graph/tests/ext.graph.visualEditor.test.js",},
dependencies={
"ext.graph.render","ext.graph.visualEditor","test.VisualEditor",},
},
LateJSConfigVarNames={
"wgGraphSpecs",},
Hooks={
ParserFirstCallInit="main",
OutputPageParserOutput="main",
},
HookHandlers={
main={
class="Graph\\Hooks",
},
},
attributes={
VisualEditor={
PluginModules={
"ext.graph.visualEditor",},
},
},
config={
GraphAllowedDomains={
value={
},
description="List of allowed domains as a map of protocol -&gt; array of domains. Allowed standard protocols: http, https. Allowed custom protocols are listed in https://www.mediawiki.org/wiki/Extension:Graph/Guide#External_data",
},
GraphAllowHttp={
value=false,
description="Allow http protocol for external data. This increases the attack surface, use with caution.",
},
GraphDefaultVegaVer={
value=2,
description="Default Vega version for graph specs which do not specify a version. Obsolete, will be removed soon.",
},
},
TrackingCategories={
"graph-tracking-category","graph-obsolete-category","graph-broken-category",},
SpecialPages={
GraphSandbox="Graph\\Sandbox",
},
ExtensionMessagesFiles={
GraphAliases="Graph.alias.php",
},
ForeignResourcesDir="lib",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Graph",
},
GraphQL={
name="GraphQL",
url="https://www.mediawiki.org/wiki/Extension:GraphQL",
namemsg="graphql",
descriptionmsg="graphql-desc",
["license-name"]="GPL-3.0-or-later",
type="api",
requires={
MediaWiki="&gt;= 1.35",
},
config={
GraphQLValidateSchema={
value=true,
},
},
ExtensionMessagesFiles={
GraphQLAlias="GraphQL.alias.php",
},
SpecialPages={
GraphQL={
class="MediaWiki\\GraphQL\\SpecialPage\\SpecialGraphQL",
services={
"LinkRenderer","GraphQLPromiseAdapter","GraphQLSchemaFactory","GraphQLFederatedSchemaFactory",},
},
GraphQLSandbox={
class="MediaWiki\\GraphQL\\SpecialPage\\SpecialGraphQLSandbox",
services={
"LinkRenderer","GraphQLPromiseAdapter","GraphQLSchemaFactory",},
},
},
ServiceWiringFiles={
"./ServiceWiring.php",},
HookHandlers={
router={
class="MediaWiki\\GraphQL\\HookHandler\\Router",
services={
"SpecialPageFactory","TitleFormatter",},
},
},
Hooks={
WebRequestPathInfoRouter="router",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GraphQL",
},
Gravatar={
name="Gravatar",
author={
"Mainframe98",},
url="https://www.mediawiki.org/wiki/Extension:Gravatar",
descriptionmsg="gravatar-desc",
namemsg="gravatar-extensionname",
["license-name"]="MIT",
requires={
MediaWiki="&gt;=1.41.0",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Gravatar\\Hook\\Handler",
},
},
Hooks={
BeforePageDisplay="main",
GetPreferences="main",
},
DefaultUserOptions={
["gravatar-use-gravatar"]=false,
},
ServiceWiringFiles={
"src/ServiceWiring.php",},
ConfigRegistry={
Gravatar="MediaWiki\\Config\\GlobalVarConfig::newInstance",
},
config={
GravatarServer={
value="//gravatar.com",
},
GravatarDefaultAvatar={
value="mp",
},
GravatarAcceptedAvatarRating={
value="g",
},
GravatarIgnoredSkins={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Gravatar",
},
GroupWhitelist={
name="GroupWhitelist",
author={
"WikiWorks team",},
url="https://www.mediawiki.org/wiki/Extension:GroupWhitelist",
descriptionmsg="groupwhitelist-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
config={
GroupWhitelistRights={
description="A list of actions to be allowed",
value={
"edit",},
merge_strategy="array_plus",
},
GroupWhitelistGroup={
description="A group affected by the extension",
value="user",
},
GroupWhitelistSourcePage={
description="A page to look for list of whitelisted pages",
value="MediaWiki:Whitelist",
},
GroupWhitelistAPIAllow={
description="API modules to be always granted with the right",
value={
},
},
},
Hooks={
getUserPermissionsErrors="MediaWiki\\Extension\\GroupWhitelist\\Hooks::ongetUserPermissionsErrors",
UserGetRights="MediaWiki\\Extension\\GroupWhitelist\\Hooks::onUserGetRights",
},
ConfigRegistry={
GroupWhitelist="GlobalVarConfig::newInstance",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GroupWhitelist",
},
GroupsSidebar={
name="GroupsSidebar",
version="0.3.0",
author="Church of emacs",
url="https://www.mediawiki.org/wiki/Extension:GroupsSidebar",
descriptionmsg="groupssidebar-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
SidebarBeforeOutput="GroupsSidebar::efHideSidebar",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GroupsSidebar",
},
GrowthExperiments={
name="GrowthExperiments",
descriptionmsg="growthexperiments-desc",
["license-name"]="GPL-3.0-or-later",
author={
"Stephane Bisson","Kosta Harlan","Roan Kattouw","Gergő Tisza","Martin Urbanec","Mew Ophaswongse","Sergio Gimeno","Kayla Morgan","Viviana Yanez",},
url="https://www.mediawiki.org/wiki/Extension:GrowthExperiments",
requires={
MediaWiki="&gt;= 1.43.0",
extensions={
VisualEditor="*",
},
},
ExtensionMessagesFiles={
GrowthExperimentsAlias="GrowthExperiments.alias.php",
GrowthExperimentsMagic="GrowthExperiments.i18n.magic.php",
},
ServiceWiringFiles={
"ServiceWiring.php",},
ConfigRegistry={
GrowthExperiments="GlobalVarConfig::newInstance",
},
JobClasses={
newcomerTasksCacheRefreshJob="GrowthExperiments\\NewcomerTasks\\TaskSuggester\\NewcomerTasksCacheRefreshJob",
setUserMentorDatabaseJob="GrowthExperiments\\Mentorship\\Store\\SetUserMentorDatabaseJob",
reassignMenteesJob="GrowthExperiments\\Mentorship\\ReassignMenteesJob",
menteeOverviewUpdateDataForMentor="GrowthExperiments\\MentorDashboard\\MenteeOverview\\MenteeOverviewUpdateDataForMentorJob",
refreshUserImpactJob="GrowthExperiments\\UserImpact\\RefreshUserImpactJob",
notificationKeepGoingJob={
class="GrowthExperiments\\LevelingUp\\NotificationKeepGoingJob",
services={
"UserIdentityLookup","SpecialPageFactory","GrowthExperimentsLevelingUpManager",},
},
notificationGetStartedJob={
class="GrowthExperiments\\LevelingUp\\NotificationGetStartedJob",
services={
"UserIdentityLookup","SpecialPageFactory","GrowthExperimentsLevelingUpManager",},
},
},
APIModules={
helppanelquestionposter={
class="GrowthExperiments\\Api\\ApiHelpPanelPostQuestion",
services={
"GrowthExperimentsQuestionPosterFactory",},
},
homepagequestionstore="GrowthExperiments\\Api\\ApiQuestionStore",
growthsetmentor={
class="GrowthExperiments\\Api\\ApiSetMentor",
services={
"GrowthExperimentsMentorManager","GrowthExperimentsChangeMentorFactory","UserIdentityUtils",},
},
growthstarmentee={
class="GrowthExperiments\\Api\\ApiStarMentee",
services={
"GrowthExperimentsStarredMenteesStore",},
},
growthsetmenteestatus={
class="GrowthExperiments\\Api\\ApiSetMenteeStatus",
services={
"GrowthExperimentsCommunityConfig","GrowthExperimentsMentorManager","GrowthExperimentsMentorStore",},
},
growthmanagementorlist={
class="GrowthExperiments\\Api\\ApiManageMentorList",
services={
"GrowthExperimentsMentorProvider","GrowthExperimentsMentorWriter","GrowthExperimentsMentorStatusManager",},
},
growthmentordashboardupdatedata={
class="GrowthExperiments\\Api\\ApiMentorDashboardUpdateData",
services={
"GrowthExperimentsMentorProvider","JobQueueGroup",},
},
growthinvalidatepersonalizedpraisesuggestion={
class="GrowthExperiments\\Api\\ApiInvalidatePersonalizedPraiseSuggestion",
services={
"GrowthExperimentsMentorProvider","GrowthExperimentsMentorStore","GrowthExperimentsPraiseworthyMenteeSuggester","GrowthExperimentsPersonalizedPraiseLogger",},
},
growthinvalidateimagerecommendation={
class="GrowthExperiments\\Api\\ApiInvalidateImageRecommendation",
services={
"GrowthExperimentsNewcomerTasksConfigurationLoader","GrowthExperimentsAddImageSubmissionHandler","GrowthExperimentsTaskSuggesterFactory","GrowthExperimentsNewcomerTasksUserOptionsLookup","TitleFactory",},
},
},
APIPropModules={
growthimagesuggestiondata={
class="GrowthExperiments\\Api\\ApiQueryImageSuggestionData",
services={
"GrowthExperimentsImageRecommendationProvider","GrowthExperimentsNewcomerTasksConfigurationLoader","MainConfig","TitleFactory",},
},
},
APIListModules={
growthtasks={
class="GrowthExperiments\\Api\\ApiQueryGrowthTasks",
services={
"JobQueueGroup","GrowthExperimentsTaskSuggesterFactory","GrowthExperimentsNewcomerTasksConfigurationLoader","GrowthExperimentsLinkRecommendationFilter","GrowthExperimentsImageRecommendationFilter","GrowthExperimentsProtectionFilter",},
},
growthstarredmentees={
class="GrowthExperiments\\Api\\ApiQueryStarredMentees",
services={
"GrowthExperimentsStarredMenteesStore",},
},
growthmentormentee={
class="GrowthExperiments\\Api\\ApiQueryMentorMentee",
services={
"GrowthExperimentsMentorStore",},
},
growthmentorlist={
class="GrowthExperiments\\Api\\ApiQueryMentorList",
services={
"UserIdentityLookup","GrowthExperimentsMentorProvider",},
},
},
APIMetaModules={
growthmentorstatus={
class="GrowthExperiments\\Api\\ApiQueryMentorStatus",
services={
"GrowthExperimentsMentorProvider","GrowthExperimentsMentorStatusManager",},
},
growthmenteestatus={
class="GrowthExperiments\\Api\\ApiQueryMenteeStatus",
services={
"GrowthExperimentsMentorManager",},
},
growthnextsuggestedtasktype={
class="GrowthExperiments\\Api\\ApiQueryNextSuggestedTaskType",
services={
"GrowthExperimentsNewcomerTasksConfigurationLoader","GrowthExperimentsLevelingUpManager","GrowthExperimentsUserImpactLookup",},
},
},
RestRoutes={
{
path="/growthexperiments/v0/quickstarttips/{skin}/{editor}/{tasktypeid}/{uselang}",
method="GET",
class="GrowthExperiments\\Rest\\Handler\\TipsHandler",
services={
"GrowthExperimentsTipsAssembler","GrowthExperimentsNewcomerTasksConfigurationLoader",},
},{
path="/growthexperiments/v0/suggestions/addlink/{title}",
method="GET",
class="GrowthExperiments\\Rest\\Handler\\AddLinkSuggestionsHandler",
services={
"GrowthExperimentsLinkRecommendationHelper",},
},{
path="/growthexperiments/v0/suggestions/addimage/feedback/{title}",
method="PUT",
class="GrowthExperiments\\Rest\\Handler\\AddImageFeedbackHandler",
services={
"TitleFactory","RevisionLookup","GrowthExperimentsNewcomerTasksConfigurationLoader","GrowthExperimentsAddImageSubmissionHandler",},
},{
path="/growthexperiments/v0/suggestions/info",
method="GET",
class="GrowthExperiments\\Rest\\Handler\\SuggestionsInfoHandler",
services={
"GrowthExperimentsSuggestionsInfo","MainWANObjectCache",},
},{
path="/growthexperiments/v0/mentees",
method="GET",
class="GrowthExperiments\\Rest\\Handler\\MenteesHandler",
services={
"GrowthExperimentsMenteeOverviewDataProvider","GrowthExperimentsStarredMenteesStore","UserFactory","TitleFactory","TitleParser","LinkBatchFactory",},
},{
path="/growthexperiments/v0/mentees/prefixsearch/{prefix}",
method="GET",
class="GrowthExperiments\\Rest\\Handler\\MenteesPrefixSearchHandler",
services={
"GrowthExperimentsMenteeOverviewDataProvider",},
},{
path="/growthexperiments/v0/newcomertask/complete",
method="POST",
class="GrowthExperiments\\Rest\\Handler\\NewcomerTaskCompleteHandler",
services={
"GrowthExperimentsNewcomerTasksChangeTagsManager",},
},{
path="/growthexperiments/v0/welcomesurvey/skip",
method="POST",
class="GrowthExperiments\\Rest\\Handler\\WelcomeSurveySkipHandler",
services={
"GrowthExperimentsWelcomeSurveyFactory",},
},{
path="/growthexperiments/v0/user-impact/{user}",
method={
"GET","POST",},
class="GrowthExperiments\\Rest\\Handler\\UserImpactHandler",
services={
"GrowthExperimentsUserImpactStore","GrowthExperimentsUserImpactLookup","GrowthExperimentsUserImpactFormatter","StatsdDataFactory","JobQueueGroup","UserFactory",},
},},
HookHandlers={
communityconfig={
class="GrowthExperiments\\Config\\CommunityConfigurationHooks",
services={
"MainConfig",},
},
config={
class="GrowthExperiments\\Config\\ConfigHooks",
services={
"GrowthExperimentsConfigValidatorFactory","GrowthExperimentsWikiPageConfigLoader","TitleFactory","MainConfig",},
},
earlylifecycle={
class="GrowthExperiments\\EarlyLifeCycleHooks",
services={
"UserOptionsLookup",},
},
helppanel={
class="GrowthExperiments\\HelpPanelHooks",
services={
"MainConfig","GrowthExperimentsCommunityConfig","GenderCache","UserEditTracker","UserOptionsManager","GrowthExperimentsMentorManager","GrowthExperimentsMentorStatusManager",},
},
homepage={
class="GrowthExperiments\\HomepageHooks",
services={
"MainConfig","DBLoadBalancer","UserOptionsManager","UserOptionsLookup","UserIdentityUtils","NamespaceInfo","TitleFactory","PerDbNameStatsdDataFactory","JobQueueGroup","GrowthExperimentsNewcomerTasksConfigurationLoader","GrowthExperimentsCampaignConfig","GrowthExperimentsExperimentUserManager","GrowthExperimentsTaskTypeHandlerRegistry","GrowthExperimentsTaskSuggesterFactory","GrowthExperimentsNewcomerTasksUserOptionsLookup","GrowthExperimentsLinkRecommendationStore","GrowthExperimentsLinkRecommendationHelper","SpecialPageFactory","GrowthExperimentsNewcomerTasksChangeTagsManager","GrowthExperimentsSuggestionsInfo","GrowthExperimentsUserImpactLookup_Computed","GrowthExperimentsUserImpactStore",},
},
impact={
class="GrowthExperiments\\ImpactHooks",
services={
"MainConfig","GrowthExperimentsUserImpactLookup_Computed","GrowthExperimentsUserImpactStore","GrowthExperimentsUserImpactFormatter","UserOptionsLookup","UserFactory","UserEditTracker","JobQueueGroup","UserIdentityUtils",},
},
levelingup={
class="GrowthExperiments\\LevelingUp\\LevelingUpHooks",
services={
"MainConfig","GrowthExperimentsNewcomerTasksConfigurationLoader","GrowthExperimentsExperimentUserManager","GrowthExperimentsLevelingUpManager",},
},
mediawikiservices={
class="GrowthExperiments\\MediaWikiServicesHooks",
},
mentor={
class="GrowthExperiments\\Mentorship\\Hooks\\MentorHooks",
services={
"MainConfig","GrowthExperimentsCommunityConfig","UserIdentityLookup","GenderCache","GrowthExperimentsMentorManager","GrowthExperimentsMentorProvider","GrowthExperimentsMentorStore",},
},
mentordashboard={
class="GrowthExperiments\\MentorDashboard\\MentorDashboardHooks",
},
mentordashboarddiscovery={
class="GrowthExperiments\\MentorDashboard\\MentorDashboardDiscoveryHooks",
services={
"GrowthExperimentsConfig","GrowthExperimentsMentorProvider","UserOptionsLookup",},
},
mentorfilters={
class="GrowthExperiments\\Mentorship\\Hooks\\MentorFilterHooks",
services={
"GrowthExperimentsConfig","GrowthExperimentsMentorStore","GrowthExperimentsStarredMenteesStore","GrowthExperimentsMentorProvider",},
},
mentoruseroptions={
class="GrowthExperiments\\Mentorship\\Hooks\\MentorUserOptionsHooks",
},
parserfunctions={
class="GrowthExperiments\\ParserFunctionsHooks",
},
personalizedpraise={
class="GrowthExperiments\\MentorDashboard\\PersonalizedPraise\\PersonalizedPraiseHooks",
services={
"GrowthExperimentsConfig","GrowthExperimentsMentorManager","GrowthExperimentsUserImpactLookup","GrowthExperimentsPraiseworthyConditionsLookup","GrowthExperimentsPraiseworthyMenteeSuggester",},
},
schema={
class="GrowthExperiments\\SchemaHooks",
},
tour={
class="GrowthExperiments\\TourHooks",
services={
"UserOptionsLookup","GrowthExperimentsExperimentUserManager","MainConfig","UserOptionsManager",},
},
variant={
class="GrowthExperiments\\VariantHooks",
services={
"UserOptionsManager","GrowthExperimentsCampaignConfig","SpecialPageFactory",},
},
visualeditor={
class="GrowthExperiments\\VisualEditorHooks",
services={
"TitleFactory","GrowthExperimentsNewcomerTasksConfigurationLoader","GrowthExperimentsTaskTypeHandlerRegistry","PerDbNameStatsdDataFactory","UserIdentityUtils",},
},
welcomeSurvey={
class="GrowthExperiments\\WelcomeSurveyHooks",
services={
"MainConfig","TitleFactory","SpecialPageFactory","GrowthExperimentsWelcomeSurveyFactory","GrowthExperimentsCampaignConfig",},
},
confirmEmail={
class="GrowthExperiments\\ConfirmEmailHooks",
},
},
Hooks={
APIGetAllowedParams="visualeditor",
AuthChangeFormFields={
"confirmEmail","homepage","variant","mentor",},
BeforeCreateEchoEvent={
"GrowthExperiments\\Mentorship\\Hooks\\MentorHooks::onBeforeCreateEchoEvent","GrowthExperiments\\LevelingUp\\LevelingUpHooks::onBeforeCreateEchoEvent",},
BeforePageDisplay={
"helppanel","homepage","levelingup","mentordashboarddiscovery","tour","welcomeSurvey","mentor",},
CentralAuthPostLoginRedirect={
"variant","welcomeSurvey",},
ChangesListSpecialPageStructuredFilters="mentorfilters",
ChangeTagsListActive={
"helppanel","homepage","mentor",},
CirrusSearchAddQueryFeatures="GrowthExperiments\\HomepageHooks::onCirrusSearchAddQueryFeatures",
CirrusSearchScoreBuilder="homepage",
ConfirmEmailComplete="homepage",
ContributeCards="homepage",
CommunityConfigurationSchemaBeforeEditor="communityconfig",
CommunityConfigurationProvider_initList="communityconfig",
EditFilterMergedContent="config",
FormatAutocomments={
"homepage","mentor",},
GetPreferences={
"helppanel","homepage","mentordashboard","mentoruseroptions","personalizedpraise","tour","variant","welcomeSurvey",},
JsonValidateSave="config",
ListDefinedTags={
"helppanel","homepage","mentor",},
LoadExtensionSchemaUpdates="schema",
LocalUserCreated={
"helppanel","homepage","mentor","tour","variant","welcomeSurvey",},
ManualLogEntryBeforePublish={
"impact",},
MediaWikiServices="mediawikiservices",
MessageCacheFetchOverrides="earlylifecycle",
PageSaveComplete={
"config","homepage","mentor","impact","personalizedpraise",},
ParserFirstCallInit="parserfunctions",
PostLoginRedirect={
"variant","welcomeSurvey",},
RecentChange_save="homepage",
ResourceLoaderExcludeUserOptions={
"helppanel","homepage","mentordashboard","mentoruseroptions","variant",},
ResourceLoaderGetConfigVars="variant",
ResourceLoaderRegisterModules="tour",
SpecialContributionsBeforeMainOutput="homepage",
SearchDataForIndex={
handler="homepage",
deprecated=true,
},
SearchDataForIndex2="homepage",
SidebarBeforeOutput="homepage",
SiteNoticeAfter="homepage",
SkinAddFooterLinks="variant",
SkinMinervaOptionsInit={
"GrowthExperiments\\HomepageHooks::onSkinMinervaOptionsInit",},
["SkinTemplateNavigation::Universal"]={
"config","homepage","mentordashboarddiscovery",},
SpecialCreateAccountBenefits="variant",
SpecialPage_initList={
"config","homepage","welcomeSurvey",},
SpecialPageBeforeExecute={
"variant","welcomeSurvey",},
UserGetDefaultOptions={
"helppanel","homepage","mentordashboard","mentoruseroptions","personalizedpraise","tour","levelingup",},
UserGetRights="mentor",
UnitTestsAfterDatabaseSetup="schema",
UserSendConfirmationMail="confirmEmail",
VisualEditorApiVisualEditorEditPreSave="visualeditor",
VisualEditorApiVisualEditorEditPostSave={
"levelingup","visualeditor",},
WikimediaEventsShouldSchemaEditAttemptStepOversample={
"GrowthExperiments\\HomepageHooks::onWikimediaEventsShouldSchemaEditAttemptStepOversample",},
},
attributes={
EventLogging={
Schemas={
HelpPanel="/analytics/legacy/helppanel/1.4.1",
HomepageModule="/analytics/legacy/homepagemodule/1.6.5",
NewcomerTask="/analytics/legacy/newcomertask/1.0.0",
HomepageVisit="/analytics/legacy/homepagevisit/1.5.2",
},
},
CirrusSearch={
RescoreProfiles={
growth_underlinked={
i18n_msg="growthexperiments-underlinked-rescore-profile",
supported_namespaces="content",
fallback_profile="classic_noboostlinks",
rescore={
{
window=8192,
window_size_override="CirrusSearchFunctionRescoreWindowSize",
query_weight="1.0",
rescore_query_weight="1.0",
score_mode="multiply",
type="function_score",
function_chain="growth_underlinked_chain",
},},
},
},
RescoreFunctionScoreChains={
growth_underlinked_chain={
functions={
{
type="growth_underlinked",
},},
},
},
},
CommunityConfiguration={
ProviderClasses={
GrowthSuggestedEdits={
class="GrowthExperiments\\Config\\Providers\\SuggestedEditsConfigProvider",
},
},
Providers={
HelpPanel={
store={
type="wikipage",
args={
"MediaWiki:GrowthExperimentsHelpPanel.json",},
},
validator={
type="jsonschema",
args={
"GrowthExperiments\\Config\\Schemas\\HelpPanelSchema",},
},
type="mw-config",
options={
helpURL="https://www.mediawiki.org/wiki/Special:MyLanguage/Growth/Feature_summary#Help_panel",
},
},
Mentorship={
store={
type="wikipage",
args={
"MediaWiki:GrowthExperimentsMentorship.json",},
},
validator={
type="jsonschema",
args={
"GrowthExperiments\\Config\\Schemas\\MentorshipSchema",},
},
type="mw-config",
options={
helpPage="Help:Growth/Mentorship",
},
},
GrowthHomepage={
store={
type="wikipage",
args={
"MediaWiki:GrowthExperimentsHomepage.json",},
},
validator={
type="jsonschema",
args={
"GrowthExperiments\\Config\\Schemas\\HomepageSchema",},
},
type="mw-config",
options={
helpURL="https://www.mediawiki.org/wiki/Special:MyLanguage/Growth/Feature_summary#Newcomer_homepage",
},
},
GrowthSuggestedEdits={
store={
type="wikipage",
args={
"MediaWiki:GrowthExperimentsSuggestedEdits.json",},
},
validator={
type="jsonschema",
args={
"GrowthExperiments\\Config\\Schemas\\SuggestedEditsSchema",},
},
type="GrowthSuggestedEdits",
options={
helpPage="Help:Growth/Tools/Suggested_edits",
},
},
},
},
},
ForeignResourcesDir="modules/lib",
QUnitTestModule={
localBasePath="",
remoteExtPath="GrowthExperiments",
packageFiles={
"tests/qunit/index.js","modules/utils/Utils.js","tests/qunit/utils/Utils.test.js","modules/ext.growthExperiments.Homepage.SuggestedEdits/NewcomerTaskLogger.js","tests/qunit/ext.growthExperiments.Homepage.SuggestedEdits/NewcomerTaskLogger.test.js","modules/ext.growthExperiments.Homepage.Logger/index.js","tests/qunit/ext.growthExperiments.Homepage.Logger/index.test.js","modules/utils/HelpPanelLogger.js","tests/qunit/ext.growthExperiments.Help/HelpPanelLogger.test.js","modules/ext.growthExperiments.Help/HelpPanelProcessDialog.js","modules/ext.growthExperiments.Help/HelpPanelSearchWidget.js","modules/ext.growthExperiments.Help/HelpPanelProcessDialog.SuggestedEditsPanel.js","modules/ui-components/SuggestedEditsPeek.js","modules/ext.growthExperiments.Help/QuickStartTips.js","modules/ext.growthExperiments.Help/QuickStartTipsTabPanelLayout.js","modules/ext.growthExperiments.Help/HelpPanelHomeButtonWidget.js","modules/ext.growthExperiments.DataStore/TaskTypesAbFilter.js","tests/qunit/ext.growthExperiments.Help/HelpPanelProcessDialog.test.js","modules/ext.growthExperiments.Help/HelpPanelProcessDialog.SwitchEditorPanel.js","tests/qunit/ext.growthExperiments.Help/HelpPanelProcessDialog.SwitchEditorPanel.test.js","modules/ext.growthExperiments.Help/AskHelpPanel.js","tests/qunit/ext.growthExperiments.Help/AskHelpPanel.test.js","modules/ext.growthExperiments.Homepage.SuggestedEdits/PagerWidget.js","tests/qunit/ext.growthExperiments.Homepage.SuggestedEdits/PagerWidget.test.js","modules/ext.growthExperiments.Homepage.SuggestedEdits/ErrorCardWidget.js","tests/qunit/ext.growthExperiments.Homepage.SuggestedEdits/ErrorCardWidget.test.js","modules/ext.growthExperiments.StructuredTask/addlink/AddLinkArticleTarget.js","modules/ext.growthExperiments.StructuredTask/addlink/LinkSuggestionInteractionLogger.js","modules/ext.growthExperiments.StructuredTask/StructuredTaskLogger.js","tests/qunit/ext.growthExperiments.StructuredTask/addlink/AddLinkArticleTarget.test.js","tests/qunit/ext.growthExperiments.StructuredTask/addlink/dataprovider.json","modules/ext.growthExperiments.StructuredTask/addimage/AddImageUtils.js","tests/qunit/ext.growthExperiments.StructuredTask/addimage/AddImageUtils.test.js","modules/ext.growthExperiments.StructuredTask/addimage/ImageSuggestionInteractionLogger.js","tests/qunit/ext.growthExperiments.PostEdit/PostEditPanel.test.js","modules/ext.growthExperiments.PostEdit/PostEditPanel.js","tests/qunit/ext.growthExperiments.PostEdit/PostEditToastMessage.test.js","modules/ext.growthExperiments.PostEdit/PostEditToastMessage.js","tests/qunit/ext.growthExperiments.PostEdit/PostEditDrawer.test.js","modules/ext.growthExperiments.PostEdit/PostEditDrawer.js","modules/ext.growthExperiments.PostEdit/TryNewTaskPanel.js","modules/ext.growthExperiments.Homepage.SuggestedEdits/SmallTaskCard.js","modules/utils/IconUtils.js","modules/ext.growthExperiments.Homepage.SuggestedEdits/NewcomerTaskLogger.js","modules/utils/HelpPanelLogger.js","tests/qunit/ext.growthExperiments.StructuredTask/StructuredTaskLogger.test.js","modules/ext.growthExperiments.Homepage.mobile/index.js","modules/ext.growthExperiments.Homepage.mobile/TaskPreviewWidget.js","modules/ext.growthExperiments.Homepage.mobile/MobileNoTasksWidget.js","modules/ext.growthExperiments.Homepage.mobile/SuggestedEditsMobileSummary.js","tests/qunit/ext.growthExperiments.Homepage.mobile/SuggestedEditsMobileSummary.test.js","modules/ext.growthExperiments.DataStore/constants.js","modules/ext.growthExperiments.DataStore/TopicFilters.js","modules/ext.growthExperiments.DataStore/GrowthTasksApi.js","tests/qunit/ext.growthExperiments.DataStore/GrowthTasksApi.test.js","modules/ext.growthExperiments.DataStore/Topics.js","modules/ext.growthExperiments.Homepage.SuggestedEdits/FiltersDialog.js","modules/ext.growthExperiments.Homepage.SuggestedEdits/TopicFiltersDialog.js","modules/ext.growthExperiments.Homepage.SuggestedEdits/TopicSelectionWidget.js","modules/ext.growthExperiments.Homepage.SuggestedEdits/SuggestionWidget.js","modules/ext.growthExperiments.Homepage.SuggestedEdits/SuggestionGroupWidget.js","modules/ext.growthExperiments.Homepage.SuggestedEdits/MatchModeSelectWidget.js","modules/ext.growthExperiments.Homepage.SuggestedEdits/TaskTypeSelectionWidget.js","modules/ext.growthExperiments.Homepage.SuggestedEdits/ArticleCountWidget.js","modules/ext.growthExperiments.Homepage.SuggestedEdits/DifficultyFiltersDialog.js","modules/ext.growthExperiments.Homepage.SuggestedEdits/FiltersButtonGroupWidget.js","tests/qunit/ext.growthExperiments.Homepage.SuggestedEdits/FiltersButtonGroupWidget.test.js","modules/ext.growthExperiments.Homepage.SuggestedEdits/StartEditingDialog.js","modules/ui-components/SwipePane.js","tests/qunit/ext.growthExperiments.Homepage.SuggestedEdits/StartEditingDialog.test.js","modules/ext.growthExperiments.DataStore/FiltersStore.js","tests/qunit/ext.growthExperiments.DataStore/FiltersStore.test.js","modules/ext.growthExperiments.DataStore/NewcomerTasksStore.js","tests/qunit/ext.growthExperiments.DataStore/NewcomerTasksStore.test.js","modules/ui-components/CollapsibleDrawer.js","tests/qunit/ui-components/CollapsibleDrawer.test.js","modules/ui-components/SelectWithTextInputWidget.js","modules/ui-components/OptionWithTextInputWidget.js","tests/qunit/ui-components/SelectWithTextInputWidget.test.js","tests/qunit/__mocks__/config.json","tests/qunit/__mocks__/GroupedTopics.json","tests/qunit/__mocks__/Topics.json","tests/qunit/__mocks__/store.js",{
name="modules/ext.growthExperiments.DataStore/config.json",
file="tests/qunit/__mocks__/config.json",
},{
name="modules/ext.growthExperiments.Help/data.json",
file="tests/qunit/ext.growthExperiments.Help/configData.json",
},{
name="modules/ext.growthExperiments.DataStore/Topics.json",
file="tests/qunit/__mocks__/Topics.json",
},{
name="modules/ext.growthExperiments.DataStore/TaskTypes.json",
file="tests/qunit/__mocks__/TaskTypes.json",
},{
name="modules/ext.growthExperiments.DataStore/DefaultTaskTypes.json",
file="tests/qunit/__mocks__/DefaultTaskTypes.json",
},{
name="modules/ext.growthExperiments.DataStore/AQSConfig.json",
file="tests/qunit/__mocks__/AQSConfig.json",
},},
dependencies={
"oojs-ui","mediawiki.qunit-testrunner","mediawiki.base","mediawiki.router","ext.growthExperiments.SuggestedEditSession","ext.growthExperiments.DataStore","sinonjs",},
},
config={
GELevelingUpFeaturesEnabled={
description="Feature flag to enable \"leveling up\" (phab:#growthexperiments-levelingup) functionality.",
value=true,
},
GELevelingUpKeepGoingNotificationSendAfterSeconds={
description="Send a 'keep going' notification to new editors after this many seconds. Defaults to 48 hours.",
value=172800,
},
GELevelingUpKeepGoingNotificationThresholds={
description="Article namespace edit count thresholds at which the user should receive a notification to keep going with suggested edits. The user can receive a notification if their edit count is greater than or equal to the first number in the array, and lower than or equal to the second number in the array.",
value={
1,4,},
merge_strategy="provide_default",
},
GELevelingUpGetStartedNotificationSendAfterSeconds={
description="Send a 'get started' notification to new editors after this many seconds. Defaults to 48 hours.",
value=172800,
},
GELevelingUpGetStartedMaxTotalEdits={
description="Do not send a 'get started' notification to users with more than this edits.",
value=10,
},
GELevelingUpManagerTaskTypeCountThresholdMultiple={
description="The task type count threshold to use when determining whether to prompt a user to try a new task type. If the user has completed more than this number of a particular task type, it will not be suggested as a next task type to try. If a user completes edits for a task type in a multiple of of this number (e.g. 3, 6, or 12 with the default value), then the user is prompted to try a new task type.",
value=3,
},
GERefreshUserImpactDataMaintenanceScriptEnabled={
description="Feature flag to determine if the refreshUserImpactData.php maintenance script may run.",
value=true,
},
GEUserImpactMaxArticlesToProcessForPageviews={
description="The maximum number of articles to consider when fetching pageview data from the AQS service. Only relevant to the RefreshUserImpactJob. This doubles as a feature flag; set this value to 5 to have it use the same limit used in web requests where we refresh user impact data.",
value=1000,
},
GEUserImpactMaximumProcessTimeSeconds={
description="The maximum amount of time, in seconds, that may be used to fetch page view data from AQS. Currently used in job queue context. Default is 5 minutes.",
value=300,
},
GEInfoboxTemplates={
description="List of templates that provide Infobox functionality.",
value={
},
},
GEInfoboxTemplatesTest={
description="List of templates that provide Infobox functionality. Used for manually testing changes.",
value={
},
},
GEDatabaseCluster={
description="Which database cluster to use. False means the cluster of the current wiki will be used. The database name will be the database name configured for the wiki, regardless of this setting. Only set this if you manage the DB schema manually.",
value=false,
},
GEWikiConfigPageTitle={
description="Name of page used for on-wiki config; must be in NS_MEDIAWIKI and end with .json; only variables listed in GEOnWikiConfigAllowList may be overriden on wiki",
value="MediaWiki:GrowthExperimentsConfig.json",
},
GEWikiConfigEnabled={
description="If set to false, on-wiki configuration will be ignored. WARNING: This will fallback to PHP-globals for all config. By setting this to false, you can break most of the features.",
value=true,
},
GEUseCommunityConfigurationExtension={
description="If set to true, the CommunityConfiguration extension is used to power on-wiki config.",
value=false,
},
GEHelpPanelReadingModeNamespaces={
description="Numerical IDs of the MediaWiki namespaces in which to show the help panel in reading mode. Specifying a namespace will also include its talk namespace. Defaults to NS_PROJECT and NS_HELP namespaces.",
value={
2,4,12,},
},
GEHelpPanelExcludedNamespaces={
description="MediaWiki namespaces that the help panel will be excluded from.",
value={
},
},
GEHelpPanelNewAccountEnableWithHomepage={
description="By default, the help panel is enabled for new accounts in lockstep with the homepage, controlled by GEHomepageNewAccountEnablePercentage. To disable this behavior and use GEHelpPanelNewAccountEnablePercentage instead, set this to false.",
value=true,
},
GEHelpPanelNewAccountEnablePercentage={
description="Percentage of new accounts to enable help panel for. Must be a whole number. Ignored by default, only used if GEHelpPanelNewAccountEnableWithHomepage is false.",
value=100,
},
GEHelpPanelHelpDeskTitle={
description="MediaWiki title for help panel CTA when users have disabled JS. Templates or magic words contained in this string will be expanded.",
value="Main_Page",
},
GEHelpPanelHelpDeskPostOnTop={
description="Whether to post new questions on the top of the help desk. Default is to post on the bottom (like section=new does). Only affects wikitext pages.",
value=false,
},
GEHelpPanelViewMoreTitle={
description="MediaWiki title for view more articles on help link.",
value="Main_Page",
},
GEHelpPanelEnabled={
description="Global ON/OFF switch for the help panel feature.",
value=true,
},
GEHelpPanelLinks={
description="List of links to display in the help panel.",
merge_strategy="array_plus",
value={
{
title="Project:Help",
text="Site help",
id="help",
},},
},
GEHelpPanelSearchNamespaces={
description="List of namespaces to include in the search for help content.",
value={
4,12,},
},
GEHelpPanelSearchForeignAPI={
description="api.php URL of a foreign wiki to search instead of the current wiki. Used for testing/development to get more/better results.",
value=false,
},
GEHelpPanelSuggestedEditsPreferredEditor={
description="The preferred editor interface for suggested edits. The key is the task type handler ID (template-based or link-recommendation). Valid values for template-based are 'visualeditor' or 'wikitext'; for link-recommendation &amp; image-recommendation only machineSuggestions is valid",
value={
["template-based"]="visualeditor",
["link-recommendation"]="machineSuggestions",
["image-recommendation"]="machineSuggestions",
["section-image-recommendation"]="machineSuggestions",
},
},
GEHelpPanelAskMentor={
description="When using the help panel's question-asking functionality, post on the mentor's talk page instead of on the help desk page.",
value=true,
},
WelcomeSurveyEnabled={
description="Global ON/OFF switch for the Welcome survey feature.",
value=true,
},
WelcomeSurveyAllowFreetextResponses={
description="If set to true, freetext responses with the welcome survey are allowed.",
value=false,
},
WelcomeSurveyPrivacyStatementUrl={
description="URL of the privacy statement to be used on the Welcome survey.",
value="https://foundation.wikimedia.org/wiki/Special:Mylanguage/Legal:New_User_Welcome_Survey_Privacy_Statement",
},
WelcomeSurveyReminderExpiry={
description="Number of days a reminder on Special:Homepage should be shown for if the user has not filled out the welcome survey yet. Set to 0 to disable the reminder.",
value=30,
},
GEHomepageEnabled={
description="Global ON/OFF switch for the Homepage feature.",
value=true,
},
GEHomepageNewAccountEnablePercentage={
description="Percentage of new accounts to enable homepage for. Must be a whole number.",
value=100,
},
GEHomepageNewAccountVariantsByPlatform={
description="Which percentage of new accounts to assign which A/B testing variant. For each variant, assign a percentage to \"mobile\" or \"desktop\" platforms. For legacy reasons this has 'Homepage' in the name and is only applied to new accounts for whom the homepage got enabled. Percentages must be whole numbers. If the percentages don't add up to 100, some new accounts will not be assigned a variant. Those accounts will fall back on GEHomepageDefaultVariant. The random choice can be overridden with the geForceVariant query parameter.",
value={
control={
mobile=100,
desktop=100,
},
},
},
GEHomepageDefaultVariant={
description="Experiment variant to use for users who weren't assigned a variant at account creation time, or the variant they got is not valid anymore. Valid values: 'control'.",
value="control",
},
GEHomepageLoggingEnabled={
description="ON/OFF switch for the homepage event logging feature.",
value=true,
},
GEMentorshipEnabled={
description="Are the mentorship features enabled?",
value=true,
},
GEMentorshipNewAccountEnablePercentage={
description="Percentage of new homepage-enabled users who will receive the mentorship module. Note that user must fall into _both_ GEHomepageNewAccountEnablePercentage and this percentage to be considered for mentorship.",
value=100,
},
GEMentorshipAutomaticEligibility={
description="Automatically grant \"enrollasmentor\" to users who are eligible to enroll as mentors. See GEMentorshipMinimumAge and GEMentorshipMinimumEditcount to define eligibility rules (requirements set by both variables need to be met to make users eligible).",
value=true,
},
GEMentorshipMinimumAge={
description="Minimum tenure (in days) required for users to be eligible as mentors. Only used if GEMentorshipAutomaticEligibility is true. To make an user eligible for mentorship, they need to satisfy both GEMentorshipMinimumAge and GEMentorshipMinimumEditcount.",
value=90,
},
GEMentorshipMinimumEditcount={
description="Minimum number of edits required for users to be eligible as mentors. Only used if GEMentorshipAutomaticEligibility is true. To make an user eligible for mentorship, they need to satisfy both GEMentorshipMinimumAge and GEMentorshipMinimumEditcount.",
value=500,
},
GEPersonalizedPraiseBackendEnabled={
description="Feature flag controlling whether personalized praise's backend is enabled",
value=true,
},
GEPersonalizedPraiseNotificationsEnabled={
description="Feature flag controlling whether personalized praise notifications are enabled",
value=true,
},
GEPersonalizedPraiseDefaultNotificationsFrequency={
description="Default frequency of notifications (in hours) related to personalized praise. Mentors can customize this.",
value="168",
},
GEPersonalizedPraiseDays={
description="Number of days to consider when checking whether a mentee is praiseworthy (used together with GEPersonalizedPraiseMinEdits). This must not be longer than wgRCMaxAge.",
value=7,
},
GEPersonalizedPraiseMinEdits={
description="Number of article edits a mentee needs to have within GEPersonalizedPraiseDays to be considered praiseworthy",
value=8,
},
GEPersonalizedPraiseMaxEdits={
description="Maximum number of total edits a mentee can have to be considered praiseworthy (used to avoid suggesting experienced users)",
value=500,
},
GEPersonalizedPraiseMaxReverts={
description="Maximum number of total reverted edits a mentee can have to be considered praiseworthy or null if check should be skipped.",
value=nil,
},
GEStructuredMentorList={
description="Title of the wiki page that has the mentor list in JSON format (used by StructuredMentorProvider)",
value="MediaWiki:GrowthMentors.json",
},
GEMentorDashboardEnabled={
description="Should users be allowed to access Special:MentorDashboard?",
value=true,
},
GEMentorDashboardEnabledModules={
description="List of enabled modules in the Mentor dashboard",
value={
["mentee-overview"]=true,
["mentor-tools"]=true,
resources=true,
["personalized-praise"]=true,
},
},
GEHomepageSuggestedEditsEnabled={
description="Global ON/OFF switch for the suggested edits feature on the homepage.",
value=true,
},
GEHomepageSuggestedEditsIntroLinks={
description="Titles of local help pages linked from the suggested edits intro dialog.",
value={
create="Help:Creating pages",
image="Help:Images",
},
},
GEHomepageSuggestedEditsEnableTopics={
description="Enable topic filters for suggested edits",
value=true,
},
GEConfirmEmailEnabled={
description="Global ON/OFF switch for the email confirmation changes.",
value=true,
},
GENewcomerTasksConfigTitle={
description="Title of a MediaWiki page which contains suggested edits configuration. If the title has an interwiki prefix, then its content will be loaded remotely via an HTTP request. Should be in the MediaWiki: namespace, have JSON content type and contain a map of task type -&gt; task configuration where task configuration consists of the following fields: type  - a task type handler ID; group - 'easy', 'medium' or 'hard'. An optional 'disabled' field, when present and truthy, will make the system ignore that task type. Depending on the task type, there might be other fields, specifically:\n- type=template-based: templates - an array of template names (without namespace) for the maintenance templates\n- type=link-recommendation: minimumTasksPerTopic, minimumLinksPerTask, minimumLinkScore, maximumLinksPerTask, maximumLinksToShowPerTask, minimumTimeSinceLastEdit, minimumWordCount, maximumWordCount: parameters of acceptable tasks.\n\nThe system messages growthexperiments-homepage-suggestededits-tasktype-name-&lt;tasktype&gt; and growthexperiments-homepage-suggestededits-tasktype-description-&lt;tasktype&gt; will be used for task name and description; both must exist.",
value="MediaWiki:NewcomerTasks.json",
},
GENewcomerTasksTopicType={
description="How the topic of an article is identified. One of: morelike - use CirrusSearch morelikethis search with a predefined set of representetative articles for each topic; ores - use ORES articletopic predictions.",
value="morelike",
},
GENewcomerTasksOresTopicConfigTitle={
description="Title of a MediaWiki page which contains ORES topic configuration for suggested edits. If the title has an interwiki prefix, then its content will be loaded remotely via an HTTP request. Should be in the MediaWiki: namespace,  have JSON content type and contain an object like { topics: &lt;topics&gt;, groups: &lt;groups&gt; }. &lt;topics&gt; is a map of topic id -&gt; topic configuration, with each topic an object with the properties 'group' (for grouping topics visually; each section name corresponds with a growthexperiments-homepage-suggestededits-topic-group-name-&lt;id&gt; system message which must exist) and 'oresTopics' (list of ORES topic IDs to use for this topic, ie. the values to use with the articletopic: search keyword). The system message growthexperiments-homepage-suggestededits-topic-name-&lt;id&gt; will be used for human-readable topic name and must exist. &lt;groups&gt; is a list of the group ids used in the topics section, to define the order of groups.",
value="MediaWiki:NewcomerTopicsOres.json",
},
GENewcomerTasksTopicConfigTitle={
description="Title of a MediaWiki page which contains morelike topic configuration for suggested edits. If the title has an interwiki prefix, then its content will be loaded remotely via an HTTP request. Should be in the MediaWiki: namespace, have JSON content type and contain a map of topic id -&gt; topic configuration, which is an object with the properties 'titles' (list of mainspace page names of pages which are considered representative of the topic, to be used for text similarity comparision) and 'label' (human-readable name).",
value="MediaWiki:NewcomerTopics.json",
},
GENewcomerTasksTaskTypeHandlers={
description="Used for registering TaskTypeHandlers to the TaskTypeHandlerRegistry. An associative array with handler ID =&gt; handler specification, which is an ObjectFactory specification or a factory callable. Handlers IDs correspond to the 'type' parameters in the task config page.",
value={
["template-based"]={
class="GrowthExperiments\\NewcomerTasks\\TaskType\\TemplateBasedTaskTypeHandler",
services={
"GrowthExperimentsNewcomerTasksConfigurationValidator","GrowthExperimentsTemplateBasedTaskSubmissionHandler","TitleParser",},
},
["link-recommendation"]={
class="GrowthExperiments\\NewcomerTasks\\TaskType\\LinkRecommendationTaskTypeHandler",
services={
"GrowthExperimentsNewcomerTasksConfigurationValidator","TitleParser","GrowthExperimentsLinkRecommendationProvider","GrowthExperimentsAddLinkSubmissionHandler",},
},
["image-recommendation"]={
class="GrowthExperiments\\NewcomerTasks\\TaskType\\ImageRecommendationTaskTypeHandler",
services={
"GrowthExperimentsNewcomerTasksConfigurationValidator","TitleParser","GrowthExperimentsImageRecommendationProvider","GrowthExperimentsAddImageSubmissionHandler",},
},
["section-image-recommendation"]={
class="GrowthExperiments\\NewcomerTasks\\TaskType\\SectionImageRecommendationTaskTypeHandler",
services={
"GrowthExperimentsNewcomerTasksConfigurationValidator","TitleParser","GrowthExperimentsImageRecommendationProvider","GrowthExperimentsAddImageSubmissionHandler",},
},
null={
class="GrowthExperiments\\NewcomerTasks\\TaskType\\NullTaskTypeHandler",
},
},
},
GENewcomerTasksRemoteApiUrl={
description="URL of a remote API (ending with 'api.php') to use for identifying suggested edits. This is meant for developer setups.",
value=nil,
},
GENewcomerTasksRemoteArticleOrigin={
description="Origin to append suggested article URLs to (e.g. 'https://en.wikipedia.org'). This is meant for developer setups.",
value=nil,
},
GENewcomerTasksGuidanceEnabled={
description="Global ON/OFF switch for the newcomer tasks guidance feature.",
value=true,
},
GENewcomerTasksGuidanceRequiresOptIn={
description="If true, the guidance feature will only be displayed to users who have the (hidden) preference for it enabled. If false (default), it will be displayed to everyone.",
value=false,
},
GERestbaseUrl={
description="URL of the RESTBase service (PCS Summary API - see https://www.mediawiki.org/wiki/Page_Content_Service#/page/summary) used for task cards. Autogenerated from the wiki URL when not set.",
value=false,
},
GEMediaInfoRepos={
description="List of repo names which provide WikibaseMediaInfo data.",
value={
"shared","wikimediacommons",},
},
GEDeveloperSetup={
description="Set to true in developer (non-production) settings. In practice this will relax assumptions about page existence, which might be needed to approximate production behavior when e.g. a remote API is used for searching for pages, or a link recommendation service trained on a production wiki is used on a testing wiki.",
value=false,
},
GENewcomerTasksLinkRecommendationsEnabled={
description="Global ON/OFF switch for link recommendations.",
value=true,
},
GELinkRecommendationsFrontendEnabled={
description="Global ON/OFF switch for the link recommendations feature. Depending on the state, either the 'links' or the 'link-recommendation' task type is hidden. Can be overridden by SuggestedEdits::LINK_RECOMMENDATIONS_ENABLED_PREF.",
value=true,
},
GEUseNewImpactModule={
description="Whether the new impact module should be used instead of the old impact module",
value=true,
},
GETopicsMatchModeEnabled={
description="Global ON/OFF switch for the topics match mode UI feature.",
value=false,
},
GENewcomerTasksImageRecommendationsEnabled={
description="Global ON/OFF switch for image recommendations.",
value=true,
},
GENewcomerTasksSectionImageRecommendationsEnabled={
description="Global ON/OFF switch for section-level image recommendations.",
value=true,
},
GEImageRecommendationServiceUrl={
description="Root URL of the image recommendation service (no trailing slash).",
value=false,
},
GEImageRecommendationServiceHttpProxy={
description="HTTP proxy for the service specified via GEImageRecommendationServiceUrl.",
value=nil,
},
GEImageRecommendationServiceUseTitles={
description="Use titles instead of page IDs when calling the service. Less ideal but allows setting up test environments to use the production service.",
value=true,
},
GEImageRecommendationApiHandler={
description="Corresponding API handler to use for the (top-level and section-level) image recommendations; can be 'production' (ProductionImageRecommendationApiHandler), 'mvp' (MvpImageRecommendationApiHandler) or 'actionapi' (ActionApiImageRecommendationApiHandler). See these classes for more information.",
value="mvp",
},
GEImageRecommendationServiceWikiIdMasquerade={
description="The wiki ID to use in requests to the image recommendation service. Used for developer setups.",
value=nil,
},
GEImageRecommendationServiceAccessToken={
description="Personal access token from the wiki GEImageRecommendationServiceUrl points to. For developer setups using the 'actionapi' handler only.",
value=nil,
},
GELinkRecommendationServiceUrl={
description="Root URL of the link recommendation service. When using the 'actionapi' handler, this should point to api.php.",
value=false,
},
GELinkRecommendationServiceAccessToken={
description="Personal access token from api.wikimedia.org to use when accessing the external production service. For developer setups only.",
value=nil,
},
GELinkRecommendationServiceTimeout={
description="Request timeout when contacting the link recommendation service.",
value=nil,
},
GELinkRecommendationFallbackOnDBMiss={
description="Fall back to the service at GELinkRecommendationServiceUrl when the recommendation is not cached in the database. This is only intended for simple local setups.",
value=false,
},
GELinkRecommendationsUseEventGate={
description="Whether to use EventGate for notifying about link recommendation creation. When set to false, uses CirrusSearch diretcly.",
value=false,
},
GELinkRecommendationServiceWikiIdMasquerade={
description="The wiki ID to use in requests to the link recommendation service. Used for developer setups.",
value=nil,
},
GEStructuredTaskRejectionReasonTextInputEnabled={
description="Whether free text input should be shown when prompting the user for reasons why a suggestion was rejected.",
value=false,
},
GELevelingUpManagerInvitationThresholds={
description="Article namespace edit count thresholds at which the user should be invited to try suggested edits (assuming they haven't before).",
value={
3,7,},
},
GECampaigns={
description="A map of campaign ID to campaign configuration. Campaign configuration currently includes these fields:\n* pattern: a regexp matched against the \"campaign\" request parameter during signup to determine whether the user should be included in some campaign\n* signupPageTemplate: a template name to use for the \"benefits\" block of Special:CreateAccount\n* signupPageTemplateParameters: a map of parameters to pass to the template\n* topics: an array of topic IDs (which are defined in GECampaignTopics) to include on the top of the topic selector as custom topics\n\nExamples can be found at https://www.mediawiki.org/wiki/Extension:GrowthExperiments/Technical_documentation/Special:EditGrowthConfig.",
value={
},
},
GECampaignTopics={
description="Mapping of topic IDs to its search expression, used to show campaign-specific topics in the suggested edits module. Examples can be found at https://www.mediawiki.org/wiki/Extension:GrowthExperiments/Technical_documentation/Special:EditGrowthConfig.",
value={
},
},
WelcomeSurveyExperimentalGroups={
description="List of experimental groups. A group is defined with a range to randomly match users and the list of questions they will see on the survey.",
merge_strategy="array_plus_2d",
value={
control={
percentage=100,
format="specialpage",
questions={
"reason","edited","email","languages",},
},
},
},
GECommunityUpdatesEnabled={
description="Are Community Updates enabled?",
value=true,
},
},
SpecialPages={
MentorDashboard={
class="GrowthExperiments\\Specials\\SpecialMentorDashboard",
services={
"GrowthExperimentsMentorDashboardModuleRegistry","GrowthExperimentsMentorProvider","UserOptionsLookup","JobQueueGroupFactory",},
},
ManageMentors={
class="GrowthExperiments\\Specials\\SpecialManageMentors",
services={
"UserIdentityLookup","UserEditTracker","GrowthExperimentsMentorProvider","GrowthExperimentsMentorWriter","GrowthExperimentsMentorStatusManager","GrowthExperimentsMentorRemover","GrowthExperimentsCommunityConfig",},
},
EnrollAsMentor={
class="GrowthExperiments\\Specials\\SpecialEnrollAsMentor",
services={
"GrowthExperimentsCommunityConfig","GrowthExperimentsMentorProvider","GrowthExperimentsMentorWriter",},
},
QuitMentorship={
class="GrowthExperiments\\Specials\\SpecialQuitMentorship",
services={
"GrowthExperimentsMentorProvider","GrowthExperimentsMentorRemover",},
},
},
LogTypes={
"growthexperiments",},
LogNames={
growthexperiments="growthexperiments-log-name",
},
LogHeaders={
growthexperiments="growthexperiments-log-header",
},
LogActionsHandlers={
["growthexperiments/setmentor"]="GrowthExperiments\\Mentorship\\MentorChangeLogFormatter",
["growthexperiments/claimmentee"]="GrowthExperiments\\Mentorship\\MentorChangeLogFormatter",
["growthexperiments/setmentor-no-previous-mentor"]="GrowthExperiments\\Mentorship\\MentorChangeLogFormatter",
["growthexperiments/claimmentee-no-previous-mentor"]="GrowthExperiments\\Mentorship\\MentorChangeLogFormatter",
["growthexperiments/addlink"]="LogFormatter",
["growthexperiments/addimage"]="GrowthExperiments\\NewcomerTasks\\AddImage\\AddImageLogFormatter",
["growthexperiments/addsectionimage"]="GrowthExperiments\\NewcomerTasks\\AddSectionImage\\AddSectionImageLogFormatter",
},
ActionFilteredLogs={
growthexperiments={
claimmentee={
"claimmentee","claimmentee-no-previous-mentor",},
setmentor={
"setmentor","setmentor-no-previous-mentor",},
addlink={
"addlink",},
addimage={
"addimage","addsectionimage",},
},
},
AvailableRights={
"setmentor","managementors","enrollasmentor",},
GroupPermissions={
sysop={
setmentor=true,
managementors=true,
},
},
GrantPermissions={
managementorship={
setmentor=true,
managementors=true,
enrollasmentor=true,
},
},
GrantPermissionGroups={
managementorship="administration",
},
GrantRiskGroups={
managementorship="low",
},
RateLimits={
growthmentordashboardupdatedata={
["&amp;can-bypass"]=false,
user={
1,7200,},
},
growthexperimentsuserimpacthandler={
["&amp;can-bypass"]=true,
anon={
5,86400,},
user={
10,86400,},
},
["growthexperiments-apiqueryimagesuggestiondata"]={
["&amp;can-bypass"]=false,
user={
500,86400,},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GrowthExperiments",
},
GuidedTour={
name="GuidedTour",
version="2.0",
author={
"Munaf Assaf","Terry Chay","Matthew Flaschen","Pau Giner","Ori Livneh","Rob Moen","S Page","Sam Smith","Moiz Syed","Luke Welling",},
url="https://www.mediawiki.org/wiki/Extension:GuidedTour",
descriptionmsg="guidedtour-desc",
["license-name"]="Apache-2.0",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
QUnitTestModule={
localBasePath="tests/qunit",
remoteExtPath="GuidedTour/tests/qunit",
scripts={
"ext.guidedTour.lib.tests.js",},
dependencies={
"ext.guidedTour.lib",},
},
Hooks={
BeforePageDisplay="main",
ResourceLoaderRegisterModules="main",
RedirectSpecialArticleRedirectParams="main",
MakeGlobalVariablesScript="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\GuidedTour\\Hooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/GuidedTour",
},
HAWelcome={
name="Highly Automated Welcome Tool",
namemsg="welcome-user-name",
version="0.8.4",
author={
"Krzysztof Krzyżaniak","Maciej Błaszkowski","Jack Phoenix","Mainframe98",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:HAWelcome",
descriptionmsg="welcome-user-desc",
type="other",
JobClasses={
HAWelcome="HAWelcomeJob",
},
HookHandlers={
default={
class="HAWelcomeHooks",
services={
"ReadOnlyMode","UserGroupManager","UserFactory",},
},
},
Hooks={
PageSaveComplete="default",
UserGroupsChanged="HAWelcomeHooks::onUserGroupsChanged",
UserGetReservedNames="HAWelcomeHooks::onUserGetReservedNames",
},
GroupPermissions={
bot={
welcomeexempt=true,
},
staff={
welcomeexempt=true,
},
sysop={
welcomeexempt=true,
},
bureaucrat={
welcomeexempt=true,
},
},
AvailableRights={
"welcomeexempt",},
config={
HAWelcomeWelcomeUsername="ShoutWiki",
HAWelcomeStaffGroupName="staff",
HAWelcomeSignatureFromPreferences=false,
},
requires={
MediaWiki="&gt;= 1.38.0",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/HAWelcome",
},
HSTS={
name="HSTS",
version="1.1.1",
author="Seb35",
url="https://www.mediawiki.org/wiki/Extension:HSTS",
descriptionmsg="hsts-desc",
["license-name"]="WTFPL",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
},
DefaultUserOptions={
hsts=0,
},
Hooks={
GetPreferences="main",
GetBetaFeaturePreferences="main",
BeforePageDisplay="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\HSTS\\Hooks",
services={
"MainConfig","UserOptionsLookup",},
},
},
config={
HSTSForAnons=false,
HSTSForUsers=false,
HSTSMaxAge=2592000,
HSTSIncludeSubdomains=false,
HSTSBetaFeature=false,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/HSTS",
},
HTMLPurifier={
name="HTMLPurifier",
version="3.0",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",
url="https://www.mediawiki.org/wiki/Extension:HTMLPurifier",
descriptionmsg="htmlpurifier-desc",
["license-name"]="GPL-3.0-or-later",
type="tag",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
ParserFirstCallInit="HTMLPurifierHooks::onParserFirstCallInit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/HTMLPurifier",
},
HTML_Tags={
name="HTML Tags",
version="0.3",
author="Yaron Koren",
url="https://www.mediawiki.org/wiki/Extension:HTML_Tags",
descriptionmsg="htmltags-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="HTMLTags::register",
},
config={
HTMLTagsAttributes={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/HTMLTags",
},
HTMLTemplates={
name="HTMLTemplates",
author={
"Brian Wolff",},
version="0.1",
url="https://www.mediawiki.org/wiki/Extension:HTMLTemplates",
descriptionmsg="htmltemplates-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
ContentHandlers={
htmltemplate="MediaWiki\\Extension\\HTMLTemplates\\HTMLTemplateContentHandler",
},
requires={
MediaWiki="&gt;= 1.35",
},
ExtensionMessagesFiles={
HTMLTemplatesMagic="HTMLTemplates.magic.php",
HTMLTemplatesNamespaces="HTMLTemplates.namespaces.php",
},
Hooks={
ParserFirstCallInit="main",
CodeEditorGetPageLanguage="main",
ContentHandlerDefaultModelFor="main",
BeforeParserFetchTemplateAndtitle="MediaWiki\\Extension\\HTMLTemplates\\HTMLTemplateContent::onBeforeParserFetchTemplateAndtitle",
BeforeParserFetchTemplateRevisionRecord="MediaWiki\\Extension\\HTMLTemplates\\HTMLTemplateContent::onBeforeParserFetchTemplateAndtitle",
},
callback="MediaWiki\\Extension\\HTMLTemplates\\Hooks::setup",
HookHandlers={
main={
class="MediaWiki\\Extension\\HTMLTemplates\\Hooks",
services={
"RevisionLookup","HTMLTemplates:ParameterReplacer",},
},
},
namespaces={
{
id=3454,
constant="NS_HTMLTEMPLATE",
name="HTMLTemplate",
subpages=true,
protection="edithtmltemplates",
},{
id=3455,
constant="NS_HTMLTEMPLATE_TALK",
name="HTMLTemplate_talk",
subpages=true,
},},
config={
},
AvailableRights={
"edithtmltemplates",},
GroupPermissions={
["interface-admin"]={
edithtmltemplates=true,
},
},
attributes={
TemplateSandbox={
EditNamespaces={
3454,},
},
TemplateStyles={
Namespaces={
3454,},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/HTMLTemplates",
},
HeadScript={
name="HeadScript",
version="1.1.1",
author={
"[https://www.mediawiki.org/wiki/User:JinRyuuNagy JinRyuu]","[https://www.mediawiki.org/wiki/User:StarHeartHunt StarHeartHunt]",},
url="https://www.mediawiki.org/wiki/Extension:HeadScript",
descriptionmsg="headscript-desc",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
["license-name"]="MIT",
Hooks={
BeforePageDisplay={
"HeadScript::onBeforePageDisplay",},
},
config_prefix="wg",
config={
HeadScriptCode={
value="&lt;!-- No Head Script --&gt;",
},
HeadScriptName={
value="&lt;!-- No Script Name --&gt;",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/HeadScript",
},
Header_Tabs={
name="Header Tabs",
version="2.2.2",
author={
"[http://www.sergeychernyshev.com Sergey Chernyshev]","Yaron Koren","[https://ofbeaton.com Finlay Beaton]","Priyanshu Varshney",},
url="https://www.mediawiki.org/wiki/Extension:Header_Tabs",
descriptionmsg="headertabs-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
ExtensionMessagesFiles={
HeaderTabsMagic="HeaderTabs.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="HeaderTabsHooks::registerParserFunctions",
ParserAfterTidy="HeaderTabsHooks::replaceFirstLevelHeaders",
ResourceLoaderGetConfigVars="HeaderTabsHooks::addConfigVarsToJS",
},
config={
HeaderTabsUseHistory=true,
HeaderTabsRenderSingleTab=false,
HeaderTabsAutomaticNamespaces={
},
HeaderTabsDefaultFirstTab=false,
HeaderTabsDisableDefaultToc=true,
HeaderTabsGenerateTabTocs=false,
HeaderTabsEditTabLink=true,
HeaderTabsNoTabsInToc=false,
},
requires={
MediaWiki="&gt;= 1.33",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/HeaderTabs",
},
HelpPages={
name="HelpPages",
version="0.4.1",
author="Kunal Mehta",
url="https://www.mediawiki.org/wiki/Extension:HelpPages",
descriptionmsg="helppages-desc",
["license-name"]="Unlicense",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
Hooks={
ShowMissingArticle="HelpPagesHooks::onShowMissingArticle",
["SkinTemplateNavigation::Universal"]="HelpPagesHooks::onSkinTemplateNavigationUniversal",
ArticlePurge="HelpPagesHooks::onArticlePurge",
HtmlPageLinkRendererBegin="HelpPagesHooks::onHtmlPageLinkRendererBegin",
},
config={
HelpPagesExpiry={
value=604800,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/HelpPages",
},
HidePrefix={
name="HidePrefix",
version="0.1.0",
author={
"[https://www.mediawiki.org/wiki/User:Van_de_Bugger Van de Bugger]",},
url="https://www.mediawiki.org/wiki/Extension:HidePrefix",
descriptionmsg="hideprefix-desc",
["license-name"]="AGPL-3.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
HtmlPageLinkRendererBegin="HidePrefix::onHtmlPageLinkRendererBegin",
BeforePageDisplay="HidePrefix::onBeforePageDisplay",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/HidePrefix",
},
HierarchyBuilder={
name="HierarchyBuilder",
version="7.0.0",
author={
"[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]","[https://www.mediawiki.org/wiki/User:Kevin.ji Kevin Ji]",},
url="https://www.mediawiki.org/wiki/Extension:HierarchyBuilder",
descriptionmsg="hierarchybuilder-desc",
["license-name"]="MIT",
type="parserhook",
requires={
MediaWiki="&gt;= 1.34",
extensions={
SemanticMediaWiki="&gt;=3.1.0",
PageForms="&gt;=3.7.0",
},
},
ExtensionMessagesFiles={
HierarchyBuilderMagic="HierarchyBuilder.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="HierarchyBuilderHooks::efHierarchyBuilderSetup",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/HierarchyBuilder",
},
HitCounters={
name="HitCounters",
namemsg="hitcounters-extensionname",
version="0.4",
author={
"[//mwstake.org Mark A. Hershberger]",},
url="https://www.mediawiki.org/wiki/Extension:HitCounters",
descriptionmsg="hitcounters-desc",
type="variable",
["license-name"]="GPL-3.0-or-later",
requires={
MediaWiki="&gt;= 1.36.0",
},
ExtensionMessagesFiles={
HitCountersMagic="HitCounters.i18n.magic.php",
HitCountersAlias="HitCounters.i18n.alias.php",
},
SpecialPages={
PopularPages="HitCounters\\SpecialPopularPages",
},
Hooks={
SpecialStatsAddExtra="HitCounters\\Hooks::onSpecialStatsAddExtra",
LoadExtensionSchemaUpdates="HitCounters\\Hooks::onLoadExtensionSchemaUpdates",
MagicWordwgVariableIDs="HitCounters\\Hooks::onMagicWordwgVariableIDs",
ParserGetVariableValueSwitch="HitCounters\\Hooks::onParserGetVariableValueSwitch",
ParserFirstCallInit="HitCounters\\Hooks::onParserFirstCallInit",
PageViewUpdates="HitCounters\\Hooks::onPageViewUpdates",
SkinAddFooterLinks="HitCounters\\Hooks::onSkinAddFooterLinks",
["AbuseFilter-builder"]="HitCounters\\Hooks::onAbuseFilterBuilder",
["AbuseFilter-deprecatedVariables"]="HitCounters\\Hooks::onAbuseFilterDeprecatedVariables",
["AbuseFilter-generateTitleVars"]="HitCounters\\Hooks::onAbuseFilterGenerateTitleVars",
["AbuseFilter-computeVariable"]="HitCounters\\Hooks::onAbuseFilterComputeVariable",
},
AvailableRights={
"hitcounter-exempt",},
config={
HitcounterUpdateFreq=1,
DisableCounters=false,
EnableAddTextLength=false,
EnableAddPageId=false,
},
composer="mediawiki/hit-counters",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/HitCounters",
},
HoneyPot={
name="HoneyPot",
author={
"Daniel Scherzer","WikiTeq",},
url="https://www.mediawiki.org/wiki/Extension:HoneyPot",
descriptionmsg="honeypot-desc",
["license-name"]="GPL-2.0-or-later",
type="antispam",
requires={
MediaWiki="&gt;= 1.35.0",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\HoneyPot\\Hooks",
},
},
Hooks={
AuthChangeFormFields={
handler="main",
},
},
AuthManagerAutoConfig={
preauth={
HoneyPotPreAuthenticationProvider={
class="MediaWiki\\Extension\\HoneyPot\\Auth\\HoneyPotPreAuthenticationProvider",
services={
"MainConfig",},
sort=10,
},
},
},
config={
HoneyPotMisleadingError={
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/HoneyPot",
},
HostStats={
name="HostStats",
version="2.0.0",
author={
"Hydriz","...",},
url="https://www.mediawiki.org/wiki/Extension:HostStats",
descriptionmsg="hoststats-desc",
["license-name"]="GPL-3.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.32.0",
},
AvailableRights={
"hoststats",},
SpecialPages={
HostStats="SpecialHostStats",
},
ExtensionMessagesFiles={
HostStatsAlias="HostStats.alias.php",
},
config={
HostStatsCommands={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/HostStats",
},
HotCat={
name="HotCat",
author={
"Unite together et al.",},
url="https://www.mediawiki.org/wiki/Extension:HotCat",
descriptionmsg="hotcat-desc",
version="2.43",
["license-name"]="MIT",
type="editor",
requires={
MediaWiki="&gt;=1.35",
},
DefaultUserOptions={
["hotcat-switch"]=0,
},
Hooks={
BeforePageDisplay="pageDisplay",
GetPreferences="preferences",
GetBetaFeaturePreferences="betaFeature",
SaveUserOptions="preferences",
},
HookHandlers={
preferences={
class="MediaWiki\\HotCat\\HookHandler\\PreferencesHandler",
services={
"PermissionManager","UserOptionsLookup","UserGroupManager",},
},
betaFeature={
class="MediaWiki\\HotCat\\HookHandler\\BetaFeaturePreferencesHandler",
services={
"MainConfig","PermissionManager",},
},
pageDisplay={
class="MediaWiki\\HotCat\\HookHandler\\PageDisplayHandler",
services={
"PermissionManager","UserOptionsLookup",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/HotCat",
},
HoverGallery={
name="HoverGallery",
version="1.3",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",
url="https://www.mediawiki.org/wiki/Extension:HoverGallery",
descriptionmsg="hovergallery-desc",
["license-name"]="GPL-3.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
BeforePageDisplay="HoverGallery::onBeforePageDisplay",
ParserFirstCallInit="HoverGallery::onParserFirstCallInit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/HoverGallery",
},
Hreflang={
name="Hreflang",
version="0.0.1",
url="https://www.mediawiki.org/wiki/Extension:Hreflang",
author="Stas Malyshev",
descriptionmsg="hreflang-desc",
requires={
MediaWiki="&gt;= 1.31.0",
},
config={
HreflangPages={
"en:Pope Francis","en:Charleston church shooting","en:Terminator Genisys","en:Mad Max: Fury Road","en:Caitlyn Jenner","en:Deaths in 2015",},
HreflangGenerate=true,
},
Hooks={
BeforePageDisplay="HreflangHooks::onBeforePageDisplay",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Hreflang",
},
I18nTags={
name="Parser i18n tags",
version="2021-03-17",
author="Niklas Laxström",
url="https://www.mediawiki.org/wiki/Extension:I18nTags",
descriptionmsg="i18ntags-desc",
type="parserhook",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
I18nTagsMagic="I18nTags.magic.php",
},
Hooks={
ParserFirstCallInit="I18nTags::onParserFirstCallInit",
},
composer="mediawiki/i18n-tags",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/I18nTags",
},
IPInfo={
name="IPInfo",
url="https://www.mediawiki.org/wiki/Extension:IPInfo",
["license-name"]="MIT",
version="0.0.0",
namemsg="ipinfo-extensionname",
descriptionmsg="ipinfo-desc",
requires={
MediaWiki="&gt;= 1.42.0",
},
type="other",
ServiceWiringFiles={
"src/ServiceWiring.php",},
AvailableRights={
"ipinfo","ipinfo-view-basic","ipinfo-view-full","ipinfo-view-log",},
RevokePermissions={
["no-ipinfo"]={
ipinfo=true,
["ipinfo-view-basic"]=true,
["ipinfo-view-full"]=true,
["ipinfo-view-log"]=true,
},
},
DefaultUserOptions={
["ipinfo-use-agreement"]=0,
},
RestRoutes={
{
path="/ipinfo/v0/revision/{id}",
method="POST",
services={
"IPInfoInfoManager","RevisionLookup","PermissionManager","UserOptionsLookup","UserFactory","JobQueueGroup","LanguageFallback",},
factory="MediaWiki\\IPInfo\\Rest\\Handler\\RevisionHandler::factory",
},{
path="/ipinfo/v0/archivedrevision/{id}",
method="POST",
services={
"IPInfoInfoManager","ArchivedRevisionLookup","PermissionManager","UserOptionsLookup","UserFactory","JobQueueGroup","LanguageFallback",},
factory="MediaWiki\\IPInfo\\Rest\\Handler\\ArchivedRevisionHandler::factory",
},{
path="/ipinfo/v0/log/{id}",
method="POST",
services={
"IPInfoInfoManager","DBLoadBalancerFactory","PermissionManager","UserOptionsLookup","UserFactory","JobQueueGroup","LanguageFallback",},
factory="MediaWiki\\IPInfo\\Rest\\Handler\\LogHandler::factory",
},},
Hooks={
BeforePageDisplay="popup",
SpecialContributionsBeforeMainOutput="infobox",
GetPreferences="preferences",
GetBetaFeaturePreferences="betaFeature",
SaveUserOptions="preferences",
LoadExtensionSchemaUpdates="schema",
SpecialPageBeforeExecute="infobox",
},
HookHandlers={
popup={
class="MediaWiki\\IPInfo\\HookHandler\\PopupHandler",
services={
"PermissionManager","UserOptionsLookup",},
},
infobox={
class="MediaWiki\\IPInfo\\HookHandler\\InfoboxHandler",
services={
"PermissionManager","UserOptionsLookup",},
},
preferences={
class="MediaWiki\\IPInfo\\HookHandler\\PreferencesHandler",
services={
"PermissionManager","UserOptionsLookup","UserGroupManager","IPInfoLoggerFactory",},
},
betaFeature={
class="MediaWiki\\IPInfo\\HookHandler\\BetaFeaturePreferencesHandler",
services={
"MainConfig","PermissionManager",},
},
schema={
class="MediaWiki\\IPInfo\\HookHandler\\SchemaHandler",
},
},
JobClasses={
ipinfoLogIPInfoAccess="\\MediaWiki\\IPInfo\\Jobs\\LogIPInfoAccessJob",
},
config={
IPInfoGeoLite2Prefix={
value=false,
description="Path to the directory containing either GeoLite2- or GeoIP2- depending on database files downloaded; should contain prefix (GeoLite2-/GeoIP2-)",
},
IPInfoGeoIP2EnterprisePath={
value=false,
description="Path to the directory containing the GeoIP2 Enterprise and Anonymous IP database file; should contain the trailing slash",
},
IPInfoIpoidUrl={
description="Base URL for calling the ipoid API to retrieve data about an IP address",
value=false,
},
},
LogTypes={
"ipinfo",},
LogNames={
ipinfo="ipinfo-log-name",
},
LogHeaders={
ipinfo="ipinfo-log-header",
},
LogActionsHandlers={
["ipinfo/*"]={
class="MediaWiki\\IPInfo\\Logging\\IPInfoLogFormatter",
services={
"UserFactory",},
},
},
LogRestrictions={
ipinfo="ipinfo-view-log",
},
ActionFilteredLogs={
ipinfo={
change_access={
"change_access",},
view_infobox={
"view_infobox",},
view_popup={
"view_popup",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/IPInfo",
},
IPReputation={
name="IPReputation",
author={
"Kosta Harlan",},
url="https://www.mediawiki.org/wiki/Extension:IPReputation",
descriptionmsg="ipreputation-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
config={
IPReputationIPoidUrl={
description="URL to access IPoid service",
value="http://localhost:6035",
},
IPReputationIPoidCheckAtAccountCreation={
description="Feature flag to enable/disable auditing account creation based on IP reputation data from IPoid service https://wikitech.wikimedia.org/wiki/Service/IPoid. See also $wgIPReputationIPoidCheckAtAccountCreationLogOnly, which defaults to log-only.",
value=true,
},
IPReputationIPoidCheckAtAccountCreationLogOnly={
description="When set to true, only log the block to Logstash and Statsd, don't actually deny account creation.",
value=true,
},
IPReputationIPoidRequestTimeoutSeconds={
description="Number of seconds to use for timeout and connectTimeout options to HTTP request factory when calling IPoid",
value=2,
},
IPReputationIPoidDenyAccountCreationRiskTypes={
description="List of IPoid risk types that IPReputation will deny account creation for. If IPoid says the IP is associated with the risk type. If any risk types in this array are present in the data from IPoid, we will deny account creation for that IP.",
value={
"UNKNOWN","CALLBACK_PROXY","GEO_MISMATCH","LOGIN_BRUTEFORCE","TUNNEL","WEB_SCRAPING",},
},
IPReputationIPoidDenyAccountCreationTunnelTypes={
description="List of IPoid tunnel types that IPReputation will deny account creation for. If IPoid says the IP is associated with the tunnel type. If the IP has a TUNNEL risk type, and any of the tunnel types in this array are present in the data from IPoid, we will deny account creation for that IP.",
value={
"UNKNOWN","VPN","PROXY",},
},
},
AuthManagerAutoConfig={
preauth={
PreAuthenticationProvider={
class="MediaWiki\\Extension\\IPReputation\\PreAuthenticationProvider",
services={
"FormatterFactory","HttpRequestFactory","MainWANObjectCache","PerDbNameStatsdDataFactory","PermissionManager",},
sort=0,
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/IPReputation",
},
IframePage={
name="IframePage",
version="0.2.1",
author="Ike Hecht for [//www.wikiworks.com WikiWorks]",
url="https://www.mediawiki.org/wiki/Extension:IframePage",
descriptionmsg="iframepage-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.29.0",
},
SpecialPages={
IframePage="SpecialIframePage",
},
ExtensionMessagesFiles={
IframePageAlias="IframePage.alias.php",
},
config={
IframePageSrc={
value={
},
},
IframePageAllowPath={
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/IframePage",
},
ImageCompare={
name="ImageCompare",
author={
"Le Duy Quang",},
version="0.0.3",
url="https://www.mediawiki.org/wiki/Extension:ImageCompare",
descriptionmsg="imageCompare-desc",
["license-name"]="MIT",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
ParserFirstCallInit="ImageCompare::onParserInit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ImageCompare",
},
ImageMap={
name="ImageMap",
author={
"Tim Starling","Arlo Breault",},
url="https://www.mediawiki.org/wiki/Extension:ImageMap",
descriptionmsg="imagemap_desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\ImageMap\\ImageMap",
},
},
Hooks={
ParserFirstCallInit="main",
},
ParsoidModules={
"MediaWiki\\Extension\\ImageMap\\ParsoidImageMap",},
composer="mediawiki/image-map",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ImageMap",
},
ImageMapEdit={
name="ImageMapEdit",
version="3.0.0-alpha",
author={
"Marc Reymann","Peter Schlömer","Tobias Weichart","[https://www.hallowelt.com Hallowelt GmbH]",},
descriptionmsg="imagemapedit-desc",
["license-name"]="GPL-3.0-only",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
},
config_prefix="ime",
config={
FileTypeList={
public=false,
value={
"png","gif","jpg","jpeg",},
},
},
Hooks={
OutputPageBeforeHTML="ImageMapEdit::onOutputPageBeforeHTML",
BeforePageDisplay="ImageMapEdit::onBeforePageDisplay",
},
composer="mediawiki/image-map-edit",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ImageMapEdit",
},
ImageRating={
name="ImageRating",
version="2.5.0",
author={
"Aaron Wright","David Pean","Jack Phoenix",},
url="https://www.mediawiki.org/wiki/Extension:ImageRating",
descriptionmsg="imagerating-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.3",
},
ExtensionMessagesFiles={
ImageRatingAlias="includes/ImageRating.alias.php",
},
APIModules={
imagerating="ApiImageRating",
},
SpecialPages={
ImageRating="ImageRating",
},
Hooks={
ParserFirstCallInit="FeaturedImage::registerHook",
},
AvailableRights={
"rateimage",},
GroupPermissions={
user={
rateimage=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ImageRating",
},
ImageSuggestions={
name="ImageSuggestions",
namemsg="imagesuggestions-extensionname",
type="other",
author={
"Cormac Parle","Joseph Seddon","Marco Fossati","Matthias Mullie",},
version="0.0.1",
url="https://www.mediawiki.org/wiki/Extension:ImageSuggestions",
descriptionmsg="imagesuggestions-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42.0",
extensions={
Echo="*",
CirrusSearch="*",
},
},
config={
ImageSuggestionsSuggestionsApi={
description="API endpoint for image suggestions; 2 params will be sprintf'ed into the url: 1/ the wiki id &amp; 2/ the page id. See https://www.mediawiki.org/wiki/Platform_Engineering_Team/Data_Value_Stream/Data_Gateway#Suggestions",
value="https://image-suggestion.discovery.wmnet:30443/public/image_suggestions/suggestions/%1$s/%2$d",
},
ImageSuggestionsInstanceOfApi={
description="API endpoint for instance of cache; 2 params will be sprintf'ed into the url: 1/ the wiki id &amp; 2/ the page id. See https://www.mediawiki.org/wiki/Platform_Engineering_Team/Data_Value_Stream/Data_Gateway#Instanceof_(cache)",
value="https://image-suggestion.discovery.wmnet:30443/private/image_suggestions/instanceof_cache/%1$s/%2$d",
},
ImageSuggestionsHelpLink={
description="URL to per-wiki description pages",
value="",
},
},
Hooks={
BeforePageDisplay="main",
BeforeCreateEchoEvent="main",
EchoGetBundleRules="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\ImageSuggestions\\Hooks",
},
},
JobClasses={
ImageSuggestionsNotifications="MediaWiki\\Extension\\ImageSuggestions\\NotificationsJob",
},
composer="mediawiki/imagesuggestions",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ImageSuggestions",
},
ImageTweaks={
name="ImageTweaks",
version="0.0.1",
author={
"Mark Holmquist",},
url="https://www.mediawiki.org/wiki/Extension:ImageTweaks",
descriptionmsg="imagetweaks-desc",
["license-name"]="GPL-3.0-only",
type="other",
callback="ImageTweaksHooks::onRegistration",
requires={
MediaWiki="&gt;= 1.36.0",
},
config={
ImageTweaksEnabled=false,
ImageTweaksInBeta=false,
ImageTweaksThumborURL="http://localhost:8888/unsafe/",
},
APIModules={
imagetweaks={
class="ApiImageTweaks",
},
},
Hooks={
BeforePageDisplay="ImageTweaksHooks::getModulesForFilePage",
GetBetaFeaturePreferences="ImageTweaksHooks::addBetaPreference",
},
ExtensionFunctions={
"ImageTweaksHooks::onSetup",},
ConfigRegistry={
imagetweaks="GlobalVarConfig::newInstance",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ImageTweaks",
},
ImapAuthorization={
name="ImapAuthorization",
type="other",
version="0.1.1",
["license-name"]="MIT",
descriptionmsg="imapauthorization-desc",
author="Alphanoob1337",
url="https://www.mediawiki.org/wiki/Extension:ImapAuthorization",
requires={
MediaWiki="&gt;= 1.27.0",
},
AuthManagerAutoConfig={
primaryauth={
ImapAuthenticationProvider={
class="ImapAuthenticationProvider",
},
},
},
config={
ImapAuthorizationActive=false,
ImapAuthorizationSmtpServerAddress="localhost",
ImapAuthorizationSmtpServerPort=25,
ImapAuthorizationImapServerAddress="localhost",
ImapAuthorizationImapServerPort=143,
ImapAuthorizationImapServerEnforceSsl=false,
ImapAuthorizationImapServerEnforceTls=false,
ImapAuthorizationImapServerVerifyCert=true,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ImapAuthorization",
},
ImportArticles={
name="ImportArticles",
version="1.4",
author="Kris Blair (Cblair91)",
descriptionmsg="importarticles-desc",
["license-name"]="GPL-3.0-only",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
BeforePageDisplay="ImportArticles::onBeforePageDisplay",
},
composer="mediawiki/import-articles",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ImportArticles",
},
ImportFreeImages={
name="ImportFreeImages",
version="2.2",
author={
"Travis Derouin","Bryan Tong Minh",},
url="https://www.mediawiki.org/wiki/Extension:ImportFreeImages",
descriptionmsg="importfreeimages-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.34.0",
},
SpecialPages={
ImportFreeImages="SpecialImportFreeImages",
},
ExtensionMessagesFiles={
ImportFreeImagesAlias="ImportFreeImages.alias.php",
},
Hooks={
UploadCreateFromRequest="UploadFreeImage::onUploadCreateFromRequest",
UploadFormSourceDescriptors="UploadFreeImage::onUploadFormSourceDescriptors",
UploadFormInitDescriptor="UploadFreeImage::onUploadFormInitDescriptor",
},
config={
IFI_FlickrAPIKey={
value="",
},
IFI_CreditsTemplate={
value="flickr",
},
IFI_GetOriginal={
value=true,
},
IFI_PromptForFilename={
value=true,
},
IFI_phpFlickr={
value="phpFlickr-2.2.0/phpFlickr.php",
},
IFI_ResultsPerPage={
value=20,
},
IFI_ResultsPerRow={
value=4,
},
IFI_FlickrLicense={
value="4,5",
},
IFI_FlickrSort={
value="interestingness-desc",
},
IFI_FlickrSearchBy={
value="tags",
},
IFI_AppendRandomNumber={
value=true,
},
IFI_ThumbType={
value="t",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ImportFreeImages",
},
ImportOfficeFiles={
name="ImportOfficeFiles",
["license-name"]="GPL-3.0-only",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]","Daniel Vogel","Alexei Kulbii",},
url="https://en.wiki.bluespice.com/wiki/Reference:ImportOfficeFiles",
version="1.1.0-alpha",
descriptionmsg="importofficefiles-desc",
requires={
MediaWiki="&gt;= 1.39.0",
},
attributes={
ImportOfficeFiles={
ModuleRegistry={
["ms-office-word"]={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Modules\\MSOfficeWord::factory",
services={
"MainConfig",},
},
},
Word2007TagProcessorRegistry={
["line-break"]={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Tag\\LineBreak::factory",
},
tabulator={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Tag\\Tabulator::factory",
},
text={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Tag\\Text::factory",
},
textrun={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Tag\\Textrun::factory",
},
bookmarkStart={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Tag\\BookmarkStart::factory",
},
bookmarkEnd={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Tag\\BookmarkEnd::factory",
},
hyperlink={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Tag\\Hyperlink::factory",
},
paragraph={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Tag\\Paragraph::factory",
},
table={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Tag\\Table::factory",
},
drawing={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Tag\\Drawing::factory",
},
["instr-text"]={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Tag\\InstrText::factory",
},
},
Word2007TagPropertyProcessorRegistry={
style={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Property\\Style::factory",
},
bold={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Property\\Bold::factory",
},
strikethrough={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Property\\StrikeThrough::factory",
},
italic={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Property\\Italic::factory",
},
highlight={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Property\\Highlight::factory",
},
shadow={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Property\\Shadow::factory",
},
color={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Property\\Color::factory",
},
verticalalign={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Property\\VerticalAlign::factory",
},
underline={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Property\\Underline::factory",
},
justify={
factory="\\MediaWiki\\Extension\\ImportOfficeFiles\\Reader\\Property\\JustifyContent::factory",
},
},
},
},
Hooks={
BlueSpiceDiscoveryTemplateDataProviderAfterInit="discovery-skin",
["SkinTemplateNavigation::Universal"]="skin",
BeforePageDisplay="skin",
MWStakeRunJobsTriggerRegisterHandlers="MediaWiki\\Extension\\ImportOfficeFiles\\MediaWiki\\Hook\\MWStakeRunJobsTriggerRegisterHandlers\\AddOrphanedDirectoriesHandler::callback",
},
HookHandlers={
["discovery-skin"]={
class="MediaWiki\\Extension\\ImportOfficeFiles\\MediaWiki\\HookHandler\\DiscoverySkin",
},
skin={
class="MediaWiki\\Extension\\ImportOfficeFiles\\MediaWiki\\HookHandler\\Skin",
services={
"MainConfig","PermissionManager",},
},
addBootstrap={
class="MediaWiki\\Extension\\ImportOfficeFiles\\MediaWiki\\HookHandler\\AddBootstrap",
},
},
RestRoutes={
{
path="/officeimport/file_storage",
method="POST",
class="MediaWiki\\Extension\\ImportOfficeFiles\\Rest\\FileStorageHandler",
services={
"MainConfig",},
},{
path="/officeimport/file_analyze/start/{uploadId}/{filename}",
method="GET",
class="MediaWiki\\Extension\\ImportOfficeFiles\\Rest\\FileAnalyzeHandler",
},{
path="/officeimport/file_analyze/status/{processId}",
method="GET",
class="MediaWiki\\Extension\\ImportOfficeFiles\\Rest\\ProcessStatusHandler",
},{
path="/officeimport/file_structure/{uploadId}",
method="GET",
class="MediaWiki\\Extension\\ImportOfficeFiles\\Rest\\FileStructureHandler",
services={
"MainConfig","ConfigFactory",},
},{
path="/officeimport/file_content/{uploadId}",
method="GET",
class="MediaWiki\\Extension\\ImportOfficeFiles\\Rest\\FileContentHandler",
services={
"MainConfig","ConfigFactory",},
},{
path="/officeimport/file_import/start/{uploadId}/{filename}",
method="GET",
class="MediaWiki\\Extension\\ImportOfficeFiles\\Rest\\FileImportHandler",
services={
"MainConfig","ConfigFactory",},
},{
path="/officeimport/file_import/status/{processId}",
method="GET",
class="MediaWiki\\Extension\\ImportOfficeFiles\\Rest\\ProcessStatusHandler",
},{
path="/officeimport/file_import/proceed/{processId}",
method="POST",
class="MediaWiki\\Extension\\ImportOfficeFiles\\Rest\\ImportProceedHandler",
},},
config_prefix="wg",
config={
ImportOfficeFilesWord2007TagProcessorPipeline={
value={
"instr-text","drawing","tabulator","line-break","text","textrun","bookmarkStart","bookmarkEnd","hyperlink","paragraph","table",},
public=true,
},
ImportOfficeFilesWord2007TagPropertyProcessorPipeline={
value={
"style","color","justify","highlight","shadow","verticalalign","italic","strikethrough","underline","bold",},
public=true,
},
},
composer="mediawiki/import-office-files",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ImportOfficeFiles",
},
ImportUsers={
name="Import Users",
version="2.2.1",
author={
"Yuriy Ilkiv","Rouslan Zenetl","...",},
url="https://www.mediawiki.org/wiki/Extension:ImportUsers",
descriptionmsg="importusers-desc",
["license-name"]="Unlicense",
type="specialpage",
requires={
MediaWiki="&gt;= 1.38.0",
},
AvailableRights={
"import_users",},
GroupPermissions={
bureaucrat={
import_users=true,
},
},
SpecialPages={
ImportUsers="SpecialImportUsers",
},
ExtensionMessagesFiles={
ImportUsersAlias="ImportUsers.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ImportUsers",
},
Inbox={
name="Inbox",
descriptionmsg="inbox-desc",
["license-name"]="GPL-3.0-or-later",
author={
"Stephane Bisson",},
url="https://www.mediawiki.org/wiki/Extension:Inbox",
requires={
MediaWiki="&gt;= 1.41.0",
},
ExtensionMessagesFiles={
InboxAlias="Inbox.alias.php",
},
SpecialPages={
Inbox="Inbox\\Specials\\SpecialInbox",
},
Hooks={
LoadExtensionSchemaUpdates="schema",
AlternateUserMailer="hooks",
["SkinTemplateNavigation::Universal"]="hooks",
OutputPageCheckLastModified="hooks",
BeforePageDisplay="hooks",
},
HookHandlers={
hooks={
class="Inbox\\Hooks",
services={
"MainConfig",},
},
schema={
class="Inbox\\SchemaHooks",
},
},
config={
InboxEnabled={
description="Global ON/OFF switch for the Inbox features.",
value=false,
},
InboxSkipRegularEmail={
description="Whether to skip sending email in the regular way, and only use Inbox",
value=false,
},
InboxHideProductionWarningBanner={
description="Safeguard configuration to ensure installation of the extension is deliberate and NOT on a production site.",
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Inbox",
},
InlineCategorizer={
name="InlineCategorizer",
version="0.1.1",
author={
"Michael Dale","Timo Tijhof","Leo Koppelkamm",},
url="https://www.mediawiki.org/wiki/Extension:InlineCategorizer",
descriptionmsg="inlinecategorizer-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
config={
InlineCategorizerNamespaces={
value={
},
description="Optionally enable InlineCategorizer only on a set of namespaces. Default is all. Example: $wgInlineCategorizerNamespaces = [ NS_MAIN, NS_PROJECT ];",
public=false,
},
},
Hooks={
BeforePageDisplay="InlineCategorizerHooks::beforePageDisplay",
},
QUnitTestModule={
localBasePath="",
remoteExtPath="InlineCategorizer",
scripts="tests/qunit/ext.inlineCategorizer.core.test.js",
dependencies={
"ext.inlineCategorizer.core",},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/InlineCategorizer",
},
InlineComments={
name="InlineComments",
version="0.3",
author={
"WikiTeq","Yaron Koren","Brian Wolff",},
url="https://www.mediawiki.org/wiki/Extension:InlineComments",
descriptionmsg="inlinecomments-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
Hooks={
BeforePageDisplay="main",
MediaWikiServices="service",
MultiContentSave="main",
UserGetReservedNames="main",
ApiParseMakeOutputPage="main",
OutputPageBeforeHTML="main",
BeforeCreateEchoEvent="MediaWiki\\Extension\\InlineComments\\Hooks::onBeforeCreateEchoEvent",
EchoGetDefaultNotifiedUsers="MediaWiki\\Extension\\InlineComments\\Hooks::onEchoGetDefaultNotifiedUsers",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\InlineComments\\Hooks",
services={
"InlineComments:AnnotationFetcher","InlineComments:AnnotationMarker","PermissionManager","ContentLanguage","MainConfig","WikiPageFactory",},
},
service={
class="MediaWiki\\Extension\\InlineComments\\ServiceHooks",
},
},
APIModules={
["inlinecomments-add"]={
class="MediaWiki\\Extension\\InlineComments\\Api\\ApiAddAnnotation",
services={
"ContentLanguage","WikiPageFactory","InlineComments:AnnotationUtils",},
},
["inlinecomments-close"]={
class="MediaWiki\\Extension\\InlineComments\\Api\\ApiCloseDiscussion",
services={
"WikiPageFactory",},
},
["inlinecomments-addreply"]={
class="MediaWiki\\Extension\\InlineComments\\Api\\ApiAddReply",
services={
"ContentLanguage","WikiPageFactory","InlineComments:AnnotationUtils",},
},
["inlinecomments-editcomment"]={
class="MediaWiki\\Extension\\InlineComments\\Api\\ApiEditComment",
services={
"ContentLanguage","WikiPageFactory","InlineComments:AnnotationUtils",},
},
},
ServiceWiringFiles={
"src/ServiceWiring.php",},
config={
InlineCommentsAutoDeleteComments={
value=true,
description="Automatically delete comments if the text they are commenting on was removed or can no longer be found",
},
},
AvailableRights={
"inlinecomments-add","inlinecomments-edit-all","inlinecomments-view",},
ContentHandlers={
["annotation+json"]="MediaWiki\\Extension\\InlineComments\\AnnotationContentHandler",
},
GroupPermissions={
["*"]={
["inlinecomments-view"]=true,
},
user={
["inlinecomments-add"]=true,
},
sysop={
["inlinecomments-edit-all"]=true,
},
},
attributes={
BlueSpiceFoundation={
PermissionRegistry={
["inlinecomments-add"]={
type="global",
roles={
"editor","admin",},
},
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/InlineComments",
},
InputBox={
name="InputBox",
version="0.3.0",
author={
"Erik Moeller","Leonardo Pimenta","Rob Church","Trevor Parscal","DaSch",},
url="https://www.mediawiki.org/wiki/Extension:InputBox",
descriptionmsg="inputbox-desc",
requires={
MediaWiki="&gt;= 1.42",
},
["license-name"]="MIT",
type="parserhook",
Hooks={
ParserFirstCallInit="main",
MediaWikiPerformAction="main",
SpecialPageBeforeExecute="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\InputBox\\InputBoxHooks",
services={
"MainConfig",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/InputBox",
},
Insider={
name="Insider",
url="https://www.mediawiki.org/wiki/Extension:Insider",
descriptionmsg="insider-desc",
author={
"Roland Unger","Hans Musil","Matthias Mullie",},
version="1.3.0",
["license-name"]="GPL-2.0-only",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
},
ExtensionMessagesFiles={
InsiderMagic="Insider.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="main",
OutputPageParserOutput="main",
SidebarBeforeOutput="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Insider\\Hooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Insider",
},
InteractiveBlockMessage={
name="Interactive block message",
version="1.2.0",
author={
"Petr Bena",},
url="https://www.mediawiki.org/wiki/Extension:InteractiveBlockMessage",
descriptionmsg="interactiveblockmessage-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
ExtensionMessagesFiles={
InteractiveBlockMessageMagic="InteractiveBlockMessage.i18n.magic.php",
},
Hooks={
MagicWordwgVariableIDs="InteractiveBlockMessageHooks::magicWordSet",
ParserGetVariableValueSwitch="InteractiveBlockMessageHooks::parserGetVariable",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/InteractiveBlockMessage",
},
Interwiki={
name="Interwiki",
version="3.2",
author={
"Stephanie Amanda Stevens","Alexandre Emsenhuber","Robin Pepermans","Siebrand Mazeland","Platonides","Raimond Spekking","Sam Reed","Jack Phoenix","Calimonius the Estrange","...",},
url="https://www.mediawiki.org/wiki/Extension:Interwiki",
descriptionmsg="interwiki-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42",
},
ExtensionMessagesFiles={
InterwikiAlias="Interwiki.alias.php",
},
config={
InterwikiCentralDB={
value=nil,
},
InterwikiCentralInterlanguageDB={
value=nil,
},
InterwikiViewOnly={
value=false,
},
},
Hooks={
UserGetAllRights="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Interwiki\\Hooks",
},
},
SpecialPages={
Interwiki="MediaWiki\\Extension\\Interwiki\\SpecialInterwiki",
},
ExtensionFunctions={
"MediaWiki\\Extension\\Interwiki\\Hooks::onExtensionFunctions",},
LogActionsHandlers={
["interwiki/*"]="MediaWiki\\Extension\\Interwiki\\InterwikiLogFormatter",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Interwiki",
},
InterwikiExtracts={
name="InterwikiExtracts",
version="4.4",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",
url="https://www.mediawiki.org/wiki/Extension:InterwikiExtracts",
descriptionmsg="interwikiextracts-desc",
["license-name"]="GPL-3.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.34.0",
},
ExtensionMessagesFiles={
InterwikiExtractsAlias="InterwikiExtracts.magic.php",
},
Hooks={
ParserFirstCallInit="InterwikiExtracts::onParserFirstCallInit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/InterwikiExtracts",
},
InterwikiSorting={
name="InterwikiSorting",
author={
"Addshore","Nikola Smolenski","Katie Filbert","Thiemo Kreuz",},
url="https://www.mediawiki.org/wiki/Extension:InterwikiSorting",
descriptionmsg="interwikisorting-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
config={
InterwikiSortingSort={
description="The default sort order to use. 'code' is build in and orders alphabetically by interwiki code.",
value="code",
},
InterwikiSortingSortPrepend={
description="Codes that should appear at the start of the list of interwiki links.",
value={
},
},
InterwikiSortingInterwikiSortOrders={
description="Definition of sort orders. Each sort order key should be the sort order name, for example 'alphabetical'. Each key should have a value of an array of interwiki codes in the order to be sorted.",
value={
},
},
},
HookHandlers={
LanguageLinksHandler={
class="InterwikiSorting\\LanguageLinksHandler",
services={
"MainConfig",},
},
},
Hooks={
LanguageLinks="LanguageLinksHandler",
},
composer="mediawiki/interwikisorting",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/InterwikiSorting",
},
InviteSignup={
name="InviteSignup",
version="1.0.0+2021-09-01",
author={
"Niklas Laxström",},
url="https://www.mediawiki.org/wiki/Extension:InviteSignup",
descriptionmsg="is-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.39.0",
},
AvailableRights={
"invitesignup",},
ExtensionMessagesFiles={
InviteSignupAlias="InviteSignup.alias.php",
},
Hooks={
AddNewAccount="InviteSignupHooks::onAddNewAccount",
BeforeInitialize="InviteSignupHooks::onBeforeInitialize",
LoadExtensionSchemaUpdates="InviteSignupHooks::onLoadExtensionSchemaUpdates",
UserCreateForm="InviteSignupHooks::onUserCreateForm",
UserGetRights="InviteSignupHooks::onUserGetRights",
},
config={
ISGroups={
value={
},
},
InviteSignupHash={
value=nil,
},
},
SpecialPages={
InviteSignup="SpecialInviteSignup",
},
composer="mediawiki/invite-signup",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/InviteSignup",
},
JSBreadCrumbs={
name="JSBreadCrumbs",
version="1.1.1",
author={
"Ryan Lane","[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]","Kevin Forbes","...",},
url="https://www.mediawiki.org/wiki/Extension:JSBreadCrumbs",
descriptionmsg="jsbreadcrumbs-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
BeforePageDisplay="JSBreadCrumbsHooks::onBeforePageDisplay",
GetPreferences="JSBreadCrumbsHooks::onGetPreferences",
},
DefaultUserOptions={
["jsbreadcrumbs-showcrumbs"]=true,
["jsbreadcrumbs-numberofcrumbs"]=5,
["jsbreadcrumbs-horizontal"]=true,
["jsbreadcrumbs-maxlength-horizontal"]=40,
["jsbreadcrumbs-maxlength-vertical"]=20,
["jsbreadcrumbs-showaction"]=false,
["jsbreadcrumbs-showsite"]=false,
["jsbreadcrumbs-domain"]=false,
},
config={
JSBreadCrumbsHorizontalSeparator={
value="",
},
JSBreadCrumbsCSSSelectorHorizontal={
value={
},
},
JSBreadCrumbsCSSSelectorVertical={
value={
},
},
JSBreadCrumbsGlobalMaxCrumbs={
value=20,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/JSBreadCrumbs",
},
JWTAuth={
name="JWTAuth",
version="2.0.0",
author={
"[https://github.com/jeffw16 Jeffrey Wang]","[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]",},
url="https://github.com/jeffw16/JWTAuth",
descriptionmsg="jwtauth-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
extensions={
PluggableAuth="&gt;= 7.0",
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
HookHandlers={
schema={
class="MediaWiki\\Extension\\JWTAuth\\SchemaHooks",
},
},
Hooks={
LoadExtensionSchemaUpdates="schema",
},
config={
JWTAuth_Algorithm={
value="HS256",
},
JWTAuth_Key={
value="",
},
JWTAuth_RequiredClaims={
value={
},
},
JWTAuth_MigrateUsersByEmail={
value=false,
},
JWTAuth_MigrateUsersByUserName={
value=false,
},
JWTAuth_UseRealNameAsUserName={
value=false,
},
JWTAuth_UseEmailNameAsUserName={
value=false,
},
},
attributes={
PluggableAuth={
JWTAuth={
class="MediaWiki\\Extension\\JWTAuth\\JWTAuth",
services={
"MainConfig","AuthManager","UserIdentityLookup","JWTAuthStore",},
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/JWTAuth",
},
Josa={
name="Josa",
version="0.2.0",
author="Bae Junehyeon (devunt)",
url="https://www.mediawiki.org/wiki/Extension:Josa",
descriptionmsg="josa-desc",
["license-name"]="MIT",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
},
ExtensionMessagesFiles={
JosaMagic="Josa.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Josa\\Hooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Josa",
},
JsonConfig={
name="JsonConfig",
version="1.2.0",
author={
"Yuri Astrakhan","Eranroz",},
url="https://www.mediawiki.org/wiki/Extension:JsonConfig",
descriptionmsg="jsonconfig-desc",
type="other",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42",
},
namespaces={
{
id=482,
constant="NS_CONFIG",
name="Config",
conditional=true,
},{
id=483,
constant="NS_CONFIG_TALK",
name="Config_talk",
conditional=true,
},{
id=486,
constant="NS_DATA",
name="Data",
conditional=true,
},{
id=487,
constant="NS_DATA_TALK",
name="Data_talk",
conditional=true,
},},
ExtensionMessagesFiles={
JsonConfigNamespaces="JsonConfig.namespaces.php",
},
RawHtmlMessages={
"jsonconfig-license",},
APIModules={
jsonconfig="JsonConfig\\JCApi",
},
Hooks={
["ApiMain::moduleManager"]="main",
ArticleDeleteComplete="main",
ArticleUndelete="main",
BeforePageDisplay="main",
CanonicalNamespaces="main",
CodeEditorGetPageLanguage="codeeditor",
ContentHandlerDefaultModelFor="main",
ContentHandlerForModelID="main",
GetContentModels="main",
AlternateEdit="main",
["EditPage::showEditForm:initial"]="main",
EditFilterMergedContent="main",
EditPageCopyrightWarning="main",
MovePageIsValidMove="main",
PageSaveComplete="main",
ScribuntoExternalLibraries="scribunto",
SkinCopyrightFooter="main",
TitleGetEditNotices="main",
PageMoveComplete="main",
getUserPermissionsErrors="main",
},
HookHandlers={
main={
class="JsonConfig\\JCHooks",
services={
"MainConfig","ContentHandlerFactory",},
},
codeeditor={
class="JsonConfig\\CodeEditorHooks",
services={
"MainConfig","ContentHandlerFactory",},
},
scribunto={
class="JsonConfig\\ScribuntoHooks",
services={
"MainConfig",},
},
},
config={
JsonConfigs={
merge_strategy="array_replace_recursive",
value={
},
},
JsonConfigModels={
merge_strategy="array_replace_recursive",
value={
},
},
JsonConfigDisableCache={
value=false,
},
JsonConfigCacheKeyPrefix={
value="1",
},
JsonConfigEnableLuaSupport={
value=false,
},
JsonConfigAllowedLicenses={
value={
"CC0-1.0","CC-BY-1.0","CC-BY-2.0","CC-BY-2.5","CC-BY-3.0","CC-BY-4.0","CC-BY-4.0+","CC-BY-SA-1.0","CC-BY-SA-2.0","CC-BY-SA-2.5","CC-BY-SA-3.0","CC-BY-SA-4.0","CC-BY-SA-4.0+","ODbL-1.0","dl-de-zero-2.0","dl-de-by-1.0","dl-de-by-2.0","GeoNutzV",},
},
JsonConfigUseGUI={
value=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/JsonConfig",
},
JsonData={
name="JsonData",
author="Rob Lanphier",
url="https://www.mediawiki.org/wiki/Extension:JsonData",
descriptionmsg="jsondata-desc",
type="Tasks",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
BeforePageDisplay="main",
["EditPage::showEditForm:fields"]="main",
EditPageBeforeEditToolbar="MediaWiki\\Extension\\JsonData\\Hooks::onEditPageBeforeEditToolbar",
ParserFirstCallInit="main",
GetPreferences="main",
EditFilter="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\JsonData\\Hooks",
},
},
config={
JsonDataNamespace={
value={
},
},
JsonDataSchemaFile={
value=nil,
},
JsonData={
value=nil,
},
JsonDataConfigArticle={
value=nil,
},
JsonDataConfigFile={
value=nil,
},
JsonDataDefaultTagHandlers={
value={
"json","jsonschema",},
},
JsonDataPredefinedData={
value={
openschema="schemas/openschema.json",
schemaschema="schemas/schemaschema.json",
configexample="example/configexample.json",
configschema="schemas/jsondata-config-schema.json",
simpleaddr="schemas/simpleaddr-schema.json",
},
},
JsonDataConfig={
value={
srctype="predefined",
src="configexample",
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/JsonData",
},
Kartographer={
name="Kartographer",
author={
"Yuri Astrakhan","Max Semenik","Ed Sanders","Julien Girault",},
url="https://www.mediawiki.org/wiki/Extension:Kartographer",
descriptionmsg="kartographer-desc",
["license-name"]="MIT",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
extensions={
JsonConfig="*",
},
},
callback="Kartographer\\Hooks::onRegistration",
ExtensionMessagesFiles={
KartographerAliases="Kartographer.alias.php",
},
SpecialPages={
Map="Kartographer\\Special\\SpecialMap",
},
APIModules={
["sanitize-mapdata"]={
class="Kartographer\\Api\\ApiSanitizeMapData",
services={
"ParserFactory",},
},
},
APIPropModules={
mapdata={
class="Kartographer\\Api\\ApiQueryMapData",
services={
"WikiPageFactory",},
optional_services={
"FlaggedRevsParserCache",},
},
},
LateJSConfigVarNames={
"wgKartographerLiveData",},
Hooks={
ParserFirstCallInit="KartographerHooks",
ParserAfterParse="KartographerHooks",
},
HookHandlers={
KartographerHooks={
class="Kartographer\\Hooks",
services={
"MainConfig","LanguageNameUtils","TitleFormatter",},
},
},
QUnitTestModule={
localBasePath="tests/qunit",
remoteExtPath="Kartographer/tests/qunit",
scripts={
"nearby.test.js",},
dependencies={
"ext.kartographer.dialog",},
},
attributes={
VisualEditor={
PluginModules={
"ext.kartographer.editing","ext.kartographer.visualEditor",},
},
},
config={
KartographerStaticMapframe={
description="Disables the module that turns &lt;mapframe&gt; tags into interactive mini-maps that can be panned and zoomed without leaving the page. Static maps are recommended on high-traffic wikis where your KartographerMapServer couldn't keep up. Clicking &lt;maplink&gt; and &lt;mapframe&gt; tags to open a fullscreen interactive map is always possible.",
value=false,
},
KartographerWikivoyageMode={
description="Enables the group feature where different &lt;maplink&gt; and &lt;mapframe&gt; tags can access each others data via group=\"…\" and show=\"…\" attributes. See [[mw:Help:Extension:Kartographer#Groups]]. Disabled by default. Meant to be enabled on Wikivoyage.",
value=false,
},
KartographerDfltStyle={
description="Default map style to be used. Must be one of the values from KartographerStyles.",
value="osm-intl",
},
KartographerStyles={
description="Available map styles users can request from your KartographerMapServer via mapstyle=\"…\".",
value={
"osm-intl","osm",},
merge_strategy="provide_default",
},
KartographerSrcsetScales={
description="Set of allowed high-DPI pixelratios supported by your KartographerMapServer, to be used in &lt;img srcset=\"…\"&gt; and KartographerMapServer URLs. Must be in incremental order. Doesn't need to start with 1, this happens automatically.",
value={
1.3,1.5,2,2.6,3,},
merge_strategy="provide_default",
},
KartographerMapServer={
description="Server providing the map tiles. This is the only setting that doesn't have a default. You must provide a value. Note that the Wikimedia tile server \"https://maps.wikimedia.org\" can't be used outside of the Wikimedia cluster.",
value=nil,
},
KartographerStaticFullWidth={
description="The actual width of static map images when a &lt;mapframe&gt; uses the special value width=\"full\". Relevant on wikis in static mode or when JavaScript is disabled. It's recommended to use one of the $wgImageLimits widths for consistency.",
value=1024,
},
KartographerUseMarkerStyle={
description="Allows Kartographer to extract marker styles from the GeoJSON to style a &lt;maplink&gt; accordingly. Currently only the \"marker-color\" is considered.",
value=false,
},
KartographerUsePageLanguage={
description="Use the language of the page to render the map labels, instead of the language of the territory of the map (lang=local).",
value=true,
},
KartographerFallbackZoom={
description="Fallback zoom value when no zoom=\"…\" is given. Must be an integer between 0 (map shows the entire earth) and 19 (as close as possible). Currently only works with dynamic maps.",
value=13,
},
KartographerSimpleStyleMarkers={
description="Use an api to generate markers using the simplestyle-spec for features.",
value=true,
},
KartographerNearby={
description="Number of nearby articles to load via the coordinates API. A number between 100 and 500 is recommended. Requires the GeoData and CirrusSearch extensions to be installed. Set to 0 to disable the feature.",
value=false,
},
KartographerMediaWikiInternalUrl={
description="Development setting allowing kartotherian to call back to the mapdata API on either a different MediaWiki server or via a non-standard port. Passed as a URL, e.g. \"http://dev.wiki.local.wmftest.net:8080\". Defaults to $wgServerName if not set.",
value=nil,
},
KartographerParsoidSupport={
description="Enable Parsoid support for Kartographer. This flag should be removed once the Parsoid support is rolled out to all MW production wikis.",
value=false,
},
KartographerParsoidVersion={
description="Version of the Parsoid integration code. This is added to the extension data to enable cache rejection if necessary.",
value="1.0.1",
},
},
TrackingCategories={
"kartographer-tracking-category","kartographer-broken-category",},
ParsoidModules={
"Kartographer\\Tag\\ParsoidKartographerConfig",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Kartographer",
},
LDAPAuthentication2={
name="LDAPAuthentication2",
version="3.0.0-alpha",
author={
"Cindy Cicalese","[https://mediawiki.org/wiki/User:MarkAHershberger Mark A. Hershberger]","[http://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://www.mediawiki.org/wiki/Extension:LDAPAuthentication2",
descriptionmsg="ldapauthentication2-desc",
["license-name"]="GPL-2.0",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
LDAPProvider="3.*",
PluggableAuth="7.*",
},
},
Hooks={
},
config_prefix="",
config={
LDAPAuthentication2AllowLocalLogin={
value=false,
path=false,
description="Allow users without an LDAP-backed ID to log into the wiki.",
public=true,
},
LDAPAuthentication2UsernameNormalizer={
value="",
path=false,
description="Use this function for normalizing username for LDAP, for example 'strtolower'. Needed after migration from earlier Version.",
public=true,
},
},
attributes={
LDAPProvider={
DefaultSettings={
authentication={
usernameattribute="samaccountname",
realnameattribute="cn",
emailattribute="mail",
},
},
},
PluggableAuth={
LDAPAuthentication2={
class="MediaWiki\\Extension\\LDAPAuthentication2\\PluggableAuth",
services={
"UserFactory","AuthManager","DBLoadBalancer","PasswordFactory",},
},
},
},
composer="mediawiki/ldap-authentication-2",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LDAPAuthentication2",
},
LDAPAuthorization={
name="LDAPAuthorization",
version="3.0.0-alpha",
author={
"Cindy Cicalese","[https://mediawiki.org/wiki/User:MarkAHershberger Mark A. Hershberger]","[http://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://www.mediawiki.org/wiki/Extension:LDAPAuthorization",
descriptionmsg="ldapauthorization-desc",
["license-name"]="GPL-2.0",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
LDAPProvider="3.*",
PluggableAuth="7.*",
},
},
callback="MediaWiki\\Extension\\LDAPAuthorization\\Setup::onRegistration",
Hooks={
PluggableAuthUserAuthorization="MediaWiki\\Extension\\LDAPAuthorization\\Hook\\PluggableAuthUserAuthorization::callback",
AuthRemoteuserFilterUserName="MediaWiki\\Extension\\LDAPAuthorization\\Hook\\AuthRemoteuserFilterUserName::callback",
},
attributes={
LDAPProvider={
DefaultSettings={
authorization={
rules={
groups={
required={
},
excluded={
},
},
attributes={
},
},
},
},
},
},
config_prefix="LDAPAuthorization",
config={
AutoAuthRemoteUserStringParserRegistry={
value={
["domain-backslash-username"]="MediaWiki\\Extension\\LDAPAuthorization\\AutoAuth\\RemoteUserStringParser\\DomainBackslashUsername::factory",
["username-at-domain"]="MediaWiki\\Extension\\LDAPAuthorization\\AutoAuth\\RemoteUserStringParser\\UsernameAtDomain::factory",
},
},
AutoAuthRemoteUserStringParser={
value="domain-backslash-username",
},
AutoAuthBypassWithCookieUsernameRemoteAddrs={
value={
"127.0.0.1",},
},
AutoAuthUsernameNormalizer={
value="",
path=false,
description="Use this function for normalizing username for LDAP, for example 'strtolower'. Needed after migration from earlier Version.",
public=true,
},
},
composer="mediawiki/ldap-authorization",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LDAPAuthorization",
},
LDAPGroups={
name="LDAPGroups",
version="3.0.0-alpha",
author={
"Cindy Cicalese","[https://mediawiki.org/wiki/User:MarkAHershberger Mark A. Hershberger]","[http://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://www.mediawiki.org/wiki/Extension:LDAPGroups",
descriptionmsg="ldapgroups-desc",
["license-name"]="GPL-2.0",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
LDAPProvider="3.*",
},
},
Hooks={
UserLoadAfterLoadFromSession="MediaWiki\\Extension\\LDAPGroups\\Hook\\UserLoadAfterLoadFromSession\\SyncUserGroupsAfterLoadSession::callback",
},
config_prefix="LDAPGroups",
config={
SyncMechanismRegistry={
value={
mappedgroups="MediaWiki\\Extension\\LDAPGroups\\SyncMechanism\\MappedGroups::factory",
allgroups="MediaWiki\\Extension\\LDAPGroups\\SyncMechanism\\AllGroups::factory",
},
description="Allows registration of custom group sync mechanisms",
},
},
attributes={
LDAPProvider={
DefaultSettings={
groupsync={
mechanism="mappedgroups",
["@locally-managed"]="Only evaluated if 'allgroups' sync is used",
["locally-managed"]={
"sysop","bureaucrat","bot",},
["@mapping"]="Only evaluated if 'mappedgroups' sync is used",
mapping={
},
},
},
},
},
composer="mediawiki/ldap-groups",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LDAPGroups",
},
LDAPProvider={
name="LDAPProvider",
version="3.0.0-alpha",
author={
"Cindy Cicalese","[https://mediawiki.org/wiki/User:MarkAHershberger Mark A. Hershberger]","[http://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://www.mediawiki.org/wiki/Extension:LDAPProvider",
descriptionmsg="ldapprovider-desc",
["license-name"]="GPL-2.0+",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
callback="MediaWiki\\Extension\\LDAPProvider\\Setup::init",
Hooks={
LoadExtensionSchemaUpdates="MediaWiki\\Extension\\LDAPProvider\\Hook\\LoadExtensionSchemaUpdates::callback",
},
config_prefix="LDAPProvider",
config={
CacheType={
value="CACHE_ANYTHING",
description="The sort of cache to use for the connection information.",
descriptionmsg="ldapprovider-config-cachetype",
},
CacheTime={
value=500,
description="How long cached items should stick around in seconds",
descriptionmsg="ldapprovider-config-cachetime",
},
ClientRegistry={
value={
},
description="Allows registration of custom clients",
descriptionmsg="ldapprovider-config-clientregistry",
},
DomainConfigs={
value="/etc/mediawiki/ldapprovider.json",
public=false,
path=false,
description="Stores per domain configuration",
descriptionmsg="ldapprovider-config-domainconfigs",
},
DomainConfigProvider={
value="\\MediaWiki\\Extension\\LDAPProvider\\DomainConfigProvider\\LocalJSONFile::newInstance",
public=false,
description="Specifies the mechanism for obtaining the domain configuration",
descriptionmsg="ldapprovider-config-domainconfigprovider",
},
DefaultDomain={
value="",
public=false,
description="Specifies which domain to choose for a user, if no mapping from the database is available",
descriptionmsg="ldapprovider-config-defaultdomain",
},
PreSearchUsernameModifierRegistry={
value={
removespaces="\\MediaWiki\\Extension\\LDAPProvider\\PreSearchUsernameModifier\\RemoveSpaces::newInstance",
spacetounderscore="\\MediaWiki\\Extension\\LDAPProvider\\PreSearchUsernameModifier\\SpacesToUnderscores::newInstance",
spacestounderscores="\\MediaWiki\\Extension\\LDAPProvider\\PreSearchUsernameModifier\\SpacesToUnderscores::newInstance",
strtolower="\\MediaWiki\\Extension\\LDAPProvider\\PreSearchUsernameModifier\\ToLower::newInstance",
lowercase="\\MediaWiki\\Extension\\LDAPProvider\\PreSearchUsernameModifier\\ToLower::newInstance",
},
description="Allows registration of pre-search-username-modifiers",
public=false,
},
},
ConfigRegistry={
ldapprovider="MediaWiki\\Extension\\LDAPProvider\\Config::newInstance",
},
attributes={
LDAPProvider={
DefaultSettings={
connection={
port=389,
options={
},
enctype="clear",
groupbasedn="",
userbasedn="",
searchattribute="",
searchstring="",
grouprequest="MediaWiki\\Extension\\LDAPProvider\\UserGroupsRequest\\GroupUniqueMember::factory",
nestedgroups=false,
groupobjectclass="",
groupattribute="member",
presearchusernamemodifiers={
},
userinfoattributes={
"description","givenname","distinguishedname","displayname","memberof","name","samaccountname","userprincipalname","objectcategory","mail","dn","telephonenumber","cn","sn","uid",},
},
},
},
WebDAV={
CredentialAuthProviders={
ldap={
class="MediaWiki\\Extension\\LDAPProvider\\WebDAV\\Auth\\LDAPAuthBackend",
},
},
},
},
composer="mediawiki/ldap-provider",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LDAPProvider",
},
LDAPSyncAll={
name="LDAPSyncAll",
version="3.0.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://www.hallowelt.com",
descriptionmsg="ldapsyncall-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
LDAPProvider="3.*",
LDAPUserInfo="3.*",
LDAPGroups="3.*",
},
},
attributes={
BlueSpiceFoundation={
RunJobsTriggerHandlerRegistry={
["ldap-users-sync-all"]="\\LDAPSyncAll\\RunJobsTriggerHandler\\SyncLDAPUsers::factory",
},
},
},
Hooks={
ChangeTagsAllowedAdd="add-ldap-tag",
},
HookHandlers={
["add-ldap-tag"]={
class="\\LDAPSyncAll\\Hook\\ChangeTagsAllowedAdd\\AddLdapTag",
},
},
config_prefix="LDAPSyncAll",
config={
ExcludedUsernames={
value={
"WikiSysop",},
},
ExcludedGroups={
value={
"bot",},
},
BlockExecutorUsername={
value="MediaWiki default",
},
UsersSyncMechanism={
value="\\LDAPSyncAll\\UserSyncMechanism\\SyncAllMechanism::factory",
},
UserPageContent={
value="{{User}}",
},
},
composer="mediawiki/ldap-sync-all",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LDAPSyncAll",
},
LDAPUserInfo={
name="LDAPUserInfo",
version="3.0.0-alpha",
author={
"Cindy Cicalese","[https://mediawiki.org/wiki/User:MarkAHershberger Mark A. Hershberger]","[http://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://www.mediawiki.org/wiki/Extension:LDAPUserInfo",
descriptionmsg="ldapuserinfo-desc",
["license-name"]="GPL-2.0",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
LDAPProvider="3.*",
},
},
Hooks={
UserLoadAfterLoadFromSession="MediaWiki\\Extension\\LDAPUserInfo\\Hook\\UserLoadAfterLoadFromSession\\SyncUserInfoAfterLoadSession::callback",
},
attributes={
LDAPProvider={
DefaultSettings={
userinfo={
["attributes-map"]={
email="mail",
realname="cn",
},
["generic-property-normalization-callbacks"]={
},
},
},
},
},
config_prefix="LDAPUserInfo",
config={
ModifierRegistry={
value={
realname="MediaWiki\\Extension\\LDAPUserInfo\\UserInfoModifier\\Realname::factory",
email="MediaWiki\\Extension\\LDAPUserInfo\\UserInfoModifier\\Email::factory",
["property.*"]="MediaWiki\\Extension\\LDAPUserInfo\\UserInfoModifier\\GenericProperty::factory",
},
},
},
composer="mediawiki/ldap-user-info",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LDAPUserInfo",
},
Labeled_Section_Transclusion={
name="LabeledSectionTransclusion",
namemsg="lst-extensionname",
author="Steve Sanbeg",
url="https://www.mediawiki.org/wiki/Extension:Labeled_Section_Transclusion",
descriptionmsg="lst-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42",
},
type="parserhook",
TrackingCategories={
"lst-invalid-section-category",},
ExtensionMessagesFiles={
LabeledSectionTransclusionMagic="LabeledSectionTransclusion.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="LabeledSectionTransclusionHookHandler",
},
HookHandlers={
LabeledSectionTransclusionHookHandler={
class="MediaWiki\\Extension\\LabeledSectionTransclusion\\Hooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LabeledSectionTransclusion",
},
LandingCheck={
name="LandingCheck",
version="2.1.0",
author={
"Ryan Kaldari","Arthur Richards",},
url="https://www.mediawiki.org/wiki/Extension:LandingCheck",
["license-name"]="GPL-2.0-or-later",
descriptionmsg="landingcheck-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42",
},
SpecialPages={
LandingCheck={
class="MediaWiki\\Extension\\LandingCheck\\SpecialLandingCheck",
services={
"LanguageNameUtils","LanguageFallback","UrlUtils",},
},
},
Hooks={
["Language::getMessagesFileName"]="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\LandingCheck\\Hooks",
},
},
ExtensionMessagesFiles={
LandingCheckAlias="LandingCheck.alias.php",
},
config={
PriorityCountries={
value={
},
},
LandingCheckPriorityURLBase={
value=nil,
},
LandingCheckNormalURLBase={
value=nil,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LandingCheck",
},
LanguageSelector={
name="Language Selector",
version="1.0.0",
author={
"Daniel Kinzler","Universal Omega",},
url="https://www.mediawiki.org/wiki/Extension:LanguageSelector",
descriptionmsg="languageselector-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
callback="LanguageSelectorHooks::onRegistration",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionFunctions={
"LanguageSelectorHooks::extension",},
config={
LanguageSelectorLanguages={
value=nil,
description="Languages to offer in the language selector",
},
LanguageSelectorShowCode={
value=false,
description="Determine if language codes are shown in the selector, in addition to names",
},
LanguageSelectorShowAll={
value=false,
description="Show all languages defined, not only those with a language file",
},
},
Hooks={
BeforePageDisplay="LanguageSelectorHooks::onBeforePageDisplay",
GetCacheVaryCookies="LanguageSelectorHooks::onGetCacheVaryCookies",
LocalUserCreated="LanguageSelectorHooks::onLocalUserCreated",
ParserFirstCallInit="LanguageSelectorHooks::onParserFirstCallInit",
UserGetLanguageObject="LanguageSelectorHooks::onUserGetLanguageObject",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LanguageSelector",
},
LanguageTag={
name="LanguageTag",
version="1.2.0",
author="István Király",
url="https://www.mediawiki.org/wiki/Extension:LanguageTag",
descriptionmsg="languagetag-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="LanguageTag::onParserFirstCallInit",
},
config={
LanguageTagLanguages={
value={
},
description="Adjust that array to set what language tag's should be parsed. E.g. 'en', 'hu'",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LanguageTag",
},
LanguageTool={
name="LanguageTool",
version="0.0.0",
author={
"Ankita Kumari","Amir E. Aharoni","Eran Rosenthal",},
url="https://www.mediawiki.org/wiki/Extension:LanguageTool",
descriptionmsg="languagetool-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
VisualEditorPluginModules={
"ext.LanguageTool",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LanguageTool",
},
LastModified={
name="LastModified",
version="1.2.0",
author={
"Katie Horn","Jeremy Postlethwaite",},
url="https://www.mediawiki.org/wiki/Extension:LastModified",
descriptionmsg="lastmodified-desc",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
BeforePageDisplay="LastModifiedHooks::onLastModified",
},
config={
LastModifiedRange={
description="This variable controls the display range.\nSee documentation on https://www.mediawiki.org/wiki/Extension:LastModified for more details.",
value=0,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LastModified",
},
LastUserLogin={
name="LastUserLogin",
version="1.6",
author={
"Justin G. Cramer","Danila Ulyanov","Thomas Klein","[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",},
url="https://www.mediawiki.org/wiki/Extension:LastUserLogin",
descriptionmsg="lastuserlogin-desc",
["license-name"]="GPL-3.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.0",
},
AvailableRights={
"lastlogin",},
GroupPermissions={
sysop={
lastlogin=true,
},
},
SpecialPages={
LastUserLogin="MediaWiki\\Extension\\LastUserLogin\\SpecialLastUserLogin",
},
ExtensionMessagesFiles={
LastUserLoginAlias="LastUserLogin.alias.php",
},
Hooks={
BeforeInitialize="LastUserLogin",
},
HookHandlers={
LastUserLogin={
class="\\MediaWiki\\Extension\\LastUserLogin\\Hooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LastUserLogin",
},
LDAP_Authentication={
name="LDAP Authentication Plugin",
version="2.2.0",
author="Ryan Lane",
url="https://www.mediawiki.org/wiki/Extension:LDAP_Authentication",
descriptionmsg="ldapauthentication-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
Hooks={
BlockIpComplete="main",
UnblockUserComplete="main",
LoadExtensionSchemaUpdates="schema",
},
HookHandlers={
main={
class="LdapAuthenticationHooks",
},
schema={
class="LdapAuthenticationSchemaHooks",
},
},
config_prefix="wgLDAP",
config={
DomainNames={
value={
},
},
ServerNames={
value={
},
},
UseLocal={
value=false,
},
EncryptionType={
value={
},
},
Options={
value={
},
},
Port={
value={
},
},
SearchStrings={
value={
},
},
ProxyAgent={
value={
},
},
ProxyAgentPassword={
value={
},
},
SearchAttributes={
value={
},
},
BaseDNs={
value={
},
},
GroupBaseDNs={
value={
},
},
UserBaseDNs={
value={
},
},
WriterDN={
value={
},
},
WriterPassword={
value={
},
},
WriteLocation={
value={
},
},
AddLDAPUsers={
value={
},
},
UpdateLDAP={
value={
},
},
PasswordHash={
value={
},
},
MailPassword={
value={
},
},
Preferences={
value={
},
},
DisableAutoCreate={
value={
},
},
Debug={
value=0,
},
GroupUseFullDN={
value={
},
},
LowerCaseUsername={
value={
},
},
GroupUseRetrievedUsername={
value={
},
},
GroupObjectclass={
value={
},
},
GroupAttribute={
value={
},
},
GroupNameAttribute={
value={
},
},
GroupsUseMemberOf={
value={
},
},
UseLDAPGroups={
value={
},
},
LocallyManagedGroups={
value={
},
},
GroupsPrevail={
value={
},
},
RequiredGroups={
value={
},
},
ExcludedGroups={
value={
},
},
GroupSearchNestedGroups={
value={
},
},
AuthAttribute={
value={
},
},
AutoAuthUsername={
value="",
},
AutoAuthDomain={
value="",
},
ActiveDirectory={
value={
},
},
GroupSearchPosixPrimaryGroup={
value=false,
},
LockOnBlock={
value=false,
},
LockPasswordPolicy={
value="",
},
},
callback="LdapAuthenticationHooks::onRegistration",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LdapAuthentication",
},
LegalLogin={
name="LegalLogin",
version="1.0",
author={
"[https://www.mediawiki.org/wiki/User:Pastakhov Pavel Astakhov]",},
url="https://www.mediawiki.org/wiki/Extension:LegalLogin",
descriptionmsg="legallogin-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.35.3",
},
ExtensionMessagesFiles={
LegalLoginAlias="LegalLogin.alias.php",
},
LogTypes={
"legallogin",},
LogRestrictions={
legallogin="legallogin-view-log",
},
SpecialPages={
LegalLogin="SpecialLegalLogin",
},
LogActionsHandlers={
["legallogin/accept"]="LegalLogin\\AcceptanceLogFormatter",
["legallogin/login"]="LegalLogin\\LoginLogFormatter",
},
AvailableRights={
"legallogin-view-log","legallogin-bypass",},
GroupPermissions={
sysop={
["legallogin-view-log"]=true,
["legallogin-bypass"]=true,
},
},
Hooks={
ApiBeforeMain="LegalLoginHooks::onApiBeforeMain",
AuthChangeFormFields="LegalLoginHooks::onAuthChangeFormFields",
BeforePageDisplay="LegalLoginHooks::onBeforePageDisplay",
PageSaveComplete="LegalLoginHooks::onPageSaveComplete",
LoadExtensionSchemaUpdates="LegalLoginHooks::onLoadExtensionSchemaUpdates",
},
AuthManagerAutoConfig={
secondaryauth={
LegalLoginExtraFieldsSecondaryAuthenticationProvider={
class="LegalLogin\\ExtraFieldsSecondaryAuthenticationProvider",
sort=0,
},
},
},
config={
LegalLoginPolicies={
value={
},
description="The list of legal policies that will require acceptance during account creation and login. Only pages in NS_MEDIAWIKI namespaces allowed as correct values",
},
LegalLoginQuestions={
value={
},
description="The questions that users will need to answer correctly before login.  Only pages in NS_MEDIAWIKI namespaces allowed as correct values",
},
LegalLoginExpiration={
value=604800,
description="Require acceptance of legal policies again after defined seconds",
},
LegalLoginInterval={
value=10,
description="Require acceptance of legal policies again after defined number of logins",
},
LegalLoginLogActions={
value=true,
description="Save LegalLogin actions like acceptance of the policies to Special:Log",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LegalLogin",
},
Lingo={
name="Lingo",
version="3.2.1",
author={
"Barry Coughlan","[https://www.mediawiki.org/wiki/User:F.trott Stephan Gambke]","...",},
url="https://www.mediawiki.org/wiki/Extension:Lingo",
descriptionmsg="lingo-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39",
},
config_prefix="wgex",
config={
LingoBackend={
value="Lingo\\BasicBackend",
},
LingoPage={
value=nil,
},
LingoDisplayOnce={
value=false,
},
LingoCacheType={
value=nil,
},
LingoEnableApprovedRevs={
value=false,
},
LingoUseNamespaces={
value={
},
},
},
ExtensionMessagesFiles={
LingoMagic="src/Lingo.i18n.magic.php",
},
callback="Lingo\\Lingo::initExtension",
repository="https://phabricator.wikimedia.org/diffusion/ELIN",
composer="mediawiki/lingo",
},
LinkFilter={
name="LinkFilter",
version="3.9.0",
author={
"Aaron Wright","David Pean","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:LinkFilter",
descriptionmsg="linkfilter-desc",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
config={
LinkFilterTypes={
[2]="Arrest Report",
[3]="Awesome",
[4]="Cool",
[5]="Funny",
[7]="Interesting",
[8]="Obvious",
[9]="OMG WTF?!?",
[10]="Rumor",
[11]="Scary",
[12]="Stupid",
},
LinkPageDisplay={
leftcolumn=true,
rightcolumn=false,
author=true,
left_ad=false,
popular_articles=false,
in_the_news=false,
comments_of_day=true,
games=true,
new_links=false,
},
},
SpecialPages={
LinkApprove="SpecialLinkApprove",
LinkEdit="SpecialLinkEdit",
LinksHome="SpecialLinksHome",
LinkRedirect="SpecialLinkRedirect",
LinkSubmit="SpecialLinkSubmit",
},
namespaces={
{
id=700,
constant="NS_LINK",
name="Link",
},{
id=701,
constant="NS_LINK_TALK",
name="Link_talk",
},},
APIModules={
linkedit="ApiLinkEdit",
linkfilter="ApiLinkFilter",
linksubmit="ApiLinkSubmit",
},
LogTypes={
"linkfilter",},
ActionFilteredLogs={
linkfilter={
approve={
"approve",},
edit={
"edit",},
reject={
"reject",},
submit={
"submit",},
},
},
LogActionsHandlers={
["linkfilter/*"]="LinkFilterLogFormatter",
},
ExtensionMessagesFiles={
LinkFilterAlias="includes/LinkFilter.alias.php",
LinkNamespaces="includes/LinkFilter.namespaces.php",
},
Hooks={
APIGetAllowedParams="LinkFilterHooks::onAPIGetAllowedParams",
PageMoveComplete="LinkFilterHooks::updateLinkFilter",
ArticleDelete="LinkFilterHooks::deleteLinkFilter",
ArticleFromTitle="LinkFilterHooks::linkFromTitle",
ParserFirstCallInit="LinkFilterHooks::registerLinkFilterHook",
LoadExtensionSchemaUpdates="LinkFilterHooks::applySchemaChanges",
["Comment::add"]="LinkFilterHooks::onCommentAdd",
["Comment::delete"]="LinkFilterHooks::onCommentDelete",
},
AvailableRights={
"linkadmin",},
GroupPermissions={
linkadmin={
linkadmin=true,
},
staff={
linkadmin=true,
},
sysop={
linkadmin=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LinkFilter",
},
LinkSuggest={
name="LinkSuggest",
version="2.2.0",
author={
"Inez Korczyński","Bartek Łapiński","Łukasz Garczewski","Maciej Brencz","Jesús Martínez Novo","Jack Phoenix","Jayden Bailey",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:LinkSuggest",
descriptionmsg="linksuggest-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
["EditPage::showEditForm:initial"]="main",
GetPreferences="main",
},
HookHandlers={
main={
class="LinkSuggest",
services={
"UserOptionsManager",},
},
},
config={
LinkSuggestFromNamespaces={
0,},
},
ConfigRegistry={
linksuggest="GlobalVarConfig::newInstance",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LinkSuggest",
},
LinkSuggest2={
name="LinkSuggest2",
version="0.2",
url="https://www.mediawiki.org/wiki/Extension:LinkSuggest2",
author="TK-999",
descriptionmsg="linksuggest2-desc",
["license-name"]="GPL-3.0-only",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
GetPreferences="LinkSuggest2::onGetPreferences",
["EditPage::showEditForm:initial"]="LinkSuggest2::onEditPageShowEditFormInitial",
},
config={
EnableEditFormLinkSuggest={
description="Whether to load LinkSuggest on edit pages",
value=true,
public=true,
},
wgLinkSuggestMaxSuggestions={
description="Maximum amount of suggestions to show",
value=3,
public=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LinkSuggest2",
},
LinkTarget={
name="LinkTarget",
version="0.2",
author={
"Ike Hecht",},
url="https://www.mediawiki.org/wiki/Extension:LinkTarget",
descriptionmsg="linktarget-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
HookHandlers={
LinkTarget={
class="MediaWiki\\Extension\\LinkTarget\\LinkTargetHooks",
},
},
Hooks={
OutputPageParserOutput={
handler="LinkTarget",
},
},
config={
LinkTargetParentClasses={
value={
},
},
LinkTargetDefault={
value="_blank",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LinkTarget",
},
Link_Attributes={
name="Link Attributes",
version="1.1",
author={
"Toby Inkster","Dennis Roczek","Sam Wilson",},
url="https://www.mediawiki.org/wiki/Extension:Link_Attributes",
descriptionmsg="linkattributes-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
HtmlPageLinkRendererEnd="MediaWiki\\Extension\\LinkAttributes\\Hooks::onHtmlPageLinkRendererEnd",
LinkerMakeExternalLink="MediaWiki\\Extension\\LinkAttributes\\Hooks::onLinkerMakeExternalLink",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Link_Attributes",
},
LinkedWiki={
name="LinkedWiki",
version="3.7.1",
author={
"[https://www.mediawiki.org/wiki/User:Karima_Rafes Karima Rafes]",},
url="https://www.mediawiki.org/wiki/Extension:LinkedWiki",
descriptionmsg="linkedwiki-desc",
["license-name"]="CC-BY-SA-4.0",
type="datavalues",
namespaces={
{
["@doc"]="NamespaceRelations with NS_MAIN",
id=10000,
constant="NS_DATA",
name="Data",
protection="data-edit",
},{
["@doc"]="NamespaceRelations with NS_USER",
id=10002,
constant="NS_USER_DATA",
name="UserData",
protection="data-edit",
},{
id=10010,
constant="NS_SCHEMA",
name="Schema",
protection="data-edit",
},{
id=10011,
constant="NS_SCHEMA_TALK",
name="Schema_talk",
},{
id=10030,
constant="NS_DATATYPE",
name="Datatype",
protection="data-edit",
},{
id=10031,
constant="NS_DATATYPE_TALK",
name="Datatype_talk",
},},
AvailableRights={
"data-edit",},
GroupPermissions={
sysop={
["data-edit"]=true,
},
data={
["data-edit"]=true,
},
},
GrantPermissions={
editdata={
["data-edit"]=true,
},
},
JobClasses={
InvalidatePageWithQuery="InvalidatePageWithQueryJob",
LoadRDF="LoadRDFJob",
},
Hooks={
ParserFirstCallInit="LinkedWiki::parserFirstCallInit",
ParserClearState="LinkedWiki::onParserClearState",
ScribuntoExternalLibraries="LinkedWiki::scribuntoExternalLibraries",
RawPageViewBeforeOutput="RDFTag::rawRDFSource",
EditFilterMergedContent="RDFTag::onEditFilterMergedContent",
ArticleDeleteAfterSuccess="LinkedWiki::onArticleDeleteAfterSuccess",
BeforePageDisplay="LinkedWiki::onBeforePageDisplay",
["SkinTemplateNavigation::Universal"]="LinkedWiki::onSkinTemplateNavigationUniversal",
TitleMove="LinkedWiki::onTitleMove",
},
ExtensionMessagesFiles={
["linkedwiki-specialsparqlquery-alias"]="specialpages/SpecialSparqlQuery.alias.php",
["linkedwiki-specialsparqlflinteditor-alias"]="specialpages/SpecialSparqlFlintEditor.alias.php",
["linkedwiki-specialLinkewikiconfig-alias"]="specialpages/SpecialLinkedWikiConfig.alias.php",
["linkedwiki-specialrdfunit-alias"]="specialpages/SpecialRDFUnit.alias.php",
["linkedwiki-specialrdfsave-alias"]="specialpages/SpecialRDFSave.alias.php",
LinkedWikiMagic="LinkedWiki.i18n.magic.php",
},
SpecialPages={
["linkedwiki-specialsparqlquery"]="SpecialSparqlQuery",
["linkedwiki-specialsparqlflinteditor"]="SpecialSparqlFlintEditor",
["linkedwiki-speciallinkedwikiconfig"]="SpecialLinkedWikiConfig",
["linkedwiki-specialrdfunit"]="SpecialRDFUnit",
["linkedwiki-specialrdfsave"]="SpecialRDFSave",
},
requires={
MediaWiki="&gt;= 1.31",
},
ConfigRegistry={
wgLinkedWiki="LinkedWiki::makeConfig",
},
config_prefix="wgLinkedWiki",
config={
QuerySparqlInSpecialPage={
description="Query by default in the editor SPARQL",
value="SELECT * WHERE \n { ?x ?y ?z . } \nLIMIT 15",
},
SPARQLServiceByDefault={
description="Without parameters (config or endpoint) the SPARQL queries are sent at this SPARQL service.",
value="http://www.wikidata.org",
},
SPARQLParserTableByDefault={
description="SPARQL parser can print a table with different formats: wiki or html. By default: html",
value="html",
},
ConfigSPARQLServices={
description="Array of SPARQL services uses in this wiki. http://www.example.org is the configuration by default for all SPARQL service. If you need to change, be careful about other endpoints.",
value={
["http://www.example.org"]={
isReadOnly=true,
debug=false,
proxyHost="",
proxyPort=0,
endpointRead="http://www.example.org/sparql",
endpointWrite="",
login="",
password="",
HTTPMethodForRead="POST",
HTTPMethodForWrite="POST",
nameParameterRead="query",
nameParameterWrite="update",
lang="en",
storageMethodClass="SimpleStorageMethod",
},
["http://www.wikidata.org"]={
debug=false,
isReadOnly=true,
endpointRead="https://query.wikidata.org/sparql",
typeRDFDatabase="blazegraph",
HTTPMethodForRead="GET",
storageMethodClass="WikidataStorageMethod",
lang="en",
},
},
merge_strategy="array_plus_2d",
},
SPARQLServiceSaveDataOfWiki={
description="If you specify the SPARQL service uses to save RDF data (in the RDF tag) on the pages of wiki, you are able to use the special page to clean/import all your RDF data and the wiki will save automatically all new RDF data.",
value="",
},
GraphsToCheckWithShacl={
description="If you save RDF data (in the RDF tag) on the pages of wiki with the parameter SPARQLServiceSaveDataOfWiki, you can add others graphs to check with Shacl via the same SPARQL endpoint.",
value={
},
merge_strategy="array_merge",
},
CheckRDFPage={
description="If you have install Rapper, you can choose to check the RDF when you save a page, with this option.",
value=false,
},
GoogleApiKey={
description="Google API key, if you use Google charts. (https://developers.google.com/places/web-service/get-api-key)",
value="GOOGLE_MAP_API_KEY",
},
OSMAccessToken={
description="OpenStreetMap Access Token, if you use OpenStreetMap via the Leaflet charts. (https://www.mapbox.com/)",
value="OPENSTREETMAP_ACCESS_TOKEN",
},
},
composer="mediawiki/linkedwiki",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LinkedWiki",
},
Linter={
name="Linter",
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:Linter",
author={
"Kunal Mehta","Arlo Breault","Subramanya Sastry",},
descriptionmsg="linter-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42",
},
ExtensionMessagesFiles={
LinterAlias="Linter.alias.php",
},
HookHandlers={
main={
class="MediaWiki\\Linter\\Hooks",
services={
"LinkRenderer","JobQueueGroup","ParsoidParserFactory","WikiPageFactory","Linter.CategoryManager","Linter.TotalsLookup","Linter.Database","MainConfig",},
},
schema={
class="MediaWiki\\Linter\\SchemaHooks",
},
},
Hooks={
LoadExtensionSchemaUpdates="schema",
BeforePageDisplay="main",
APIQuerySiteInfoGeneralInfo="main",
InfoAction="main",
WikiPageDeletionUpdates="main",
RevisionFromEditComplete="main",
ParserLogLinterData="main",
RevisionDataUpdates="main",
},
APIListModules={
linterrors={
class="MediaWiki\\Linter\\ApiQueryLintErrors",
services={
"Linter.CategoryManager",},
},
},
APIMetaModules={
linterstats={
class="MediaWiki\\Linter\\ApiQueryLinterStats",
services={
"Linter.TotalsLookup",},
},
},
SpecialPages={
LintErrors={
class="MediaWiki\\Linter\\SpecialLintErrors",
services={
"NamespaceInfo","TitleParser","LinkCache","PermissionManager","Linter.CategoryManager","Linter.TotalsLookup",},
},
},
JobClasses={
RecordLintJob={
class="MediaWiki\\Linter\\RecordLintJob",
services={
"Linter.TotalsLookup","Linter.Database",},
},
},
config={
LinterCategories={
value={
fostered={
dbid=1,
enabled=true,
priority="medium",
["no-params"]=true,
},
["obsolete-tag"]={
dbid=2,
enabled=true,
priority="low",
["has-name"]=true,
},
["bogus-image-options"]={
dbid=3,
enabled=true,
priority="medium",
},
["missing-end-tag"]={
dbid=4,
enabled=true,
priority="low",
["has-name"]=true,
},
["stripped-tag"]={
dbid=5,
enabled=true,
priority="low",
["has-name"]=true,
},
["self-closed-tag"]={
dbid=6,
enabled=true,
priority="high",
["has-name"]=true,
},
["deletable-table-tag"]={
dbid=7,
enabled=true,
priority="high",
["has-name"]=true,
},
["misnested-tag"]={
dbid=8,
enabled=true,
priority="medium",
["has-name"]=true,
},
["pwrap-bug-workaround"]={
dbid=9,
enabled=true,
priority="high",
},
["tidy-whitespace-bug"]={
dbid=10,
enabled=true,
priority="high",
},
["multi-colon-escape"]={
dbid=11,
enabled=true,
priority="medium",
},
["html5-misnesting"]={
dbid=12,
enabled=true,
priority="high",
["has-name"]=true,
},
["tidy-font-bug"]={
dbid=13,
enabled=true,
priority="high",
["has-name"]=true,
},
["multiple-unclosed-formatting-tags"]={
dbid=14,
enabled=true,
priority="high",
["has-name"]=true,
},
["unclosed-quotes-in-heading"]={
dbid=15,
enabled=true,
priority="high",
["has-name"]=true,
},
["multiline-html-table-in-list"]={
dbid=16,
enabled=true,
priority="high",
},
["misc-tidy-replacement-issues"]={
dbid=17,
enabled=true,
priority="high",
},
["wikilink-in-extlink"]={
dbid=18,
enabled=true,
priority="medium",
["no-params"]=true,
},
["inline-media-caption"]={
dbid=19,
enabled=false,
priority="high",
["no-params"]=true,
},
["large-tables"]={
dbid=20,
enabled=true,
priority="none",
},
["missing-end-tag-in-heading"]={
dbid=21,
enabled=true,
priority="low",
["has-name"]=true,
},
["night-mode-unaware-background-color"]={
dbid=22,
enabled=true,
priority="low",
["no-params"]=true,
},
["missing-image-alt-text"]={
dbid=23,
enabled=true,
priority="none",
},
},
},
LinterStatsdSampleFactor={
value=false,
},
LinterParseOnDerivedDataUpdate={
value=true,
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Linter",
},
LiquidThreads={
name="Liquid Threads",
version="2.3-alpha",
author={
"David McCabe","Andrew Garrett",},
url="https://www.mediawiki.org/wiki/Extension:LiquidThreads",
descriptionmsg="lqt-desc",
type="other",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42",
},
namespaces={
{
id=90,
constant="NS_LQT_THREAD",
name="Thread",
},{
id=91,
constant="NS_LQT_THREAD_TALK",
name="Thread_talk",
},{
id=92,
constant="NS_LQT_SUMMARY",
name="Summary",
},{
id=93,
constant="NS_LQT_SUMMARY_TALK",
name="Summary_talk",
},},
GroupPermissions={
user={
["lqt-split"]=true,
["lqt-merge"]=true,
["lqt-react"]=true,
},
},
DefaultUserOptions={
lqtnotifytalk=false,
lqtdisplaydepth=5,
lqtdisplaycount=25,
["lqt-watch-threads"]=true,
},
AvailableRights={
"lqt-split","lqt-merge","lqt-react",},
SpecialPages={
MoveThread="SpecialMoveThread",
NewMessages="SpecialNewMessages",
SplitThread="SpecialSplitThread",
MergeThread="SpecialMergeThread",
},
JobClasses={
synchroniseThreadArticleData="SynchroniseThreadArticleDataJob",
},
LogTypes={
"liquidthreads",},
LogNames={
liquidthreads="lqt-log-name",
},
LogHeaders={
liquidthreads="lqt-log-header",
},
LogActionsHandlers={
["liquidthreads/move"]="LqtLogFormatter",
["liquidthreads/split"]="LqtLogFormatter",
["liquidthreads/merge"]="LqtLogFormatter",
["liquidthreads/subjectedit"]="LqtLogFormatter",
["liquidthreads/resort"]="LqtLogFormatter",
["liquidthreads/signatureedit"]="LqtLogFormatter",
},
APIModules={
feedthreads={
class="MediaWiki\\Extension\\LiquidThreads\\Api\\ApiFeedLQTThreads",
services={
"LinkRenderer","WikiPageFactory",},
},
threadaction="MediaWiki\\Extension\\LiquidThreads\\Api\\ApiThreadAction",
},
APIListModules={
threads="MediaWiki\\Extension\\LiquidThreads\\Api\\ApiQueryLQTThreads",
},
ExtensionMessagesFiles={
LiquidThreadsMagic="i18n/LiquidThreads.magic.php",
LiquidThreadsNamespaces="i18n/Lqt.namespaces.php",
LiquidThreadsAlias="i18n/Lqt.alias.php",
},
Hooks={
ParserFirstCallInit="MediaWiki\\Extension\\LiquidThreads\\Hooks::onParserFirstCallInit",
CanonicalNamespaces="MediaWiki\\Extension\\LiquidThreads\\Hooks::onCanonicalNamespaces",
MediaWikiPerformAction="LqtDispatch::tryPage",
["SkinTemplateNavigation::Universal"]={
"LqtDispatch::onSkinTemplateNavigation","MediaWiki\\Extension\\LiquidThreads\\Hooks::onSkinTemplateNavigation",},
PageContentLanguage="LqtDispatch::onPageContentLanguage",
OldChangesListRecentChangesLine="MediaWiki\\Extension\\LiquidThreads\\Hooks::customizeOldChangesList",
GetNewMessagesAlert="MediaWiki\\Extension\\LiquidThreads\\Hooks::setNewtalkHTML",
ChangesListSpecialPageQuery="MediaWiki\\Extension\\LiquidThreads\\Hooks::beforeWatchlist",
ArticleEditUpdateNewTalk="MediaWiki\\Extension\\LiquidThreads\\Hooks::updateNewtalkOnEdit",
GetPreferences="MediaWiki\\Extension\\LiquidThreads\\Hooks::getPreferences",
XmlDumpWriterOpenPage="MediaWiki\\Extension\\LiquidThreads\\Hooks::dumpThreadData",
ModifyExportQuery="MediaWiki\\Extension\\LiquidThreads\\Hooks::modifyExportQuery",
ImportHandlePageXMLTag="MediaWiki\\Extension\\LiquidThreads\\Hooks::handlePageXMLTag",
AfterImportPage="MediaWiki\\Extension\\LiquidThreads\\Hooks::afterImportPage",
ArticleDeleteComplete="LqtDeletionController::onArticleDeleteComplete",
RevisionUndeleted="LqtDeletionController::onRevisionUndeleted",
ArticleUndelete="LqtDeletionController::onArticleUndelete",
ArticleConfirmDelete="LqtDeletionController::onArticleConfirmDelete",
ArticleDelete="LqtDeletionController::onArticleDelete",
PageMoveComplete="MediaWiki\\Extension\\LiquidThreads\\Hooks::onPageMoveComplete",
MovePageIsValidMove="MediaWiki\\Extension\\LiquidThreads\\Hooks::onMovePageIsValidMove",
ShowSearchHitTitle="MediaWiki\\Extension\\LiquidThreads\\Hooks::customiseSearchResultTitle",
SpecialSearchProfiles="MediaWiki\\Extension\\LiquidThreads\\Hooks::customiseSearchProfiles",
LoadExtensionSchemaUpdates="MediaWiki\\Extension\\LiquidThreads\\Hooks::onLoadExtensionSchemaUpdates",
RenameUserSQL="MediaWiki\\Extension\\LiquidThreads\\Hooks::onUserRename",
UserMergeAccountFields="MediaWiki\\Extension\\LiquidThreads\\Hooks::onUserMergeAccountFields",
EditPageGetCheckboxesDefinition="MediaWiki\\Extension\\LiquidThreads\\Hooks::editCheckBoxes",
PageSaveComplete="MediaWiki\\Extension\\LiquidThreads\\Hooks::onPageSaveComplete",
UserIsBlockedFrom="MediaWiki\\Extension\\LiquidThreads\\Hooks::userIsBlockedFrom",
TitleGetRestrictionTypes="MediaWiki\\Extension\\LiquidThreads\\Hooks::getProtectionTypes",
APIQueryAfterExecute="MediaWiki\\Extension\\LiquidThreads\\Hooks::onAPIQueryAfterExecute",
InfoAction="MediaWiki\\Extension\\LiquidThreads\\Hooks::onInfoAction",
SpecialPage_initList="MediaWiki\\Extension\\LiquidThreads\\Hooks::onSpecialPage_initList",
OutputPageParserOutput="LqtParserFunctions::onAddParserOutput",
OutputPageBeforeHTML="LqtParserFunctions::onAddHTML",
getUserPermissionsErrors="MediaWiki\\Extension\\LiquidThreads\\Hooks::onGetUserPermissionsErrors",
PreferencesGetIcon="MediaWiki\\Extension\\LiquidThreads\\Hooks::onPreferencesGetIcon",
},
callback="MediaWiki\\Extension\\LiquidThreads\\Hooks::onRegistration",
config={
LqtPages={
value={
},
},
LqtTalkPages={
value=true,
},
LqtEnotif={
value=true,
},
ThreadActionsNoBump={
value={
3,10,12,2,14,},
},
LiquidThreadsMigrate={
value=false,
},
LiquidThreadsDefaultPageLimit={
value=20,
},
LiquidThreadsAllowUserControl={
value=true,
},
LiquidThreadsAllowUserControlNamespaces={
value=nil,
},
LiquidThreadsAllowEmbedding={
value=true,
},
LqtNamespaces={
value={
},
},
LiquidThreadsShowBumpCheckbox={
value=false,
},
LiquidThreadsEnableNewMessages={
value=true,
},
},
composer="mediawiki/liquid-threads",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LiquidThreads",
},
LiveChat={
name="LiveChat",
version="0.1",
author="[https://www.mediawiki.org/wiki/User:Pastakhov Pavel Astakhov]",
description="The LiveChat extension",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
LiveChatAlias="LiveChat.alias.php",
},
AvailableRights={
"LiveChatManager",},
GroupPermissions={
sysop={
LiveChatManager=true,
},
},
Hooks={
BeforePageDisplay="LiveChatHooks::onBeforePageDisplay",
LiveChatConnected="LiveChatHooks::onLiveChatConnected",
LiveChatStorageInit="LiveChatHooks::onLiveChatStorageInit",
MakeGlobalVariablesScript="LiveChatHooks::onMakeGlobalVariablesScript",
LoadExtensionSchemaUpdates="LiveChatHooks::onLoadExtensionSchemaUpdates",
},
SpecialPages={
LiveChat="LiveChat\\SpecialLiveChat",
LiveStatus="LiveChat\\SpecialLiveStatus",
},
config={
LiveChatPidPath="/tmp",
LiveChatSystemUser="",
LiveChatSystemGroup="",
LiveChatLogFile="",
LiveChatDebugLogFile="",
LiveChatManagerSocketName="tcp://127.0.0.1:2345",
LiveChatStorageSocketName="tcp://127.0.0.1:2344",
LiveChatServerAddress="0.0.0.0",
LiveChatServerPort="2346",
LiveChatServerThreads=1,
LiveChatClientDomain="",
LiveChatClientPort="2346",
LiveChatClientPath="",
LiveChatClientTLS=false,
},
composer="mediawiki/livechat",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LiveChat",
},
LockAuthor={
name="LockAuthor",
version="1.0",
author={
"Vedmaka",},
url="https://www.mediawiki.org/wiki/Extension:LockAuthor",
descriptionmsg="lockauthor-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
["license-name"]="GPL-2.0-or-later",
config={
LockAuthorExcludedNamespaces={
value={
},
merge_strategy="array_plus_2d",
},
LockAuthorActions={
value={
"edit","create",},
merge_strategy="array_plus_2d",
},
},
AvailableRights={
"editall",},
GroupPermissions={
sysop={
editall=true,
},
},
Hooks={
getUserPermissionsErrors="LockAuthor\\LockAuthorHooks::onGetUserPermissionsErrors",
},
ConfigRegistry={
LockAuthor="GlobalVarConfig::newInstance",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LockAuthor",
},
LockDownEnglishPages={
name="LockDownEnglishPages",
version="0.3.1",
author={
"Jack Phoenix",},
url="https://www.mediawiki.org/wiki/Extension:LockDownEnglishPages",
descriptionmsg="lockdownenglishpages-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
HookHandlers={
default={
class="LockDownEnglishPages",
services={
"UserGroupManager","PermissionManager",},
},
},
Hooks={
userCan="default",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LockDownEnglishPages",
},
Lockdown={
name="Lockdown",
author={
"Daniel Kinzler","Platonides","Mark A. Hershberger","...",},
url="https://www.mediawiki.org/wiki/Extension:Lockdown",
requires={
MediaWiki="&gt;= 1.41.0",
},
descriptionmsg="lockdown-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
HookHandlers={
default={
class="MediaWiki\\Extension\\Lockdown\\Hooks",
services={
"UserGroupManager",},
},
},
Hooks={
getUserPermissionsErrors="default",
MediaWikiPerformAction="default",
SearchableNamespaces="default",
SearchGetNearMatchComplete="default",
},
config={
NamespacePermissionLockdown={
["_merge_strategy"]="array_plus",
},
SpecialPageLockdown={
},
ActionLockdown={
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Lockdown",
},
LogEntry={
name="LogEntry",
author="Trevor Parscal",
url="https://www.mediawiki.org/wiki/Extension:LogEntry",
descriptionmsg="logentry-parserhook-desc",
["license-name"]="GPL-2.0-only",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
SpecialPages={
LogEntry="SpecialLogEntry",
},
ExtensionMessagesFiles={
LogEntryAlias="LogEntry.alias.php",
},
Hooks={
ParserFirstCallInit="LogEntryHooks::register",
},
config_prefix="eg",
config={
LogEntryTimeStamp={
value=true,
},
LogEntryUserName={
value=true,
},
LogEntryMultiLine={
value=false,
},
LogEntryMultiLineRows={
value=3,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LogEntry",
},
LoginNotify={
name="LoginNotify",
version="0.1",
author={
"Brian Wolff",},
url="https://www.mediawiki.org/wiki/Extension:LoginNotify",
descriptionmsg="loginnotify-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.42",
extensions={
Echo="*",
},
},
DefaultUserOptions={
["echo-subscriptions-web-login-fail"]=true,
["echo-subscriptions-email-login-fail"]=true,
["echo-subscriptions-web-login-success"]=false,
["echo-subscriptions-email-login-success"]=true,
},
Hooks={
BeforeCreateEchoEvent="echo",
EchoGetBundleRules="echo",
AuthManagerLoginAuthenticateAudit="main",
LocalUserCreated="main",
RecentChange_save="main",
LoadExtensionSchemaUpdates="schema",
},
HookHandlers={
main={
class="LoginNotify\\Hooks",
services={
"UserFactory",},
},
echo={
class="LoginNotify\\EchoHooks",
},
schema={
class="LoginNotify\\SchemaHooks",
},
},
JobClasses={
LoginNotifyChecks={
class="LoginNotify\\DeferredChecksJob",
services={
"UserFactory",},
},
LoginNotifyPurgeSeen={
class="LoginNotify\\PurgeSeenJob",
services={
"LoginNotify.LoginNotify",},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
DatabaseVirtualDomains={
"virtual-LoginNotify",},
config={
LoginNotifyAttemptsKnownIP={
description="The number of failed login attempts to permit from a known IP before a notification is triggered.",
value=5,
},
LoginNotifyExpiryKnownIP={
description="The time-to-live of the count of failed login attempts from a known IP (from the time of the first failed attempt).",
value=604800,
},
LoginNotifyAttemptsNewIP={
description="The number of failed login attempts to permit from a new IP before a notification is triggered.",
value=1,
},
LoginNotifyExpiryNewIP={
description="The time-to-live of the count of failed login attempts from a new IP (from the time of the first failed attempt).",
value=1209600,
},
LoginNotifyCheckKnownIPs={
description="Whether to trigger a notification after failed logins from known IPs.",
value=true,
},
LoginNotifyEnableOnSuccess={
description="Whether to trigger a notification after successful logins from unknown IPs.",
value=true,
},
LoginNotifySecretKey={
description="Override this to use a different secret than $wgSecretKey",
value=nil,
},
LoginNotifyCookieExpire={
description="Expiry in seconds. Default is 180 days",
value=15552000,
},
LoginNotifyCookieDomain={
description="Override to allow sharing login cookies between sites on different subdomains",
value=nil,
},
LoginNotifyMaxCookieRecords={
description="Maximum number of users (records) to track as having successfully logged in on a particular device.",
value=6,
},
LoginNotifyCacheLoginIPExpiry={
description="Set to false to disable caching IPs in memcache. Set to 0 to cache forever. Default 60 days.",
value=5184000,
},
LoginNotifyUseCheckUser={
description="Use the CheckUser cu_changes table if it is available. This is redundant with LoginNotify's own table, available with MediaWiki 1.41. Since 1.43, setting this to true is deprecated and when set to true this method may be missing data due to CheckUser schema changes.",
value=false,
},
LoginNotifyUseSeenTable={
description="Use the loginnotify_seen_net table. This is redundant with LoginNotifyUseCheckUser although both can be enabled during migration.",
value=true,
},
LoginNotifyUseCentralId={
description="Use central user IDs in the loginnotify_seen_net table. This should be set to true if the loginnotify_seen_net is in a shared database. CentralAuth should be installed and all users should be attached to it.",
value=false,
},
LoginNotifySeenExpiry={
description="The expiry time of data in the loginnotify_seen_net table, in seconds. This should be a multiple of LoginNotifyBucketSize. Default is 180 days.",
value=15552000,
},
LoginNotifySeenBucketSize={
description="The size of a time bucket used when storing data in the loginnotify_seen_net table, in seconds. If this is changed, the data in the loginnotify_seen_net will become invalid and the table should be truncated. Setting this to a small number will require additional storage space. Setting this to a large number will cause the data expiry time to be less accurate. Default: 15 days.",
value=1296000,
},
},
composer="mediawiki/loginnotify",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LoginNotify",
},
LogoFunctions={
name="LogoFunctions",
version="2.2",
author={
"JuneHyeon Bae (devunt)","Ryan Schmidt","Isarra Yos","...",},
url="https://www.mediawiki.org/wiki/Extension:LogoFunctions",
descriptionmsg="logofunctions-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
},
ExtensionMessagesFiles={
LogoFunctionsMagic="LogoFunctions.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="LogoFunctions::onParserFirstCallInit",
BeforePageDisplay="LogoFunctions::onBeforePageDisplay",
},
config={
NamespaceLogos={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LogoFunctions",
},
LookupUser={
name="LookupUser",
version="1.5.2",
author={
"Tim Starling",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:LookupUser",
descriptionmsg="lookupuser-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.31.0",
},
SpecialPages={
LookupUser="LookupUserPage",
},
ExtensionMessagesFiles={
LookupUserAlias="LookupUser.alias.php",
},
Hooks={
ContributionsToolLinks="LookupUserPage::onContributionsToolLinks",
},
AvailableRights={
"lookupuser",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LookupUser",
},
LoopFunctions={
name="LoopFunctions",
version="1.0.7",
author={
"Carl Fürstenberg (AzaToth)","Matteo Cypriani (Xiloynaha)",},
url="https://www.mediawiki.org/wiki/Extension:LoopFunctions",
descriptionmsg="loopfunc-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
LoopFunctionsMagic="LoopFunctions.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="ExtLoopFunctions::setup",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/LoopFunctions",
},
Loops={
name="Loops",
version="1.0.0-beta",
author={
"David M. Sledge","[https://www.mediawiki.org/wiki/User:Danwe Daniel Werner]",},
url="https://www.mediawiki.org/wiki/Extension:Loops",
descriptionmsg="loops-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;=1.29",
},
config_prefix="eg",
config={
LoopsEnabledFunctions={
value={
"while","dowhile","loop","forargs","fornumargs",},
path=false,
descriptionmsg="loops-config-enabledfunctions",
public=true,
},
LoopsCountLimit={
value=100,
path=false,
descriptionmsg="loops-config-countlimit",
public=true,
},
},
ExtensionMessagesFiles={
LoopsMagic="Loops.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="ExtLoops::init",
ParserLimitReportPrepare="ExtLoops::onParserLimitReportPrepare",
ParserClearState="ExtLoops::onParserClearState",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Loops",
},
MP3MediaHandler={
name="MP3MediaHandler",
version="1.1",
author={
"Mark Clements (HappyDog)","Sylvain Machefert","Sam J Watkins","Reddo",},
url="https://www.mediawiki.org/wiki/Extension:MP3MediaHandler",
descriptionmsg="mp3mediahandler-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
MediaHandlers={
["audio/mp3"]="MP3MediaHandler",
["audio/mpeg"]="MP3MediaHandler",
},
FileExtensions={
"mp3",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MP3MediaHandler",
},
MWVersionInfo={
name="MWVersionInfo",
author={
"Kunal Mehta",},
url="https://www.mediawiki.org/wiki/Extension:MWVersionInfo",
descriptionmsg="mwversioninfo-desc",
type="other",
["license-name"]="GPL-3.0-or-later",
requires={
MediaWiki="&gt;= 1.37.0",
},
APIModules={
mwversioninfo="MediaWiki\\VersionInfo\\ApiVersionInfo",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MWVersionInfo",
},
MagicLinkAuthentication={
name="Magic Link Authentication",
version="0.1",
author={
"[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]",},
url="https://www.mediawiki.org/wiki/Extension:MagicLinkAuthentication",
descriptionmsg="magic-link-authentication-desc",
type="other",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
PluggableAuth="&gt;= 7.0",
},
},
ExtensionMessagesFiles={
MagicLinkAuthenticationAlias="includes/MagicLinkAuthentication.alias.php",
},
SpecialPages={
ContinueMagicLinkAuthentication={
class="MediaWiki\\Extension\\MagicLinkAuthentication\\ContinueMagicLinkAuthentication",
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
HookHandlers={
schema={
class="MediaWiki\\Extension\\MagicLinkAuthentication\\SchemaHooks",
},
},
Hooks={
LoadExtensionSchemaUpdates="schema",
},
attributes={
PluggableAuth={
MagicLinkAuthentication={
class="MediaWiki\\Extension\\MagicLinkAuthentication\\MagicLinkAuthentication",
services={
"MainConfig","AuthManager","Emailer","UserIdentityLookup","MagicLinkAuthentication.DBInterface","MagicLinkAuthentication.JWTHandler",},
},
},
},
config={
MagicLinkAuthentication_SigningKey={
value=nil,
},
MagicLinkAuthentication_EncryptionKey={
value=nil,
},
MagicLinkAuthentication_TokenLifetime={
value=300,
},
MagicLinkAuthentication_EmailSender={
value=nil,
},
},
composer="mediawiki/magiclinkauth",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MagicLinkAuthentication",
},
MagicNoCache={
name="MagicNoCache",
version="1.6.0",
author={
"[https://www.mediawiki.org/wiki/User:Kimon Kimon Andreou]","[https://www.mediawiki.org/wiki/User:Pastakhov Pavel Astakhov]","...",},
requires={
MediaWiki="&gt;= 1.38.0",
},
type="parserhook",
url="https://www.mediawiki.org/wiki/Extension:MagicNoCache",
descriptionmsg="magicnocache-desc",
["license-name"]="GPL-2.0-or-later",
ExtensionMessagesFiles={
MagicNoCacheMagic="MagicNoCache.i18n.magic.php",
},
Hooks={
InternalParseBeforeLinks="MagicNoCacheHooks::magicwordCheck",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MagicNoCache",
},
Mailgun={
name="Mailgun",
version="2.1",
author={
"Tony Thomas","Alangi Derick",},
url="https://www.mediawiki.org/wiki/Extension:Mailgun",
descriptionmsg="mailgun-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.34.0",
},
Hooks={
AlternateUserMailer="MailgunHooks::onAlternateUserMailer",
},
config={
MailgunAPIKey="",
MailgunDomain="",
MailgunEndpoint="",
},
composer="mediawiki/mailgun",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Mailgun",
},
Maintenance={
name="Maintenance",
version="2.3.2",
author={
"Ryan Schmidt",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:Maintenance",
descriptionmsg="maintenance-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.31.0",
},
config={
MaintenanceDebug=false,
},
ExtensionMessagesFiles={
MaintenanceAlias="Maintenance.alias.php",
},
SpecialPages={
Maintenance="SpecialMaintenance",
},
AvailableRights={
"maintenance",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Maintenance",
},
MaintenanceShell={
name="MaintenanceShell",
version="0.5.0",
author={
"[http://swiftlytilting.com Andrew Fitzgerald]","Timo Tijhof",},
url="https://www.mediawiki.org/wiki/Extension:MaintenanceShell",
descriptionmsg="maintenanceshell-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.37.0",
},
type="specialpage",
AvailableRights={
"maintenanceshell",},
ExtensionFunctions={
"MaintenanceShellHooks::onSetup",},
SpecialPages={
MaintenanceShell="SpecialMaintenanceShell",
},
ExtensionMessagesFiles={
MaintenanceShellAlias="MaintenanceShell.alias.php",
},
config={
MaintenanceShellPath=false,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MaintenanceShell",
},
MapSources={
name="MapSources",
version="1.8.0",
author={
"Roland Unger","Egil Kvaleberg","Matthias Mullie",},
url="https://www.mediawiki.org/wiki/Extension:MapSources",
descriptionmsg="mapsources-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42",
},
SpecialPages={
MapSources="MediaWiki\\Extension\\MapSources\\Specials\\MapSourcesPage",
},
ExtensionMessagesFiles={
MapSourcesMagic="MapSources.i18n.magic.php",
MapSourcesAlias="MapSources.i18n.alias.php",
},
Hooks={
ParserFirstCallInit="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\MapSources\\Hooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MapSources",
},
MarkAsHelpful={
name="MarkAsHelpful",
version="0.2.0",
author={
"Rob Moen","Benny Situ",},
url="https://www.mediawiki.org/wiki/Mark_as_Helpful",
descriptionmsg="markashelpful-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
APIModules={
markashelpful="ApiMarkAsHelpful",
getmarkashelpfulitem="ApiGetMarkAsHelpfulItem",
},
AvailableRights={
"markashelpful-view","markashelpful-admin",},
GroupPermissions={
sysop={
["markashelpful-admin"]=true,
},
},
Hooks={
BeforePageDisplay="MarkAsHelpfulHooks::onPageDisplay",
LoadExtensionSchemaUpdates="MarkAsHelpfulHooks::onLoadExtensionSchemaUpdates",
},
config={
MarkAsHelpfulType={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MarkAsHelpful",
},
MassEditRegex={
name="MassEditRegex",
namemsg="masseditregex-extensionname",
version="8.4.1",
author={
"Adam Nielsen","...",},
url="https://www.mediawiki.org/wiki/Extension:MassEditRegex",
descriptionmsg="masseditregex-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.40.0",
},
AvailableRights={
"masseditregex",},
SpecialPages={
MassEditRegex="MassEditRegexSpecialPage",
},
ExtensionMessagesFiles={
MassEditRegexAlias="MassEditRegex.alias.php",
},
Hooks={
["SkinTemplateNavigation::Universal"]="MassEditRegexSpecialPage::efSkinTemplateNavigationUniversal",
},
config={
AjaxExportList={
value={
"MassEditRegexAPI::edit",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MassEditRegex",
},
MassMessage={
name="MassMessage",
version="0.5.0",
author={
"Kunal Mehta","wctaiwan",},
url="https://www.mediawiki.org/wiki/Extension:MassMessage",
descriptionmsg="massmessage-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
config={
NamespacesToPostIn={
value={
4,},
},
AllowlistedMassMessageTargets={
value={
},
},
AllowGlobalMessaging={
value=true,
},
NamespacesToConvert={
value={
[3]=3,
},
},
MassMessageAccountUsername={
value="MediaWiki message delivery",
},
MassMessageWikiAliases={
value={
},
},
},
requires={
MediaWiki="&gt;= 1.42.0",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
TrackingCategories={
"massmessage-list-category",},
ExtensionMessagesFiles={
MassMessageAlias="MassMessage.alias.php",
MassMessageMagic="MassMessage.i18n.magic.php",
},
APIModules={
massmessage="MediaWiki\\MassMessage\\Api\\ApiMassMessage",
editmassmessagelist="MediaWiki\\MassMessage\\Api\\ApiEditMassMessageList",
},
LogTypes={
"massmessage",},
APIPropModules={
mmcontent="MediaWiki\\MassMessage\\Api\\ApiQueryMMContent",
},
GrantPermissions={
highvolume={
massmessage=true,
},
},
Hooks={
ParserFirstCallInit="main",
APIQuerySiteInfoStatisticsInfo="main",
UserGetReservedNames="main",
BeforeEchoEventInsert="echo",
["SkinTemplateNavigation::Universal"]="main",
BeforePageDisplay="main",
ListDefinedTags="main",
ChangeTagsListActive="main",
RejectParserCacheValue="main",
},
HookHandlers={
main={
class="MediaWiki\\MassMessage\\MassMessageHooks",
},
echo={
class="MediaWiki\\MassMessage\\EchoHooks",
},
},
ContentHandlers={
MassMessageListContent="MediaWiki\\MassMessage\\Content\\MassMessageListContentHandler",
},
JobClasses={
MassMessageJob="MediaWiki\\MassMessage\\Job\\MassMessageJob",
MassMessageSubmitJob="MediaWiki\\MassMessage\\Job\\MassMessageSubmitJob",
MassMessageServerSideJob="MediaWiki\\MassMessage\\Job\\MassMessageServerSideJob",
},
GroupPermissions={
sysop={
massmessage=true,
},
},
LogActionsHandlers={
["massmessage/*"]="LogFormatter",
["massmessage/send"]="MediaWiki\\MassMessage\\Logging\\MassMessageSendLogFormatter",
["massmessage/failure"]="WikitextLogFormatter",
["massmessage/skipoptout"]="MediaWiki\\MassMessage\\Logging\\MassMessageSkipLogFormatter",
["massmessage/skipnouser"]="MediaWiki\\MassMessage\\Logging\\MassMessageSkipLogFormatter",
["massmessage/skipbadns"]="MediaWiki\\MassMessage\\Logging\\MassMessageSkipLogFormatter",
},
ActionFilteredLogs={
massmessage={
send={
"send",},
failure={
"failure",},
skipoptout={
"skipoptout",},
skipnouser={
"skipnouser",},
skipbadns={
"skipbadns",},
},
},
AvailableRights={
"massmessage",},
SpecialPages={
MassMessage={
class="MediaWiki\\MassMessage\\Specials\\SpecialMassMessage",
services={
"MassMessage:LabeledSectionContentFetcher","MassMessage:LocalMessageContentFetcher","MassMessage:PageMessageBuilder","_Parsoid","ParsoidPageConfigFactory","ExtensionRegistry",},
},
CreateMassMessageList="MediaWiki\\MassMessage\\Specials\\SpecialCreateMassMessageList",
EditMassMessageList={
class="MediaWiki\\MassMessage\\Specials\\SpecialEditMassMessageList",
services={
"UserOptionsLookup","RestrictionStore","WatchlistManager","PermissionManager","RevisionLookup",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MassMessage",
},
MassMessageEmail={
name="MassMessageEmail",
version="0.4.0",
author="Ike Hecht",
url="https://www.mediawiki.org/wiki/Extension:MassMessageEmail",
descriptionmsg="massmessageemail-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.38.0",
extensions={
MassMessage="&gt;= 0.5.0",
},
},
Hooks={
MassMessageJobBeforeMessageSent="MassMessageEmailHooks::onMassMessageJobBeforeMessageSent",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MassMessageEmail",
},
Math={
name="Math",
author={
"Tomasz Wegrzanowski","Brion Vibber","Moritz Schubotz","Derk-Jan Hartman","André Greiner-Petter","Johannes Stegmüller",},
url="https://www.mediawiki.org/wiki/Extension:Math",
descriptionmsg="math-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42.0",
},
DefaultUserOptions={
math="mathml",
["math-popups"]="1",
},
ExtensionMessagesFiles={
MathAlias="Math.alias.php",
MathAliasNoTranslate="Math.alias.noTranslate.php",
},
callback="MediaWiki\\Extension\\Math\\Hooks::onConfig",
ExtensionFunctions={
"MediaWiki\\Extension\\Math\\Hooks::onExtensionFunctions",},
HookHandlers={
ParserHooksHandler={
class="MediaWiki\\Extension\\Math\\HookHandlers\\ParserHooksHandler",
services={
"Math.RendererFactory","UserOptionsLookup","HookContainer",},
},
PreferencesHooksHandler={
class="MediaWiki\\Extension\\Math\\HookHandlers\\PreferencesHooksHandler",
services={
"Math.Config",},
},
ResourceLoaderConfigHandler={
class="MediaWiki\\Extension\\Math\\HookHandlers\\ResourceLoaderConfigHandler",
services={
"Math.Config",},
},
main={
class="MediaWiki\\Extension\\Math\\Hooks",
},
schema={
class="MediaWiki\\Extension\\Math\\HookHandlers\\SchemaHooksHandler",
},
},
Hooks={
ParserFirstCallInit="ParserHooksHandler",
ParserAfterTidy="ParserHooksHandler",
ParserOptionsRegister="ParserHooksHandler",
GetPreferences="PreferencesHooksHandler",
UserGetDefaultOptions="PreferencesHooksHandler",
LoadExtensionSchemaUpdates="schema",
WikibaseClientDataTypes="MediaWiki\\Extension\\Math\\WikibaseHook::onWikibaseClientDataTypes",
WikibaseRepoDataTypes="MediaWiki\\Extension\\Math\\WikibaseHook::onWikibaseRepoDataTypes",
SpecialPage_initList="main",
MaintenanceRefreshLinksInit="main",
ResourceLoaderGetConfigVars="ResourceLoaderConfigHandler",
},
config={
MathDefaultLaTeXMLSetting={
value={
format="xhtml",
whatsin="math",
whatsout="math",
[1]="pmml",
[2]="cmml",
[3]="mathtex",
[4]="nodefaultresources",
preload={
"LaTeX.pool","article.cls","amsmath.sty","amsthm.sty","amstext.sty","amssymb.sty","eucal.sty","[dvipsnames]xcolor.sty","url.sty","hyperref.sty","[ids]latexml.sty","texvc",},
linelength=90,
},
},
MathDisableTexFilter={
description="To access this at run-time, use MathConfig::texCheckDisabled(). Do not use the non-normalized configuration directly.",
value="new",
},
MathEnableExperimentalInputFormats={
value=false,
},
MathEntitySelectorFallbackUrl={
description="Fallback value for wbEntitySelector if wbRepo is not configured. See https://www.mediawiki.org/wiki/Manual:CORS for cross wiki communication.",
value="https://www.wikidata.org/w/api.php",
},
MathTexVCService={
description="Determine which TexVC variant is used, currently available: 'mathoid', 'restbase' (default) and 'local'.",
value="restbase",
},
MathSvgRenderer={
description="Determine which SVG rendering service is used. Currently available 'mathoid', 'restbase'.",
value="restbase",
},
MathLaTeXMLTimeout={
value=240,
},
MathLaTeXMLUrl={
value="https://latexml.formulasearchengine.com/convert",
},
MathMathMLTimeout={
value=20,
},
MathMathMLUrl={
value="https://mathoid-beta.wmflabs.org",
},
MathUseInternalRestbasePath={
description="Whether to allow to use of internal RESTBase path instead of $wgMathFullRestbaseURL. Set false if you want to use external RESTBase in any case.",
value=true,
public=true,
},
MathInternalRestbaseURL={
value=nil,
},
MathFullRestbaseURL={
value="https://wikimedia.org/api/rest_",
},
MathConcurrentReqs={
value=50,
},
MathoidCli={
value=false,
},
MathValidModes={
description="To access this at run-time, use MathConfig::getValidRenderingModes(). Do not use the non-normalized configuration directly.",
value={
"source","mathml",},
},
MathEnableWikibaseDataType={
value=true,
},
MathEnableFormulaLinks={
value=true,
},
MathWikibasePropertyIdHasPart={
description="Original Wikidata property that described the elements of a mathematical formula with the data type item.",
value="P527",
},
MathWikibasePropertyIdInDefiningFormula={
description="New Wikidata property that describe the elements of a mathematical formula with the data type 'mathematical expression'. This potentially replaces 'has part' in the future.",
value="P7235",
},
MathWikibasePropertyIdDefiningFormula={
description="The property that describes the mathematical formula representing an item in Wikidata.",
value="P2534",
},
MathWikibasePropertyIdQuantitySymbol={
description="The Wikidata property that is used to present mathematical expressions in 'has part'. The data type is 'string'.",
value="P416",
},
MathWikibasePropertyIdSymbolRepresents={
description="The Wikidata property that is used to present mathematical expressions in 'in defining formula'. The data type is 'item'.",
value="P9758",
},
},
attributes={
Popups={
PluginModules={
"ext.math.popup",},
},
VisualEditor={
PluginModules={
"ext.math.visualEditor",},
},
},
QUnitTestModule={
localBasePath="modules/ve-math/tests",
remoteExtPath="Math/modules/tests",
scripts={
"ve.dm.Autocomplete.test.js",},
dependencies={
"ext.math.visualEditor","test.VisualEditor",},
},
ForeignResourcesDir="modules",
SpecialPages={
MathShowImage={
class="MediaWiki\\Extension\\Math\\SpecialMathShowImage",
services={
"Math.Config","Math.RendererFactory",},
},
MathStatus={
class="MediaWiki\\Extension\\Math\\SpecialMathStatus",
services={
"Math.Config","Math.RendererFactory",},
},
MathWikibase="MediaWiki\\Extension\\Math\\SpecialMathWikibase",
},
TrackingCategories={
"math-tracking-category-error","math-tracking-category-render-error","math-tracking-category-mhchem-deprecation","math-tracking-category-texvc-deprecation",},
ServiceWiringFiles={
"ServiceWiring.php",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Math",
},
MathSearch={
name="MathSearch",
version="0.2.0",
author="Moritz Schubotz",
url="https://www.mediawiki.org/wiki/Extension:MathSearch",
descriptionmsg="mathsearch-desc",
["license-name"]="GPL-2.0-or-later",
callback="MathSearchHooks::registerExtension",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42.0",
extensions={
Math="*",
},
},
AvailableRights={
"mathwmcsubmit",},
ExtensionMessagesFiles={
MathSearchAlias="MathSearch.alias.php",
},
GroupPermissions={
sysop={
mathwmcsubmit=true,
},
},
Hooks={
LoadExtensionSchemaUpdates="MathSearchHooks::onLoadExtensionSchemaUpdates",
MathFormulaPostRender={
"MathSearchHooks::addLinkToFormulaInfoPage","MathSearchHooks::updateMathIndex",},
ParserFirstCallInit="MathSearchHooks::onParserFirstCallInit",
ArticleDeleteComplete="MathSearchHooks::onArticleDeleteComplete",
WikibaseClientDataTypes={
"MediaWiki\\Extension\\MathSearch\\Wikidata\\Content\\ContentMathWikidataHook::onWikibaseClientDataTypes","MediaWiki\\Extension\\MathSearch\\Wikidata\\MathML\\MathMLWikidataHook::onWikibaseClientDataTypes",},
WikibaseRepoDataTypes={
"MediaWiki\\Extension\\MathSearch\\Wikidata\\Content\\ContentMathWikidataHook::onWikibaseRepoDataTypes","MediaWiki\\Extension\\MathSearch\\Wikidata\\MathML\\MathMLWikidataHook::onWikibaseRepoDataTypes",},
PageSaveComplete="MathSearchHooks::onPageSaveComplete",
ArticleUndelete="MathSearchHooks::onArticleUndelete",
},
config={
MathAnalysisTableName="mathlatexml",
MathDebug=false,
MathSearchBaseXBackendUrl="http://localhost:10043/",
MathSearchMWSUrl="http://localhost:9090/",
MathSearchTranslationUrl="http://vmext-demo.wmflabs.org/math/translation",
MathUpdateObservations=false,
MathUploadEnabled=false,
MathWmcMaxResults=10000,
MathWmcServer=false,
MathSearchWikidataUrl="https://wikidata.org",
ContentMathEnableWikibaseDataType=true,
MathSearchContentTexMaxLength=5000,
MathSearchInfoPage="FormulaInfo",
MathSearchPropertySwhid=1454,
MathSearchPropertyScrUrl=339,
MathSearchPropertyPointInTime=140,
MathSearchPropertyProfileType=1460,
MathProfileQueries={
person="?item wdt:P31 wd:Q57162",
formula="?item wdt:P31 wd:Q1025939",
publication="?item wdt:P1451 ?zblno",
software="?item wdt:P13 ?swmathID",
},
MathOpenAlexQIdMap={
prime_landing_page_url="P205",
best_landing_page_url="P205",
best_pdf_url="P205",
doi="P27",
document="P1451",
openalex_id="P388",
openalex_title="P159",
},
MathProfileQIdMap={
person="Q5976445",
formula="Q5981696",
publication="Q5976449",
software="Q5976450",
},
},
SpecialPages={
MathSearch="SpecialMathSearch",
MlpEval="SpecialMlpEval",
FormulaInfo={
class="FormulaInfo",
services={
"Math.Config",},
},
GetEquationsByQuery="GetEquationsByQuery",
MathDebug="SpecialMathDebug",
MathIndex="SpecialMathIndex",
DisplayTopics="SpecialDisplayTopics",
LaTeXTranslator="SpecialLaTeXTranslator",
MathUpload="SpecialUploadResult",
MathDownload="SpecialMathDownloadResult",
},
JobClasses={
SeLineReader="\\MathSearch\\StackExchange\\LineReaderJob",
CreateProfilePages="\\MediaWiki\\Extension\\MathSearch\\Graph\\Job\\PageCreation",
SetProfileType="\\MediaWiki\\Extension\\MathSearch\\Graph\\Job\\SetProfileType",
OpenAlex="\\MediaWiki\\Extension\\MathSearch\\Graph\\Job\\OpenAlex",
},
RestRoutes={
{
path="/math/v0/arq/getPost/{fId}",
method="GET",
class="\\MediaWiki\\Extension\\MathSearch\\Rest\\ArqTask\\GetPostId",
services={
"DBLoadBalancer",},
},},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MathSearch",
},
MediaFunctions={
name="MediaFunctions",
version="1.5.0",
author={
"Rob Church","...",},
url="https://www.mediawiki.org/wiki/Extension:MediaFunctions",
descriptionmsg="mediafunctions-desc",
["license-name"]="BSD-2-Clause",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
ExtensionMessagesFiles={
MediaFunctionsMagic="MediaFunctions.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="MediaFunctionsHooks::efMediaFunctionsSetup",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MediaFunctions",
},
MediaModeration={
name="MediaModeration",
version="2.0.0",
author={
"Core Platform &amp; Trust and Safety Teams","Trust and Safety Product Team",},
url="https://www.mediawiki.org/wiki/Extension:MediaModeration",
descriptionmsg="mediamoderation-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
Hooks={
UploadComplete="UploadCompleteHandler",
LoadExtensionSchemaUpdates="SchemaChangesHandler",
},
HookHandlers={
UploadCompleteHandler={
class="MediaWiki\\Extension\\MediaModeration\\Hooks\\Handlers\\UploadCompleteHandler",
services={
"MediaModerationFileProcessor","MediaModerationDatabaseLookup","MediaModerationEmailer","MainConfig",},
},
SchemaChangesHandler={
class="MediaWiki\\Extension\\MediaModeration\\Hooks\\Handlers\\SchemaChangesHandler",
},
},
JobClasses={
mediaModerationScanFileJob="MediaWiki\\Extension\\MediaModeration\\Job\\MediaModerationScanFileJob",
},
ServiceWiringFiles={
"src/ServiceWiring.php",},
ConfigRegistry={
MediaModeration="GlobalVarConfig::newInstance",
},
config={
MediaModerationDeveloperMode={
value=true,
description="If the extension is in developer mode. Make sure this is false in production.",
},
MediaModerationAddToScanTableOnUpload={
value=true,
description="If MediaModeration will add to the mediamoderation_scan table on upload. Useful to set to false when bulk adding files in local environment.",
},
MediaModerationPhotoDNAMockServiceFiles={
value={
FilesToIsMatchMap={
},
FilesToStatusCodeMap={
},
},
description="For CI and development setups. Two arrays of files names, FilesToIsMatchMap should contain a list of file names that the mock service says are a match to PhotoDNA's database; FilesToStatusCodeMap should contain a list of files mapped to PhotoDNA status codes. Files not in these maps will return STATUS_OK and IsMatch=false.",
},
MediaModerationPhotoDNAUrl={
value="https://api.microsoftmoderator.com/photodna/v1.0/Match",
description="URL to PhotoDNA service endpoint.",
},
MediaModerationThumbnailWidth={
value=320,
description="Width, in pixels, that MediaModeration will use when transforming files to a thumbnail to send to PhotoDNA. Default is 320, which should already exist as a pre-rendered thumbnail per $wgUploadThumbnailRenderMap in production.",
},
MediaModerationPhotoDNASubscriptionKey={
value="",
description="Key for access to PhotoDNA service endpoint.",
},
MediaModerationRecipientList={
value={
},
description="List of emails to be notified when suspicious content is detected.",
},
MediaModerationFrom={
value="",
description="Email from which notification are sent.",
},
MediaModerationHttpProxy={
value=nil,
description="HTTP proxy to use when calling PhotoDNA service.",
},
},
DatabaseVirtualDomains={
"virtual-mediamoderation",},
composer="mediawiki/media-moderation",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MediaModeration",
},
MediaSearch={
name="MediaSearch",
author={
"Anne Tomasevich","Cormac Parle","Eric Gardner","Mark Holmquist","Matthias Mullie",},
url="https://www.mediawiki.org/wiki/Extension:MediaSearch",
descriptionmsg="mediasearch-desc",
["license-name"]="GPL-2.0-or-later",
type="wikibase",
requires={
MediaWiki="&gt;= 1.42.0",
},
ConfigRegistry={
MediaSearch="GlobalVarConfig::newInstance",
},
config={
MediaSearchExternalEntitySearchBaseUri={
description="Url to API of Wikibase repository to use for autocomplete results, or leave empty to use local API. Set to `null` to disable autocomplete.",
value="",
},
MediaSearchExternalSearchUri={
description="Url to API of MediaWiki instance to use for search results, or leave empty to use local API.",
value="",
},
MediaSearchAssessmentFilters={
description="Optional Key/value pairs representing values for community assessment filter; values should be Wikidata statements in the format 'PXXX=Qxxx'.",
value="",
},
MediaSearchAssessmentQuickviewLabels={
description="Optional Key/value pairs representing possible Assessment values in file metadata and their corresponding labels",
value={
valued="mediasearch-filter-assessment-valued-image",
quality="mediasearch-filter-assessment-quality-image",
featured="mediasearch-filter-assessment-featured-image",
potd="mediasearch-filter-assessment-picture-of-the-day",
poty="mediasearch-filter-assessment-picture-of-the-year",
},
},
MediaSearchTabOrder={
description="Optional array of values defining search type tab order. Array elements can have values: image, audio, video, page, other",
value={
},
},
},
Hooks={
GetPreferences="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\MediaSearch\\MediaSearchHooks",
},
},
DefaultUserOptions={
["sdms-specialsearch-default"]=0,
["sdms-search-user-notice-dismissed"]=0,
},
SpecialPages={
MediaSearch={
class="MediaWiki\\Extension\\MediaSearch\\Special\\SpecialMediaSearch",
services={
"SearchEngineFactory","NamespaceInfo","UserOptionsManager","LinkRenderer",},
},
},
ExtensionMessagesFiles={
MediaSearchAlias="MediaSearch.i18n.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MediaSearch",
},
MediaSpoiler={
name="MediaSpoiler",
version="0.1.0",
author={
"[https://www.mediawiki.org/wiki/User:沈澄心 沈澄心]",},
url="https://www.mediawiki.org/wiki/Extension:MediaSpoiler",
descriptionmsg="mediaspoiler-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.41.0",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\MediaSpoiler\\Hooks",
services={
"UserOptionsLookup",},
},
},
Hooks={
ParserMakeImageParams="main",
ParserModifyImageHTML="main",
OutputPageBeforeHTML="main",
ParserOptionsRegister="main",
UserGetDefaultOptions="main",
GetPreferences="main",
},
config={
MediaSpoilerEnableMark={
value=true,
description="Allow editors to mark sensitive media",
},
},
ConfigRegistry={
MediaSpoiler="GlobalVarConfig::newInstance",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MediaSpoiler",
},
MediaUploader={
name="MediaUploader",
version="0.1.0",
author={
"Ostrzyciel","Neil Kandalgaonkar","Jeroen De Dauw","Mark Holmquist","Ryan Kaldari","Michael Dale","Ankur Anand","Ian Baker","Nischay Nahata","Yuvi Panda","Bartosz Dziewoński","Matthias Mullie",},
url="https://www.mediawiki.org/wiki/Extension:MediaUploader",
descriptionmsg="mediauploader-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.37.0",
},
DefaultUserOptions={
upwiz_deflicense="default",
upwiz_maxsimultaneous="default",
upwiz_mv_cta_dismissed=0,
},
GroupPermissions={
["*"]={
upwizcampaigns=false,
},
user={
upwizcampaigns=false,
},
autoconfirmed={
upwizcampaigns=false,
},
bot={
upwizcampaigns=false,
},
sysop={
upwizcampaigns=true,
["mass-upload"]=true,
},
upwizcampeditors={
upwizcampaigns=true,
},
},
AddGroups={
sysop={
"upwizcampeditors",},
},
RemoveGroups={
sysop={
"upwizcampeditors",},
},
AvailableRights={
"upwizcampaigns","mass-upload",},
callback="MediaWiki\\Extension\\MediaUploader\\Hooks\\RegistrationHooks::registerExtension",
ContentHandlers={
Campaign={
class="MediaWiki\\Extension\\MediaUploader\\Campaign\\CampaignContentHandler",
services={
"MediaUploaderConfigFactory",},
},
},
SpecialPages={
MediaUploader={
class="MediaWiki\\Extension\\MediaUploader\\Special\\MediaUploader",
services={
"MediaUploaderRawConfig","MediaUploaderConfigFactory","MediaUploaderCampaignStore","UserOptionsLookup",},
},
Campaigns={
class="MediaWiki\\Extension\\MediaUploader\\Special\\Campaigns",
services={
"MediaUploaderCampaignStore","MediaUploaderConfigFactory",},
},
},
APIListModules={
allcampaigns={
class="MediaWiki\\Extension\\MediaUploader\\Api\\QueryAllCampaigns",
services={
"MediaUploaderCampaignStore","MediaUploaderCampaignStats",},
},
},
ExtensionMessagesFiles={
MediaUploaderAlias="MediaUploader.alias.php",
MediaUploaderNamespaces="MediaUploader.namespaces.php",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
QUnitTestModule={
localBasePath="tests/qunit",
remoteExtPath="MediaUploader/tests/qunit",
scripts={
"controller/uw.controller.Deed.test.js","controller/uw.controller.Details.test.js","controller/uw.controller.Step.test.js","controller/uw.controller.Thanks.test.js","controller/uw.controller.Tutorial.test.js","controller/uw.controller.Upload.test.js","transports/mw.FormDataTransport.test.js","uw.ConcurrentQueue.test.js","mw.UploadWizardUpload.test.js","mw.UploadWizardLicenseInput.test.js","uw.TitleDetailsWidget.test.js","mw.fileApi.test.js",},
dependencies={
"ext.uploadWizard",},
},
Hooks={
PageDelete="campaign",
PageDeleteComplete="campaign",
ChangeTagsAllowedAdd="registration",
ChangeTagsListActive="registration",
CodeEditorGetPageLanguage="\\MediaWiki\\Extension\\MediaUploader\\Hooks\\CampaignContentHooks::onCodeEditorGetPageLanguage",
ContentModelCanBeUsedOn="campaignContent",
EditFilterMergedContent="campaign",
["EditPage::showEditForm:initial"]="campaignContent",
GetPreferences="general",
LinksUpdateComplete="campaign",
ListDefinedTags="registration",
LoadExtensionSchemaUpdates="registration",
MovePageIsValidMove="campaign",
PageSaveComplete="campaign",
UserGetReservedNames="registration",
},
HookHandlers={
campaign={
class="MediaWiki\\Extension\\MediaUploader\\Hooks\\CampaignHooks",
services={
"MediaUploaderCampaignStore","MediaUploaderConfigCacheInvalidator",},
},
campaignContent={
class="MediaWiki\\Extension\\MediaUploader\\Hooks\\CampaignContentHooks",
factory="MediaWiki\\Extension\\MediaUploader\\Hooks\\CampaignContentHooks::newFromGlobalState",
},
general={
class="MediaWiki\\Extension\\MediaUploader\\Hooks\\Hooks",
services={
"MediaUploaderRawConfig",},
},
registration={
class="MediaWiki\\Extension\\MediaUploader\\Hooks\\RegistrationHooks",
},
},
JobClasses={
globalConfigAnchorUpdate="MediaWiki\\Extension\\MediaUploader\\Config\\GlobalConfigAnchorUpdateJob",
},
namespaces={
{
id=460,
constant="NS_CAMPAIGN",
name="Campaign",
defaultcontentmodel="Campaign",
protection="upwizcampaigns",
capitallinkoverride=false,
},{
id=461,
constant="NS_CAMPAIGN_TALK",
name="Campaign_talk",
capitallinkoverride=false,
},},
config={
MediaUploaderConfig={
value={
},
},
UploadWizardConfig={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MediaUploader",
},
MediaWikiChat={
name="MediaWikiChat",
version="2.24.0",
author={
"Adam Carter/UltrasonicNXT",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:MediaWikiChat",
descriptionmsg="chat-desc",
type="specialpage",
requires={
MediaWiki="&gt;=1.39",
},
config={
ChatKicks={
value=true,
description="Enable the 'kicking' of other users by chatmods and sysops (and any and all other user groups with the 'modchat' user right)?",
},
ChatRichMessages={
value=true,
description="Parse chat messages through the WikiText parser?",
},
ChatSidebarPortlet={
value=true,
description="Show the online users module in the sidebar?",
},
ChatOnlineTimeout={
value=6000,
description="The length of time it takes for a user to be considered offline. Smaller values give faster response times for users to be considered offline, but increase the chance of users being reported offline when they aren't (there may just be a temporary blip in their connection to the server). Set in 100ths of a second. The default value of 6000 translates to 1 minute.",
},
ChatFloodMessages={
value=3,
description="Stops users sending more than X messages per Y seconds. Defaults to 3 messages per 5 seconds.",
},
ChatFloodSeconds={
value=5,
description="Stops users sending more than X messages per Y seconds. Defaults to 3 messages per 5 seconds.",
},
ChatLinkUsernames={
value=false,
description="Link users' user names to their user pages in the main chat window?",
},
ChatMeCommand={
value=false,
description="Enable \"/me &lt;text&gt;\" command that prints a status-type message?",
},
ChatUseStyleAttribute={
value=true,
description="Allow the use of the style attribute on HTML elements?",
},
ChatMaxMessageLength={
value=1000,
description="Maximum individual chat message length in characters.",
},
},
SpecialPages={
Chat={
class="SpecialChat",
services={
"UserOptionsLookup","UserGroupManager",},
},
},
ExtensionMessagesFiles={
MediaWikiChatAlias="MediaWikiChat.alias.php",
},
APIModules={
chatgetnew="ChatGetNewAPI",
chatsend="ChatSendAPI",
chatsendpm="ChatSendPMAPI",
chatkick="ChatKickAPI",
},
LogTypes={
"chat","privatechat",},
ActionFilteredLogs={
chat={
kick={
"kick",},
},
},
LogActionsHandlers={
["chat/*"]="LogFormatter",
["privatechat/*"]="LogFormatter",
},
FilterLogTypes={
chat=true,
privatechat=true,
},
LogRestrictions={
privatechat="viewpmlog",
},
Hooks={
UserGroupsChanged="MediaWikiChatHooks::onUserGroupsChanged",
LoadExtensionSchemaUpdates="MediaWikiChatHooks::onLoadExtensionSchemaUpdates",
SkinAfterPortlet="MediaWikiChatHooks::onSkinAfterPortlet",
SkinBuildSidebar="MediaWikiChatHooks::onSkinBuildSidebar",
GetPreferences="MediaWikiChatHooks::onGetPreferences",
},
AvailableRights={
"chat","modchat","viewpmlog",},
AddGroups={
sysop={
"chatmod","blockedfromchat",},
chatmod={
"blockedfromchat",},
},
RemoveGroups={
sysop={
"chatmod","blockedfromchat",},
chatmod={
"blockedfromchat",},
},
GroupPermissions={
chatmod={
chat=true,
modchat=true,
},
user={
chat=true,
},
sysop={
chat=true,
modchat=true,
},
},
RevokePermissions={
blockedfromchat={
chat=true,
},
},
DefaultUserOptions={
["chat-ping-mention"]=1,
["chat-ping-pm"]=1,
["chat-notify-mention"]=1,
["chat-notify-pm"]=1,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MediaWikiChat",
},
MediaWikiFarm={
name="MediaWikiFarm",
version="2.0.0-dev",
author={
"[https://www.mediawiki.org/wiki/User:Seb35 Seb35]",},
descriptionmsg="mediawikifarm-desc",
["license-name"]="GPL-3.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:MediaWikiFarm",
type="other",
requires={
MediaWiki="&gt;= 1.27.0",
},
config={
MediaWikiFarmConfigDir="/etc/mediawiki",
MediaWikiFarmCodeDir=nil,
MediaWikiFarmCacheDir="/tmp/mw-cache",
MediaWikiFarmSyslog="mediawikifarm",
},
Hooks={
UnitTestsList="MediaWikiFarmHooks::onUnitTestsList",
},
repository="https://phabricator.wikimedia.org/diffusion/EMWF",
composer="mediawiki-extensions/media-wiki-farm",
},
MenuEditor={
name="MenuEditor",
version="3.0.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://en.wiki.bluespice.com/wiki/Reference:MenuEditor",
descriptionmsg="menueditor-desc",
requires={
MediaWiki="&gt;= 1.39.0",
},
attributes={
MenuEditor={
Menus={
["mediawiki-sidebar"]={
class="MediaWiki\\Extension\\MenuEditor\\Menu\\MediawikiSidebar",
services={
"MWStakeWikitextParserFactory",},
},
footerlinks={
class="MediaWiki\\Extension\\MenuEditor\\Menu\\FooterLinks",
services={
"MWStakeWikitextParserFactory",},
},
},
Nodes={
["menu-raw-text"]={
classname="ext.menueditor.ui.data.node.TextNode",
module="ext.menuEditor.node",
},
["menu-keyword"]={
classname="ext.menueditor.ui.data.node.KeywordNode",
module="ext.menuEditor.node",
},
["menu-wiki-link"]={
classname="ext.menueditor.ui.data.node.WikilinkNode",
module="ext.menuEditor.node",
},
["menu-two-fold-link-spec"]={
classname="ext.menueditor.ui.data.node.TwoFoldLinkSpecNode",
module="ext.menuEditor.node",
},
["mediawiki-sidebar-keyword"]={
classname="ext.menueditor.ui.data.node.MediawikiSidebarKeywordNode",
module="ext.menuEditor.node.keyword",
},
},
ToolbarTools={
newItem={
classname="ext.menueditor.ui.tools.NewItemTool",
group={
name="new",
priority=1,
},
module="ext.menuEditor.tools",
},
cancel={
classname="ext.menueditor.ui.tools.CancelTool",
group={
name="page-actions",
priority=10,
},
module="ext.menuEditor.tools",
},
save={
classname="ext.menueditor.ui.tools.SaveTool",
group={
name="page-actions",
priority=10,
classes={
"toolbar-actions",},
},
module="ext.menuEditor.tools",
},
},
},
},
callback="MediaWiki\\Extension\\MenuEditor\\Extension::onRegistration",
ExtensionMessagesFiles={
MenuEditorAlias="languages/MenuEditor.i18n.alias.php",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
Hooks={
BeforeInitialize="initializeMenus",
["SkinTemplateNavigation::Universal"]="editActions",
MediaWikiPerformAction="editActions",
BlueSpiceDiscoveryTemplateDataProviderAfterInit="discovery-skin",
BeforePageDisplay="AddFooterLinksBanner",
},
HookHandlers={
initializeMenus={
class="MediaWiki\\Extension\\MenuEditor\\Hook\\InitializeMenus",
services={
"MenuEditorMenuFactory",},
},
editActions={
class="MediaWiki\\Extension\\MenuEditor\\Hook\\EditActionHookHandler",
services={
"HookContainer","MenuEditorMenuFactory","PermissionManager",},
},
["discovery-skin"]={
class="MediaWiki\\Extension\\MenuEditor\\Hook\\DiscoverySkin",
services={
"MenuEditorMenuFactory",},
},
AddFooterLinksBanner={
class="MediaWiki\\Extension\\MenuEditor\\HookHandler\\AddFooterLinksBanner",
services={
"TitleFactory",},
},
},
Actions={
menueditsource="EditAction",
},
config={
MenuEditorMediawikiSidebarAllowedKeywords={
value={
"SEARCH","TOOLBOX","LANGUAGES",},
},
MenuEditorToolbarOffset={
value=0,
public=true,
},
},
RestRoutes={
{
method="GET",
path="/menueditor/parse/{pagename}",
class="MediaWiki\\Extension\\MenuEditor\\Api\\ParseHandler",
services={
"TitleFactory","MenuEditorMenuFactory","MWStakeWikitextParserFactory","RevisionStore",},
},{
method="POST",
path="/menueditor/{pagename}",
class="MediaWiki\\Extension\\MenuEditor\\Api\\SaveContentHandler",
services={
"TitleFactory","MenuEditorMenuFactory","MWStakeWikitextParserFactory",},
},},
composer="mediawiki/menu-editor",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MenuEditor",
},
MergeArticles={
name="MergeArticles",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]","Dejan Savuljesku &lt;savuljesku@hallowelt.com&gt;",},
["license-name"]="GPL-3.0-only",
version="3.0.0-alpha",
descriptionmsg="mergearticles-extension-desc",
requires={
MediaWiki="&gt;= 1.39.0",
},
ExtensionMessagesFiles={
MergeArticlesAlias="languages/MergeArticles.alias.php",
},
attributes={
BlueSpiceFoundation={
PermissionRegistry={
["merge-articles"]={
type="global",
roles={
"admin",},
},
},
},
MergeArticles={
PageFilters={
term="\\MergeArticles\\PageFilter\\Term::factory",
},
},
},
SpecialPages={
MergeArticles="\\MergeArticles\\Special\\MergeArticles",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
APIModules={
["ma-merge-page-new"]={
class="\\MergeArticles\\Api\\MergeNewPage",
services={
"HookContainer",},
},
["ma-merge-page-existing"]={
class="\\MergeArticles\\Api\\MergeExistingPage",
services={
"HookContainer",},
},
["ma-set-related-titles"]="\\MergeArticles\\Api\\SetRelatedTitle",
["ma-discard-draft"]={
class="\\MergeArticles\\Api\\DiscardDraft",
services={
"HookContainer",},
},
},
AvailableRights={
"merge-articles",},
GroupPermissions={
["*"]={
["merge-articles"]=false,
},
user={
["merge-articles"]=false,
},
sysop={
["merge-articles"]=true,
},
},
namespaces={
{
id=1004,
constant="NS_DRAFT",
name="Draft",
},{
id=1005,
constant="NS_DRAFT_TALK",
name="Draft_talk",
},},
config={
MADraftFilePrefix={
value="Draft_",
},
MAUseLineByLineDiff={
value=false,
},
MAEnableBetaFeatures={
value=false,
},
},
composer="mediawiki/merge-articles",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MergeArticles",
},
MessageCommons={
name="MessageCommons",
version="2.0",
author={
"Daniel Friesen","Nathaniel Herman","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:MessageCommons",
descriptionmsg="messagecommons-desc",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
callback="MessageCommons::onRegistration",
config={
MessageCommonsDatabase="mwmsgwiki",
MessageCommonsLang="en",
MessageCommonsIsCommons=false,
},
Hooks={
MessagesPreLoad="MessageCommons::onMessagesPreLoad",
["EditPage::showEditForm:initial"]="MessageCommons::onEditPage",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MessageCommons",
},
MetaMaster={
name="MetaMaster",
version="0.2.0",
author={
"Ike Hecht",},
url="https://www.mediawiki.org/wiki/Extension:MetaMaster",
descriptionmsg="metamaster-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
},
config={
MetaMasterEnableFoo={
value=true,
},
},
ExtensionMessagesFiles={
MetaMasterMagic="MetaMaster.i18n.magic.php",
},
HookHandlers={
MetaMaster={
class="MediaWiki\\Extension\\MetaMaster\\MetaMasterHooks",
},
},
Hooks={
ParserFirstCallInit={
handler="MetaMaster",
},
OutputPageParserOutput={
handler="MetaMaster",
},
},
composer="metamaster/meta-master-extension",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MetaMaster",
},
Metadata={
name="Metadata",
version="4.0",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",
url="https://www.mediawiki.org/wiki/Extension:Metadata",
descriptionmsg="metadata-desc",
["license-name"]="GPL-3.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
MetadataMagic="Metadata.i18n.php",
},
RestRoutes={
{
path="/v1/page/{title}/props",
method="GET",
class="MetadataAPI",
},},
Hooks={
ParserFirstCallInit="Metadata::onParserFirstCallInit",
OutputPageParserOutput="Metadata::onOutputPageParserOutput",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Metadata",
},
MetricsPlatform={
name="MetricsPlatform",
author={
"Data Products &lt;https://www.mediawiki.org/wiki/Data_Platform_Engineering/Data_Products&gt;","Sam Smith","Santiago Faci","Clare Ming",},
url="https://www.mediawiki.org/wiki/Extension:MetricsPlatform",
descriptionmsg="metricsplatform-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.43.0",
extensions={
EventStreamConfig="*",
},
},
config={
MetricsPlatformEnable={
description="Enable Metrics Platform.",
value=false,
},
MetricsPlatformInstrumentConfiguratorBaseUrl={
value="http://localhost:80",
},
},
HookHandlers={
main={
class="MediaWiki\\Extension\\MetricsPlatform\\Hooks",
services={
"MetricsPlatform.InstrumentConfigs",},
},
},
Hooks={
GetStreamConfigs="main",
},
ServiceWiringFiles={
"ServiceWiring.php",},
composer="mediawiki/metrics-platform",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MetricsPlatform",
},
MiniInvite={
name="MiniInvite",
version="2.5.0",
author={
"Aaron Wright","David Pean","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:MiniInvite",
descriptionmsg="invite-desc",
type="specialpage",
callback="MiniInviteHooks::registerExtension",
requires={
MediaWiki="&gt;= 1.35.3",
},
config={
SendNewArticleToFriends=false,
},
SpecialPages={
EmailNewArticle="EmailNewArticle",
InviteEmail="InviteEmail",
},
ExtensionMessagesFiles={
MiniInviteAliases="includes/MiniInvite.alias.php",
},
Hooks={
LoadExtensionSchemaUpdates="MiniInviteHooks::onLoadExtensionSchemaUpdates",
OutputPageBeforeHTML={
"MiniInviteHooks::inviteRedirect","MiniInviteHooks::displayInviteLinks",},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MiniInvite",
},
Minimum_Name_Length={
name="Minimum Name Length",
version="3.0.0",
author={
"Rob Church","Karsten Hoffmeyer","Florian Schmidt","...",},
requires={
MediaWiki="&gt;= 1.27.0",
},
url="https://www.mediawiki.org/wiki/Extension:Minimum_Name_Length",
descriptionmsg="minimumnamelength-desc",
["license-name"]="BSD-2-Clause",
type="other",
AuthManagerAutoConfig={
preauth={
MinimumNameLengthPreAuthenticationProvider={
class="MinimumNameLengthPreAuthenticationProvider",
},
},
},
config={
MinimumUsernameLength=10,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MinimumNameLength",
},
MintyDocs={
name="MintyDocs",
namemsg="mintydocs-extensionname",
version="1.2.1",
author="Yaron Koren",
url="https://www.mediawiki.org/wiki/Extension:MintyDocs",
descriptionmsg="mintydocs-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
namespaces={
{
id=620,
constant="MD_NS_DRAFT",
name="Draft",
conditional=true,
},{
id=621,
constant="MD_NS_DRAFT_TALK",
name="Draft_talk",
conditional=true,
},},
callback="MintyDocsHooks::registerExtension",
requires={
MediaWiki="&gt;= 1.37",
},
AvailableRights={
"mintydocs-administer","mintydocs-edit","mintydocs-editlive",},
GroupPermissions={
sysop={
["mintydocs-administer"]=true,
},
},
ExtensionMessagesFiles={
MintyDocsMagic="MintyDocs.i18n.magic.php",
MintyDocsNS="MintyDocsNamespaces.php",
MintyDocsAlias="MintyDocs.i18n.alias.php",
},
JobClasses={
MDCreatePage="MintyDocsCreatePageJob",
MDDeletePage="MintyDocsDeletePageJob",
},
APIModules={
mintydocspublish="MintyDocsPublishAPI",
},
SpecialPages={
MintyDocsPublish="MintyDocsPublish",
MintyDocsCreateDraft="MintyDocsCreateDraft",
MintyDocsCopy="MintyDocsCopy",
MintyDocsDelete="MintyDocsDelete",
},
Actions={
mdpublish="MintyDocsPublishAction",
},
Hooks={
ParserFirstCallInit="MintyDocsHooks::registerParserFunctions",
CanonicalNamespaces="MintyDocsHooks::registerNamespaces",
getUserPermissionsErrors="MintyDocsHooks::checkPermissions",
OutputPageBeforeHTML={
"MintyDocsHooks::addTextToPage","MintyDocsHooks::showNoticeForDraftPage",},
["EditPage::showEditForm:initial"]="MintyDocsHooks::addLivePageEditWarning",
SkinBuildSidebar="MintyDocsHooks::addTextToSidebar",
PageSaveComplete="MintyDocsHooks::setSearchText",
MakeGlobalVariablesScript="MintyDocsHooks::setGlobalJSVariables",
MagicWordwgVariableIDs="MintyDocsHooks::declareVarIDs",
ParserGetVariableValueSwitch="MintyDocsHooks::assignAValue",
["SkinTemplateNavigation::Universal"]="MintyDocsPublishAction::displayTab",
SearchableNamespaces="MintyDocsHooks::makeDraftsNonSearchable",
["PageForms::FormPrinterSetup"]="MintyDocsHooks::registerPageFormsInputs",
},
config={
MintyDocsDisplayFooterElementsInSidebar=false,
MintyDocsShowBreadcrumbs=true,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MintyDocs",
},
MissedPages={
name="MissedPages",
namemsg="missedpages-extensionname",
version="0.1.0",
author={
"Sam Wilson",},
requires={
MediaWiki="&gt;= 1.36.0",
},
url="https://www.mediawiki.org/wiki/Extension:MissedPages",
descriptionmsg="missedpages-desc",
["license-name"]="MIT",
type="extension",
ExtensionMessagesFiles={
MissedPagesAlias="MissedPages.i18n.alias.php",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\MissedPages\\Hooks",
},
},
Hooks={
LoadExtensionSchemaUpdates="main",
ShowMissingArticle="main",
},
SpecialPages={
MissedPages="MediaWiki\\Extension\\MissedPages\\SpecialMissedPages",
},
composer="samwilson/missedpages",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MissedPages",
},
MobileApp={
name="MobileApp",
author={
"Yuvi Panda",},
url="https://www.mediawiki.org/wiki/Extension:MobileApp",
descriptionmsg="mobileapp-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
Hooks={
ListDefinedTags="main",
ChangeTagsListActive="main",
RecentChange_save="main",
["AbuseFilter-generateUserVars"]="main",
["AbuseFilter-builder"]="MediaWiki\\Extension\\MobileApp\\Hooks::onAbuseFilterBuilder",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\MobileApp\\Hooks",
services={
"ConnectionProvider",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MobileApp",
},
MobileDetect={
name="MobileDetect",
version="2.4",
author={
"Matthew Tran","[https://mediawiki.org/wiki/User:Sophivorus Sophivorus]","Universal Omega",},
url="https://www.mediawiki.org/wiki/Extension:MobileDetect",
descriptionmsg="mobiledetect-desc",
callback="MediaWiki\\Extension\\MobileDetect\\Hooks::onRegistration",
["license-name"]="GPL-3.0-only",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
MobileDetectMagic="MobileDetect.i18n.magic.php",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\MobileDetect\\Hooks",
},
},
Hooks={
BeforePageDisplay={
handler="main",
},
ParserFirstCallInit={
handler="main",
},
},
composer="mediawiki/mobile-detect",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MobileDetect",
},
MobileFrontend={
name="MobileFrontend",
version="2.4.1",
author={
"Patrick Reilly","Max Semenik","Jon Robson","Arthur Richards","Brion Vibber","Juliusz Gonera","Ryan Kaldari","Florian Schmidt","Rob Moen","Sam Smith",},
url="https://www.mediawiki.org/wiki/Extension:MobileFrontend",
descriptionmsg="mobile-frontend-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
},
ConfigRegistry={
mobilefrontend="GlobalVarConfig::newInstance",
},
SpecialPages={
MobileDiff={
class="SpecialMobileDiff",
services={
},
},
History={
class="SpecialMobileHistory",
services={
},
},
MobileOptions="SpecialMobileOptions",
MobileLanguages="SpecialMobileLanguages",
Uploads="SpecialUploads",
},
APIModules={
["webapp-manifest"]="MobileFrontend\\Api\\ApiWebappManifest",
},
ExtensionMessagesFiles={
MobileFrontendAlias="MobileFrontend.alias.php",
},
RawHtmlMessages={
"mobile-frontend-categories-add-heading","mobile-frontend-categories-add-wait","mobile-frontend-categories-heading","mobile-frontend-changeslist-nocomment","mobile-frontend-copyright","mobile-frontend-editor-editing-page","mobile-frontend-editor-previewing-page","mobile-frontend-editor-summary","mobile-frontend-editor-summary-request","mobile-frontend-editor-wait",},
Hooks={
APIGetAllowedParams="ApiParse",
APIQuerySiteInfoGeneralInfo="MobileFrontendHooks",
AuthChangeFormFields="MobileFrontendHooks",
RequestContextCreateSkin="MobileFrontendHooks",
BeforeDisplayNoArticleText="MobileFrontendHooks",
OutputPageBeforeHTML="MobileFrontendHooks",
OutputPageBodyAttributes="MobileFrontendHooks",
ResourceLoaderSiteStylesModulePages="MobileFrontendHooks",
ResourceLoaderSiteModulePages="MobileFrontendHooks",
SkinAfterBottomScripts="MobileFrontendHooks",
SkinAddFooterLinks="MobileFrontendHooks",
BeforePageRedirect="MobileFrontendHooks",
MediaWikiPerformAction="MobileFrontendHooks",
GetCacheVaryCookies="MobileFrontendHooks",
SpecialPage_initList="MobileFrontendHooks",
ListDefinedTags={
"MobileFrontendHooks","Amc",},
ChangeTagsListActive={
"MobileFrontendHooks","Amc",},
RecentChange_save={
"MobileFrontendHooks","Amc",},
["AbuseFilter-generateUserVars"]="MobileFrontendHooks::onAbuseFilterGenerateUserVars",
["AbuseFilter-builder"]="MobileFrontendHooks::onAbuseFilterBuilder",
SpecialPageBeforeExecute="MobileFrontendHooks",
PostLoginRedirect="MobileFrontendHooks",
BeforePageDisplay="MobileFrontendHooks",
GetPreferences={
"MobileFrontendHooks","Amc",},
CentralAuthLoginRedirectData="MobileFrontendHooks::onCentralAuthLoginRedirectData",
CentralAuthSilentLoginRedirect="MobileFrontendHooks::onCentralAuthSilentLoginRedirect",
CustomEditor="MobileFrontendEditorHooks",
OutputPageParserOutput="MobileFrontendHooks",
ArticleParserOptions="MobileFrontendHooks",
["HTMLFileCache::useFileCache"]="MobileFrontendHooks",
LoginFormValidErrorMessages="MobileFrontendHooks",
AfterBuildFeedLinks="MobileFrontendHooks",
MakeGlobalVariablesScript={
"MobileFrontendHooks","MobileFrontendEditorHooks",},
TitleSquidURLs="MobileFrontendHooks",
UserGetDefaultOptions={
"MobileFrontendHooks","Amc",},
ManualLogEntryBeforePublish={
"Amc","MobileFrontendHooks",},
},
HookHandlers={
MobileFrontendHooks={
class="MobileFrontendHooks",
optional_services={
"GadgetsRepo",},
},
MobileFrontendEditorHooks={
class="MobileFrontendEditorHooks",
},
Amc={
class="MobileFrontend\\Amc\\Hooks",
services={
"UserFactory",},
},
ApiParse={
class="MobileFrontend\\Api\\ApiParseExtender",
},
},
DeprecatedHooks={
GetMobileUrl={
deprecatedVersion="1.42",
component="MobileFrontend",
},
},
config={
MFCustomSiteModules={
value=false,
},
MFEnableFontChanger={
value={
base=true,
beta=true,
},
},
MFEnableMobilePreferences={
value=false,
},
MFUseDesktopSpecialEditWatchlistPage={
value={
base=false,
beta=false,
amc=true,
},
},
MFScriptPath={
description="Reroute search queries to a different host",
value="",
},
MFEnableXAnalyticsLogging={
value=false,
},
MFDefaultEditor={
description="Default editor when there is no user preference set (mobile-editor). One of 'source', 'visual', or 'preference' (inherit desktop editor preference).",
value="preference",
},
MFFallbackEditor={
description="When MFDefaultEditor is set to 'preference' and no desktop preference is set, use this editor. Set to 'source' or 'visual'.",
value="visual",
},
MFEnableVEWikitextEditor={
description="Eanble VisualEditor's wikitext editor as a replacement for MobileFrontend's source editor.",
value=false,
},
MFEnableJSConsoleRecruitment={
value=false,
},
MFMobileFormatterOptions={
value={
excludeNamespaces={
10,-1,},
maxImages=1000,
maxHeadings=4000,
headings={
"h1","h2","h3","h4","h5","h6",},
},
},
MFMobileHeader={
value="X-Subdomain",
},
MFRemovableClasses={
description="Selectors for elements to be removed from the HTML in content namespaces (defined in wgContentNamespaces) to save bandwidth.",
value={
beta={
},
base={
".navbox",".vertical-navbox",".nomobile",},
},
},
MFShowFirstParagraphBeforeInfobox={
value={
base=true,
beta=true,
},
},
MFNamespacesWithLeadParagraphs={
value={
0,},
},
MFLazyLoadImages={
value={
base=true,
beta=true,
},
},
MFLazyLoadSkipSmallImages={
value=false,
},
MFSpecialPageTaglines={
value={
},
},
MFSearchAPIParams={
value={
ppprop="displaytitle",
},
},
MFQueryPropModules={
value={
"pageprops",},
},
MFSearchGenerator={
value={
name="prefixsearch",
prefix="ps",
},
},
MFMinCachedPageSize={
value=65536,
},
MFAutodetectMobileView={
value=true,
},
MFVaryOnUA={
value=false,
},
MFShowMobileViewToTablets={
value=true,
},
MobileUrlTemplate={
value="",
},
MobileUrlCallback={
value=nil,
},
MobileFrontendFormatCookieExpiry={
value=nil,
},
MFNoindexPages={
value=true,
},
MFStopRedirectCookieHost={
value=nil,
},
MFEnableBeta={
value=false,
},
MFBetaFeedbackLink={
value=false,
},
DefaultMobileSkin={
value="minerva",
},
MFNamespacesWithoutCollapsibleSections={
value={
6,14,-1,-2,},
},
MFCollapseSectionsByDefault={
value=true,
},
MFUseWikibase={
value=false,
},
MFEnableWikidataDescriptions={
value={
base=false,
beta=true,
},
},
MFDisplayWikibaseDescriptions={
value={
search=false,
watchlist=false,
tagline=false,
},
},
MFRSSFeedLink={
value=false,
},
MFEnableManifest={
value=true,
},
MFManifestThemeColor={
value="#eaecf0",
},
MFManifestBackgroundColor={
value="#fff",
},
MFLogWrappedInfoboxes={
value=true,
},
MFSiteStylesRenderBlocking={
value=false,
},
MFWatchlistEditCountThreshold={
value=10,
},
MFAdvancedMobileContributions={
value=true,
},
MFAmcOutreach={
value=false,
},
MFAmcOutreachMinEditCount={
value=100,
},
MFTrackBlockNotices={
value=false,
},
MFStopMobileRedirectCookieSecureValue={
value=true,
},
MFEditNoticesConflictingGadgetName={
value="EditNoticesOnMobile",
description="Internal name of the 'edit notices on mobile' gadget, which conflicts with showEditNotices in EditorOverlay. showEditNotices will not run when the user has this gadget enabled.",
},
},
DefaultUserOptions={
["mobile-editor"]="",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MobileFrontend",
},
["MobileFrontend/ContentProvider"]={
name="MobileFrontendContentProvider",
version="1.0.0",
author={
"Jon Robson",},
url="https://www.mediawiki.org/wiki/Extension:MobileFrontend/ContentProvider",
descriptionmsg="mobile-frontend-content-provider-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.37.0",
extensions={
MobileFrontend="&gt;= 2.4.0",
},
},
ConfigRegistry={
MobileFrontendContentProvider="GlobalVarConfig::newInstance",
},
Hooks={
MobileFrontendContentProvider="MobileFrontendContentProviders\\Hooks::onMobileFrontendContentProvider",
OutputPageBeforeHTML="MobileFrontendContentProviders\\Hooks::onOutputPageBeforeHTML",
},
config={
MFContentProviderTryLocalContentFirst={
value=true,
},
MFContentProviderClass={
value="MobileFrontendContentProviders\\MwApiContentProvider",
},
MFMwApiContentProviderBaseUri={
value="https://en.wikipedia.org/w/api.php",
},
MFMwApiContentProviderFixArticlePath={
value=false,
},
MFContentProviderScriptPath={
value="",
},
MFParsoidContentProviderBaseUri={
value="https://en.wikipedia.org/api/rest_v1",
},
MFContentProviderEnabled={
value=true,
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MobileFrontendContentProvider",
},
Monstranto={
name="Monstranto",
version="0.1",
author={
"Brian Wolff",},
url="https://www.mediawiki.org/wiki/Extension:Monstranto",
descriptionmsg="monstranto-desc",
requires={
MediaWiki="&gt;= 1.36",
extensions={
Scribunto="*",
},
},
["license-name"]="GPL-2.0-or-later",
type="other",
Hooks={
ScribuntoExternalLibraries="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Monstranto\\Hooks",
},
},
APIModules={
monstrantobootstrap={
class="MediaWiki\\Extension\\Monstranto\\Api\\Bootstrap",
},
},
ServiceWiringFiles={
"ServiceWiring.php",},
config={
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Monstranto",
},
MontserratFont={
name="MontserratFont",
version="1",
author={
"James Hare",},
url="https://www.mediawiki.org/wiki/Extension:MontserratFont",
descriptionmsg="montserratfont-desc",
type="other",
["license-name"]="GPL-2.0-or-later AND OFL-1.1",
requires={
MediaWiki="&gt;= 1.29",
},
Hooks={
BeforePageDisplay="MontserratFontHooks::onBeforePageDisplay",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MontserratFont",
},
Mpdf={
name="Mpdf",
version="1.1",
author="[https://www.mediawiki.org/wiki/User:Pastakhov Pavel Astakhov]",
url="https://www.mediawiki.org/wiki/Extension:Mpdf",
descriptionmsg="mpdf-desc",
["license-name"]="GPL-2.0+",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
MpdfMagic="Mpdf.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="MpdfHooks::onParserFirstCallInit",
["SkinTemplateNavigation::Universal"]="MpdfHooks::onSkinTemplateNavigationUniversal",
},
Actions={
mpdf="MpdfAction",
},
config={
MpdfTab=false,
MpdfToolboxLink=false,
MpdfSimpleOutput=false,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Mpdf",
},
MsCalendar={
name="MsCalendar",
version="3.0",
author={
"[mailto:wiki@ratin.de Martin Schwindl]","[mailto:wiki@keyler-consult.de Martin Keyler]","[https://www.mediawiki.org/wiki/User:Sophivorus Felipe Schenone]","[https://www.mediawiki.org/wiki/User:Fraifrai Frédéric Souchon]","[https://www.mediawiki.org/wiki/User:BeneBane Patrick Dudics]",},
url="https://www.mediawiki.org/wiki/Extension:MsCalendar",
descriptionmsg="msc-desc",
["license-name"]="GPL-3.0-only",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
},
APIModules={
mscalendargetmonth="ApiMsCalendarGetMonth",
mscalendarsavenew="ApiMsCalendarSaveNew",
mscalendarupdate="ApiMsCalendarUpdate",
mscalendarremove="ApiMsCalendarRemove",
},
Hooks={
ParserFirstCallInit="MsCalendar::setHook",
LoadExtensionSchemaUpdates="MsCalendar::updateDatabase",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MsCalendar",
},
MsCatSelect={
name="MsCatSelect",
version="7.2",
author={
"[mailto:wiki@ratin.de Martin Schwindl]","[mailto:wiki@keyler-consult.de Martin Keyler]","[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",},
url="https://www.mediawiki.org/wiki/Extension:MsCatSelect",
descriptionmsg="mscs-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
callback="MsCatSelect::onRegistration",
Hooks={
["EditPage::showEditForm:initial"]={
"MsCatSelect::init","MsCatSelect::showHook",},
["EditPage::attemptSave"]="MsCatSelect::saveHook",
},
config={
MSCS_MainCategories={
value={
},
},
MSCS_UseNiceDropdown={
value=true,
},
MSCS_WarnNoCategories={
value=true,
},
MSCS_WarnNoCategoriesException={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MsCatSelect",
},
MsInsert={
name="MsInsert",
version="4.0",
author={
"[mailto:wiki@ratin.de Martin Schwindl]","[mailto:wiki@keyler-consult.de Martin Keyler]","[https://www.mediawiki.org/wiki/User:Sophivorus Felipe Schenone]",},
url="https://www.mediawiki.org/wiki/Extension:MsInsert",
descriptionmsg="msi-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
Hooks={
ResourceLoaderGetConfigVars="MsInsert::onResourceLoaderGetConfigVars",
["EditPage::showEditForm:initial"]="MsInsert::onShowEditFormInitial",
},
config={
Templates={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MsInsert",
},
MsLinks={
name="MsLinks",
version="6.0",
author={
"[mailto:wiki@ratin.de Martin Schwindl]","[mailto:wiki@keyler-consult.de Martin Keyler]","[https://www.mediawiki.org/wiki/User:Sophivorus Felipe Schenone]",},
url="https://www.mediawiki.org/wiki/Extension:MsLinks",
descriptionmsg="msl-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
},
ExtensionMessagesFiles={
MsLinksMagic="MsLinks.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="MsLinks::onParserFirstCallInit",
["EditPage::showEditForm:initial"]="MsLinks::onShowEditFormInitial",
},
config={
MSL_FileTypes={
value={
no="no_icon.png",
jpg="image_icon.png",
gif="image_icon.png",
bmp="image_icon.png",
png="image_icon.png",
tiff="image_icon.png",
tif="image_icon.png",
ai="image_ai_icon.png",
psd="image_ps_icon.png",
pdf="pdf_icon.png",
pps="pps_icon.png",
ppt="pps_icon.png",
pptx="pps_icon.png",
xls="xls_icon.png",
xlsx="xls_icon.png",
doc="doc_icon.png",
docx="doc_icon.png",
dot="doc_icon.png",
dotx="doc_icon.png",
rtf="doc_icon.png",
txt="txt_icon.png",
html="code_icon.png",
php="code_icon.png",
exe="exe_icon.gif",
asc="txt_icon.png",
dwg="dwg_icon.gif",
zip="zip_icon.png",
mov="movie_icon.png",
mpeg="movie_icon.png",
mpg="movie_icon.png",
wmv="movie_icon.png",
avi="movie_icon.png",
mp4="movie_icon.png",
flv="movie_flash_icon.png",
wma="music_icon.png",
mp3="music_icon.png",
wav="music_icon.png",
mid="music_icon.png",
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MsLinks",
},
MsUpload={
name="MsUpload",
version="13.5",
author={
"[mailto:wiki@ratin.de Martin Schwindl]","[mailto:wiki@keyler-consult.de Martin Keyler]","[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",},
url="https://www.mediawiki.org/wiki/Extension:MsUpload",
descriptionmsg="msu-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.41.0",
},
Hooks={
["EditPage::showEditForm:initial"]="MsUpload\\Hooks::onEditPageShowEditFormInitial",
},
config={
MSU_useDragDrop={
value=true,
},
MSU_showAutoCat={
value=true,
},
MSU_checkAutoCat={
value=true,
},
MSU_useMsLinks={
value=false,
},
MSU_confirmReplace={
value=true,
},
MSU_imgParams={
value="400px",
},
MSU_uploadsize={
value="100mb",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MsUpload",
},
MsWikiEditor={
name="MsWikiEditor",
version="3.2",
author={
"[mailto:wiki@ratin.de Martin Schwindl]","[mailto:wiki@keyler-consult.de Martin Keyler]","[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",},
url="https://www.mediawiki.org/wiki/Extension:MsWikiEditor",
descriptionmsg="mswe-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
["EditPage::showEditForm:initial"]="MsWikiEditor::init",
},
config={
MSWE_add={
},
MSWE_remove={
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MsWikiEditor",
},
MultiBoilerplate={
name="MultiBoilerplate",
version="2.2.0",
author={
"Robert Leverington","Al Maghi","Dror S. [FFS] ([http://www.kolzchut.org.il Kol-Zchut])","Jhf2442",},
url="https://www.mediawiki.org/wiki/Extension:MultiBoilerplate",
descriptionmsg="multiboilerplate-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
SpecialPages={
Boilerplates="MediaWiki\\Extension\\MultiBoilerplate\\SpecialBoilerplates",
},
ExtensionMessagesFiles={
MultiBoilerplateAlias="MultiBoilerplate.alias.php",
},
Hooks={
["EditPage::showEditForm:initial"]="MediaWiki\\Extension\\MultiBoilerplate\\Hooks::onEditPageShowEditFormInitial",
},
config={
MultiBoilerplateOptions={
value=nil,
},
MultiBoilerplateOverwrite={
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MultiBoilerplate",
},
MultiLanguageManager={
name="MultiLanguageManager",
version="1.29",
author={
"Robert Vogel &lt;vogel@hallowelt.com&gt;","Patric Wirth &lt;wirth@hallowelt.com&gt;","Marc Despland",},
url="https://www.mediawiki.org/wiki/Extension:MultiLanguageManager",
descriptionmsg="mlm-desc",
["license-name"]="GPL-2.0-only",
type="other",
requires={
MediaWiki="&gt;= 1.35.3",
},
ExtensionMessagesFiles={
MultiLanguageManagerAliases="MultiLanguageManager.alias.php",
},
ConfigRegistry={
mlm="MultiLanguageManager\\Setup::makeConfig",
},
ExtensionFunctions={
"MultiLanguageManager\\Setup::init",},
AvailableRights={
"language",},
GroupPermissions={
["*"]={
language=false,
},
user={
language=true,
},
sysop={
language=true,
},
},
Hooks={
LoadExtensionSchemaUpdates="MultiLanguageManager\\Setup::onLoadExtensionSchemaUpdates",
BeforePageDisplay="MultiLanguageManager\\Setup::onBeforePageDisplay",
["SkinTemplateNavigation::Universal"]="MultiLanguageManager\\Setup::onSkinTemplateNavigation_Universal",
ArticleDelete="MultiLanguageManager\\Setup::onArticleDelete",
SkinBuildSidebar="MultiLanguageManager\\Setup::onSkinBuildSidebar",
UserGetLanguageObject="MultiLanguageManager\\Setup::onUserGetLanguageObject",
},
SpecialPages={
MultiLanguageManager="MultiLanguageManager\\Specials\\MultiLanguageManager",
},
APIModules={
["mlm-tasks"]="MultiLanguageManager\\Api\\Tasks",
},
config_prefix="mg",
config={
AvailableLanguages={
value={
"en","cn","fr","it","nl","de",},
},
Permission={
value="language",
},
LanguageTableName={
value="page_language",
},
TranslationTableName={
value="page_translation",
},
SpecialPageName={
value="MultiLanguageManager",
},
},
composer="mediawiki/multi-language-manager",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MultiLanguageManager",
},
MultiMail={
name="MultiMail",
author={
"Mainframe98",},
url="https://www.mediawiki.org/wiki/Extension:MultiMail",
descriptionmsg="multimail-desc",
namemsg="multimail-extensionname",
["license-name"]="MIT",
type="specialpage",
requires={
MediaWiki="&gt;=1.42.0",
},
ExtensionMessagesFiles={
MultiMailAlias="MultiMail.alias.php",
},
ServiceWiringFiles={
"src/ServiceWiring.php",},
SpecialPages={
EmailAddresses={
class="MediaWiki\\Extension\\MultiMail\\Specials\\SpecialEmailAddresses",
services={
"AuthManager","MultiMail.MailManager","CentralIdLookup",},
},
},
APIModules={
multimail={
class="MediaWiki\\Extension\\MultiMail\\Api\\MultiMailModule",
services={
"MultiMail.MailManager","AuthManager",},
},
},
HookHandlers={
email={
class="MediaWiki\\Extension\\MultiMail\\Hook\\EmailHandler",
services={
"MultiMail.MailManager",},
},
setup={
class="MediaWiki\\Extension\\MultiMail\\Hook\\SetupHandler",
},
},
Hooks={
ApiQueryTokensRegisterTypes="setup",
LoadExtensionSchemaUpdates="setup",
LoginFormValidErrorMessages="setup",
ConfirmEmailComplete="email",
PrefsEmailAudit="email",
},
GroupPermissions={
["*"]={
multimail=true,
},
},
AvailableRights={
"multimail",},
DatabaseVirtualDomains={
"virtual-multimail",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MultiMail",
},
MultimediaViewer={
name="MultimediaViewer",
author={
"Gergő Tisza","Gilles Dubuc","Mark Holmquist","Simon Legner","Ed Sanders","Pau Giner","James D. Forrester","Željko Filipin","fomafix","Volker E","Kunal Mehta","Umherirrender","Timo Tijhof","Aaron Arcos","Thiemo Kreuz","Matthias Mullie","Jon Robson","Derk-Jan Hartman","Chris McMahon","Bartosz Dziewoński",},
url="https://www.mediawiki.org/wiki/Extension:MultimediaViewer",
descriptionmsg="multimediaviewer-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
},
QUnitTestModule={
localBasePath="",
remoteExtPath="MultimediaViewer",
packageFiles={
"tests/qunit/mmv/index.js","tests/qunit/mmv/mmv.bootstrap.test.js","tests/qunit/mmv/mmv.test.js","tests/qunit/mmv/mmv.lightboxinterface.test.js","tests/qunit/mmv/mmv.lightboximage.test.js","tests/qunit/mmv/mmv.ThumbnailWidthCalculator.test.js","tests/qunit/mmv/mmv.EmbedFileFormatter.test.js","tests/qunit/mmv/mmv.Config.test.js","tests/qunit/mmv/mmv.HtmlUtils.test.js","tests/qunit/mmv/logging/mmv.logging.ViewLogger.test.js","tests/qunit/mmv/model/mmv.model.test.js","tests/qunit/mmv/model/mmv.model.TaskQueue.test.js","tests/qunit/mmv/model/mmv.model.License.test.js","tests/qunit/mmv/model/mmv.model.Image.test.js","tests/qunit/mmv/provider/mmv.provider.Api.test.js","tests/qunit/mmv/provider/mmv.provider.ImageInfo.test.js","tests/qunit/mmv/provider/mmv.provider.ThumbnailInfo.test.js","tests/qunit/mmv/provider/mmv.provider.GuessedThumbnailInfo.test.js","tests/qunit/mmv/provider/mmv.provider.Image.test.js","tests/qunit/mmv/ui/mmv.ui.test.js","tests/qunit/mmv/ui/mmv.ui.canvas.test.js","tests/qunit/mmv/ui/mmv.ui.canvasButtons.test.js","tests/qunit/mmv/ui/mmv.ui.description.test.js","tests/qunit/mmv/ui/mmv.ui.download.pane.test.js","tests/qunit/mmv/ui/mmv.ui.metadataPanel.test.js","tests/qunit/mmv/ui/mmv.ui.metadataPanelScroller.test.js","tests/qunit/mmv/ui/mmv.ui.progressBar.test.js","tests/qunit/mmv/ui/mmv.ui.permission.test.js","tests/qunit/mmv/ui/mmv.ui.stripeButtons.test.js","tests/qunit/mmv/ui/mmv.ui.reuse.dialog.test.js","tests/qunit/mmv/ui/mmv.ui.reuse.embed.test.js","tests/qunit/mmv/ui/mmv.ui.reuse.share.test.js","tests/qunit/mmv/ui/mmv.ui.reuse.utils.test.js","tests/qunit/mmv/ui/mmv.ui.truncatableTextField.test.js","tests/qunit/mmv/ui/mmv.ui.viewingOptions.test.js","tests/qunit/mmv/mmv.testhelpers.js",},
dependencies={
"mmv.head","mmv.bootstrap","mmv","mmv.ui.reuse",},
},
Hooks={
UserGetDefaultOptions="main",
GetPreferences="main",
BeforePageDisplay="main",
CategoryPageView="main",
ResourceLoaderGetConfigVars="main",
MakeGlobalVariablesScript="main",
ThumbnailBeforeProduceHTML="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\MultimediaViewer\\Hooks",
services={
"MainConfig","SpecialPageFactory","UserOptionsLookup",},
optional_services={
"MobileFrontend.Context",},
},
},
config={
MediaViewerExtensions={
value={
djvu="default",
jpg="default",
jpeg="default",
gif="default",
svg="default",
png="default",
tiff="default",
tif="default",
webp="default",
},
},
MediaViewerUseThumbnailGuessing={
description="When this is enabled, MediaViewer will try to guess image URLs instead of making an imageinfo API to get them from the server. This speeds up image loading, but will result in 404s when $wgGenerateThumbnailOnParse (so the thumbnails are only generated as a result of the API request). MediaViewer will catch such 404 errors and fall back to the API request, but depending on how the site is set up, the 404 might get cached, or redirected, causing the image load to fail. The safe way to use URL guessing is with a 404 handler: https://www.mediawiki.org/wiki/Manual:Thumb.php#404_Handler",
value=false,
},
MediaViewerEnableByDefault={
description="If true, Media Viewer will be turned on by default.",
value=true,
},
MediaViewerEnableByDefaultForAnonymous={
description="Overrides $wgMediaViewerEnableByDefault for anonymous users. If set to null, will fall back to value of $wgMediaViewerEnableByDefault",
value=nil,
},
MediaViewerImageQueryParameter={
description="If set, adds a query parameter to image requests made by Media Viewer",
value=false,
},
MediaViewerRecordVirtualViewBeaconURI={
description="If set, records a virtual view via the provided beacon URI.",
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MultimediaViewer",
},
MyVariables={
name="MyVariables",
version="4.5",
author={
"[https://www.mediawiki.org/wiki/User:Nad Aran Dunkley]","[https://www.mediawiki.org/wiki/User:Pastakhov Pavel Astakhov]","[https://www.mediawiki.org/wiki/User:Vedmaka]",},
url="https://www.mediawiki.org/wiki/Extension:MyVariables",
descriptionmsg="myvariables-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
MyVariablesMagic="MyVariables.i18n.magic.php",
},
Hooks={
GetMagicVariableIDs="declareVarIds",
ParserGetVariableValueSwitch="assignAValue",
ParserFirstCallInit="registerFunctions",
ParserOptionsRegister="registerFunctions",
},
HookHandlers={
declareVarIds={
class="MediaWiki\\Extension\\MyVariables\\Hooks\\DeclareVarIds",
},
assignAValue={
class="MediaWiki\\Extension\\MyVariables\\Hooks\\AssignAValue",
},
registerFunctions={
class="MediaWiki\\Extension\\MyVariables\\Hooks\\RegisterFunctions",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/MyVariables",
},
NCBITaxonomyLookup={
name="NCBITaxonomyLookup",
author="WikiTeq",
url="https://www.mediawiki.org/wiki/Extension:NCBITaxonomyLookup",
descriptionmsg="ncbitaxonomylookup-desc",
["license-name"]="GPL-2.0-or-later",
version="1.1",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
},
config={
NCBITaxonomyLookupApiURL="https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi",
NCBITaxonomyLookupCacheTTL=1296000,
NCBITaxonomyApiTimeoutFallbackToCache=true,
NCBITaxonomyApiTimeout=30,
NCBITaxonomyApiKey=false,
},
Hooks={
ParserFirstCallInit={
"NCBITaxonomyLookup\\NCBITaxonomyLookupHooks::onParserFirstCallInit",},
},
ExtensionMessagesFiles={
NCBITaxonomyLookupMagic="NCBITaxonomyLookup.i18n.magic.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NCBITaxonomyLookup",
},
NSFileRepo={
name="NSFileRepo",
version="2.0",
author={
"Jack D. Pond","[https://www.hallowelt.com Hallo Welt! GmbH]","Robert Vogel",},
url="https://www.mediawiki.org/wiki/Extension:NSFileRepo",
descriptionmsg="nsfilerepo-desc",
["license-name"]="GPL-2.0-or-later",
type="media",
requires={
MediaWiki="&gt;= 1.39.0",
},
callback="NSFileRepoHooks::register",
attributes={
EnhancedUpload={
UploadFormPluginModules={
"ext.nsfilerepo.namespace.upload",},
},
DrawioEditor={
InspectorPluginModules={
"ext.nsfilerepo.namespace.drawioeditor",},
},
CognitiveProcessDesigner={
InspectorPluginModules={
"ext.nsfilerepo.namespace.cpd",},
},
EnhancedStandardUIs={
FilelistPluginModules={
"ext.nsfilerepo.filelist",},
},
},
DefaultUserOptions={
["filelist-show-namespace_text"]=1,
},
HookHandlers={
["permission-checker"]={
class="MediaWiki\\Extension\\NSFileRepo\\HookHandler\\PermissionChecker",
services={
"MainConfig","PermissionManager",},
},
addNamespaces={
class="MediaWiki\\Extension\\NSFileRepo\\HookHandler\\AddNamespaceToFilelist",
services={
"MainConfig",},
},
userpreference={
class="MediaWiki\\Extension\\NSFileRepo\\HookHandler\\AddUserPreference",
},
},
Hooks={
["UploadForm:BeforeProcessing"]="NSFileRepo\\Hooks\\UploadFormBeforeProcessing::handle",
getUserPermissionsErrors="permission-checker",
BeforePageDisplay="NSFileRepoHooks::onBeforePageDisplay",
UploadFormInitDescriptor="NSFileRepo\\Hooks\\UploadFormInitDescriptor::handle",
ImgAuthBeforeCheckFileExists="NSFileRepoHooks::onImgAuthBeforeCheckFileExists",
ImgAuthBeforeStream="NSFileRepoHooks::onImgAuthBeforeStream",
UploadVerification="NSFileRepoHooks::onUploadVerification",
["SkinTemplateNavigation::Universal"]="NSFileRepo\\Hooks\\SkinTemplateNavigationUniversal::handle",
MWStakeCommonWebAPIsQueryStoreResult="addNamespaces",
GetPreferences="userpreference",
},
QUnitTestModule={
localBasePath="",
remoteExtPath="NSFileRepo",
scripts={
"tests/qunit/ext.nsfilerepo.upload.paramsProcessor.test.js",},
dependencies={
"ext.nsfilerepo.upload.paramsProcessor",},
},
config_prefix="egNSFileRepo",
config={
NamespaceThreshold={
value=100,
description="This should probably be 3000 as recommended by MediaWiki. But for backwards compatibility we'll stick with this default",
},
NamespaceBlacklist={
value={
102,104,106,108,274,828,},
description="There are some widespread extensions that create namespaces. E.g. SemanticMediaWiki, PageForms, Widgets, Scribunto, ...",
},
SkipTalk={
value=true,
},
ForceDownload={
value={
"js","css","xml","html","htm","xhtml",},
},
},
composer="mediawiki/n-s-file-repo",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NSFileRepo",
},
NamespaceHTML={
name="NamespaceHTML",
version="0.5",
author="Ike Hecht for [http://www.wikiworks.com/ WikiWorks]",
url="https://www.mediawiki.org/wiki/Extension:NamespaceHTML",
descriptionmsg="namespacehtml-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
},
Hooks={
ParserFirstCallInit="NamespaceHTML::addNamespaceHTML",
},
config_prefix="wg",
config={
RawHtmlNamespaces={
description="List of namespaces where raw HTML should be allowed",
value={
},
},
},
ConfigRegistry={
NamespaceHTML="GlobalVarConfig::newInstance",
},
callback="NamespaceHTML::onRegistration",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NamespaceHTML",
},
NamespacePaths={
name="NamespacePaths",
author={
"[http://danf.ca/mw/ Daniel Friesen]","[http://redwerks.org/mediawiki/ Redwerks]",},
version="1.2.0",
url="https://www.mediawiki.org/wiki/Extension:NamespacePaths",
descriptionmsg="namespacepaths-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
WebRequestPathInfoRouter="NamespacePaths::onWebRequestPathInfoRouter",
["GetLocalURL::Article"]="NamespacePaths::onGetLocalURLArticle",
},
config={
NamespacePaths={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NamespacePaths",
},
NamespacePopups={
name="NamespacePopups",
version="0.0.4",
author={
"Victor Porton",},
url="https://www.mediawiki.org/wiki/Extension:NamespacePopups",
["license-name"]="GPL-2.0-or-later",
descriptionmsg="namespacepopups-desc",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
extensions={
PagePopups="&gt;= 0.0.1",
},
},
Hooks={
HtmlPageLinkRendererEnd="NamespacePopupsHooks::onHtmlPageLinkRendererEnd",
ParserAfterTidy="NamespacePopupsHooks::onParserAfterTidy",
},
config={
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NamespacePopups",
},
NamespaceRelations={
name="NamespaceRelations",
version="0.3.0",
author={
"Pavel Selitskas",},
url="https://www.mediawiki.org/wiki/Extension:NamespaceRelations",
descriptionmsg="nsrels-desc",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
Hooks={
["SkinTemplateNavigation::Universal"]="NamespaceRelationsHooks::onSkinTemplateNavigationUniversal",
},
config={
NamespaceRelations={
description="Define extra namespaces and how they relate to the basic set of namespaces.",
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NamespaceRelations",
},
NamespaceSidebar={
name="NamespaceSidebar",
version="0.1.0",
author={
"Ike Hecht",},
url="https://www.mediawiki.org/wiki/Extension:NamespaceSidebar",
descriptionmsg="namespacesidebar-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
SkinBuildSidebar="NamespaceSidebarHooks::onSkinBuildSidebar",
},
composer="mediawiki/namespace-sidebar",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NamespaceSidebar",
},
NativeSvgHandler={
name="NativeSvgHandler",
version="1.5.0",
author={
"Povilas Kanapickas","Ilaï Deutel",},
url="https://www.mediawiki.org/wiki/Extension:NativeSvgHandler",
namemsg="nativesvghandler-extensionname",
descriptionmsg="nativesvghandler-desc",
["license-name"]="GPL-3.0",
type="media",
requires={
MediaWiki="&gt;= 1.35.0",
},
MediaHandlers={
["image/svg+xml"]="NativeSvgHandler",
},
composer="mediawiki/native-svg-handler",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NativeSvgHandler",
},
NaturalLanguageList={
name="Natural Language List",
version="2.7.0",
author={
"Svip","Happy-melon","Conrad Irwin",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:NaturalLanguageList",
descriptionmsg="nll-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
ExtensionMessagesFiles={
NaturalLanguageListMagic="NaturalLanguageList.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="NaturalLanguageList::onParserFirstCallInit",
},
config={
NllMaxListLength={
description="The maximum allowed length of a list.",
value=1000,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NaturalLanguageList",
},
NavigationTiming={
name="NavigationTiming",
author={
"Patrick Reilly","Ori Livneh","Asher Feldman","Timo Tijhof","Ian Marlier","Gilles Dubuc","Peter Hedenskog","Larissa Gaulia","Barakat Ajadi",},
url="https://www.mediawiki.org/wiki/Extension:NavigationTiming",
descriptionmsg="navigationtiming-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
extensions={
EventLogging="*",
},
},
QUnitTestModule={
localBasePath="",
remoteExtPath="NavigationTiming",
scripts={
"tests/ext.navigationTiming.test.js",},
dependencies={
"ext.navigationTiming",},
},
Hooks={
BeforePageDisplay="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\NavigationTiming\\Hooks",
},
},
attributes={
EventLogging={
Schemas={
CpuBenchmark="/analytics/legacy/cpubenchmark/1.1.0",
FirstInputDelay="/analytics/legacy/firstinputdelay/1.0.0",
NavigationTiming="/analytics/legacy/navigationtiming/1.6.0",
SaveTiming="/analytics/legacy/savetiming/1.0.0",
},
},
},
config={
NavigationTimingSamplingFactor={
value=false,
},
NavigationTimingCpuBenchmarkSamplingFactor={
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NavigationTiming",
},
["Naylor AMS SSO Integration"]={
name="Naylor AMS SSO Integration",
version="0.1.0",
author={
"[https://github.com/mywikis MyWikis LLC]",},
url="https://github.com/mywikis/NaylorAMS",
descriptionmsg="naylorams-desc",
["license-name"]="GPL-2.0",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
extensions={
PluggableAuth="&gt;= 5.1",
},
},
ExtensionFunctions={
"MediaWiki\\Extension\\NaylorAMS\\Setup::init",},
config={
PluggableAuth_Class={
value="MediaWiki\\Extension\\NaylorAMS\\NaylorAMS",
},
PluggableAuth_ButtonLabelMessage={
value="naylorams-loginbtn-text",
},
NaylorAMS_UsernameDenyList={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NaylorAMS",
},
NearbyPages={
name="NearbyPages",
version="1.0.0",
url="https://www.mediawiki.org/wiki/Extension:NearbyPages",
descriptionmsg="nearby-pages-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42",
},
config={
NearbyRange={
value=10000,
},
NearbyRandomButton={
value=true,
},
NearbyPagesNamespaces={
value={
0,},
},
NearbyPagesUrl={
value="https://en.wikipedia.org/w/api.php",
},
NearbyPagesWikidataCompatibility={
value=false,
},
},
SpecialPages={
Nearby="NearbyPages\\SpecialNearby",
},
ExtensionMessagesFiles={
NearbyAliases="NearbyPages.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NearbyPages",
},
NetworkAuth={
name="NetworkAuth",
version="2.2",
author={
"Tim Laqua","Olaf Lenz",},
url="https://www.mediawiki.org/wiki/Extension:NetworkAuth",
descriptionmsg="networkauth-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
UserLoadAfterLoadFromSession="NetworkAuthHooks::onUserLoadAfterLoadFromSession",
["SkinTemplateNavigation::Universal"]="NetworkAuthHooks::onSkinTemplateNavigation__Universal",
},
config={
NetworkAuthUsers={
value={
},
},
NetworkAuthSpecialUsers={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NetworkAuth",
},
NetworkSession={
name="NetworkSession",
version="0.1.0",
author={
"Erik Bernhardson",},
url="https://www.mediawiki.org/wiki/Extension:NetworkSession",
descriptionmsg="networksession-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42",
},
SessionProviders={
["MediaWiki\\Extension\\NetworkSession\\NetworkSessionProvider"]={
class="MediaWiki\\Extension\\NetworkSession\\NetworkSessionProvider",
args={
{
priority=100,
},},
},
},
config={
NetworkSessionProviderUsers={
description="List of assoc arrays containing 'username', 'ip_ranges' and 'token'  keys configuring the list of users",
value={
},
},
NetworkSessionProviderAllowedUserRights={
description="List of strings to limit user rights to. This does not grant any rights the user doesn't already have. Defaults to null, meaning no limits",
value=nil,
},
NetworkSessionProviderCanAlwaysAutocreate={
description="When true the provider will bypass account creation authorization. Defaults to false, meaning standard anonymous user account creation limits apply.",
value=false,
},
},
composer="mediawiki/networksession",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NetworkSession",
},
NewSignupPage={
name="New Signup Page",
version="1.3.0",
author={
"Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:NewSignupPage",
descriptionmsg="newsignuppage-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.3",
},
config={
RegisterTrack={
value=false,
path=false,
description="Should we track information about referred users into the user_register_track DB table?",
public=false,
},
AutoAddFriendOnInvite={
value=false,
path=false,
description="When a user signs up via a referral link, add the referring user automatically as the new user's friend (and vice-versa)?",
public=false,
},
NewSignupPageToSURL={
value="http://www.shoutwiki.com/wiki/Terms_of_use",
path=false,
description="Canonical URL to the site's terms of use page",
public=false,
},
NewSignupPagePPURL={
value="http://www.shoutwiki.com/wiki/Privacy_policy",
path=false,
description="Canonical URL to the site's privacy policy page",
public=false,
},
},
AuthManagerAutoConfig={
secondaryauth={
NewSignupPageSecondaryAuthenticationProvider={
class="NewSignupPageSecondaryAuthenticationProvider",
},
},
},
Hooks={
BeforePageDisplay="NewSignupPage::onBeforePageDisplay",
LoadExtensionSchemaUpdates="NewSignupPage::onLoadExtensionSchemaUpdates",
},
AvailableRights={
"bypasstoscheck",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NewSignupPage",
},
NewUserActions={
name="NewUserActions",
author={
"Sébastien Santoro aka Dereckson",},
url="https://www.mediawiki.org/wiki/Extension:NewUserActions",
descriptionmsg="newuseractions-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
Hooks={
AddNewAccount="MediaWiki\\Extension\\NewUserActions\\Hooks::onAddNewAccount",
LocalUserCreated="MediaWiki\\Extension\\NewUserActions\\Hooks::onLocalUserCreated",
UserGetReservedNames="MediaWiki\\Extension\\NewUserActions\\Hooks::onUserGetReservedNames",
},
config={
NewUserActionsSuppressRC=false,
NewUserActionsMinorEdit=true,
NewUserActionsOnAutoCreate=false,
NewUserActionsCreateUserPage=false,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NewUserActions",
},
NewUserMessage={
name="NewUserMessage",
version="3.6.0, 2016-10-31",
author={
"[https://www.organicdesign.co.nz/User:Nad Aran Dunkley]","Siebrand Mazeland",},
url="https://www.mediawiki.org/wiki/Extension:NewUserMessage",
descriptionmsg="newusermessage-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
JobClasses={
newUserMessageJob="MediaWiki\\Extension\\NewUserMessage\\NewUserMessageJob",
},
Hooks={
LocalUserCreated="main",
UserGetReservedNames="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\NewUserMessage\\NewUserMessage",
},
},
config={
NewUserSuppressRC={
value=false,
},
NewUserMinorEdit={
value=true,
},
NewUserMessageOnAutoCreate={
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NewUserMessage",
},
New_User_Email_Notification={
name="New User Email Notification",
version="1.7.0",
author={
"Universal Omega","Rob Church",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:New_User_Email_Notification",
descriptionmsg="newusernotif-desc",
type="other",
callback="NewUserNotifier::onRegistration",
requires={
MediaWiki="&gt;= 1.35.0",
},
config={
NewUserNotifTargets={
value={
1,},
description="Array containing the usernames or user IDs of those who should receive a notification email. Email will not be sent unless the recipient's email address has been validated, where this is required in the site configuration.",
},
NewUserNotifEmailTargets={
value={
},
description="Array containing email addresses to which a notification should also be sent.",
},
},
Hooks={
LocalUserCreated="NewUserNotifier::onLocalUserCreated",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NewUserNotif",
},
Newest_Pages={
name="Newest Pages",
version="1.22",
author={
"Rob Church",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:Newest_Pages",
descriptionmsg="newestpages-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.40",
},
config={
NewestPagesLimit=50,
},
SpecialPages={
NewestPages={
class="SpecialNewestPages",
services={
"DBLoadBalancerFactory",},
},
},
ExtensionMessagesFiles={
NewestPagesAlias="NewestPages.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NewestPages",
},
NewsBox={
name="NewsBox",
version="2.3",
author={
"Jack Phoenix",},
url="https://www.mediawiki.org/wiki/Extension:NewsBox",
descriptionmsg="newsbox-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
SkinBuildSidebar="NewsBox::render",
SkinAfterPortlet="NewsBox::onSkinAfterPortlet",
MonacoWidgets="NewsBox::renderForMonaco",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NewsBox",
},
NewsTicker={
name="NewsTicker",
version="1.4",
author={
"[mailto:wiki@keyler-consult.de Martin Keyler]","[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",},
url="https://www.mediawiki.org/wiki/Extension:NewsTicker",
descriptionmsg="newsticker-desc",
["license-name"]="GPL-3.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.31.0",
},
SpecialPages={
NewsTicker="SpecialNewsTicker",
},
ExtensionMessagesFiles={
NewsTickerAlias="i18n/NewsTicker.alias.php",
NewsTickerMagic="i18n/NewsTicker.magic.php",
},
GroupPermissions={
sysop={
newsticker=true,
},
},
AvailableRights={
"newsticker",},
Hooks={
BeforePageDisplay="NewsTicker::onBeforePageDisplay",
MagicWordwgVariableIDs="NewsTicker::onMagicWordwgVariableIDs",
ParserGetVariableValueSwitch="NewsTicker::onParserGetVariableValueSwitch",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NewsTicker",
},
Newsletter={
name="Newsletter",
version="1.2.1",
author={
"Siebrand Mazeland","Tina Johnson","Tony Thomas",},
url="https://www.mediawiki.org/wiki/Extension:Newsletter",
descriptionmsg="newsletter-extension-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42",
},
type="other",
AvailableRights={
"newsletter-create","newsletter-delete","newsletter-manage","newsletter-restore",},
GroupPermissions={
sysop={
["newsletter-create"]=true,
["newsletter-delete"]=true,
["newsletter-manage"]=true,
["newsletter-restore"]=true,
},
},
RateLimits={
newsletter={
user={
3,3600,},
},
["newsletter-announce"]={
user={
2,1800,},
},
},
SpecialPages={
NewsletterCreate="MediaWiki\\Extension\\Newsletter\\Specials\\SpecialNewsletterCreate",
Newsletters="MediaWiki\\Extension\\Newsletter\\Specials\\SpecialNewsletters",
Newsletter="MediaWiki\\Extension\\Newsletter\\Specials\\SpecialNewsletter",
},
APIModules={
newslettersubscribe="MediaWiki\\Extension\\Newsletter\\Api\\ApiNewsletterSubscribe",
},
LogTypes={
"newsletter",},
LogActionsHandlers={
["newsletter/*"]="MediaWiki\\Extension\\Newsletter\\Logging\\NewsletterLogFormatter",
},
ActionFilteredLogs={
newsletter={
["issue-added"]={
"issue-added",},
["newsletter-added"]={
"newsletter-added",},
["newsletter-removed"]={
"newsletter-removed",},
["publisher-added"]={
"publisher-added",},
["publisher-removed"]={
"publisher-removed",},
},
},
ExtensionMessagesFiles={
NewsletterAlias="Newsletter.alias.php",
NewsletterNamespaces="Newsletter.namespaces.php",
},
ContentHandlers={
NewsletterContent="MediaWiki\\Extension\\Newsletter\\Content\\NewsletterContentHandler",
},
DefaultUserOptions={
["echo-subscriptions-web-newsletter"]=true,
["echo-subscriptions-email-newsletter"]=true,
},
Hooks={
LoadExtensionSchemaUpdates="schema",
BeforeCreateEchoEvent="MediaWiki\\Extension\\Newsletter\\Hooks::onBeforeCreateEchoEvent",
LoginFormValidErrorMessages="main",
UserMergeAccountFields="MediaWiki\\Extension\\Newsletter\\Hooks::onUserMergeAccountFields",
CustomEditor="main",
ArticleDelete="main",
PageUndelete="main",
TitleMove="main",
ContentModelCanBeUsedOn="main",
EditFilterMergedContent="main",
["SkinTemplateNavigation::Universal"]="main",
getUserPermissionsErrors="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Newsletter\\Hooks",
},
schema={
class="MediaWiki\\Extension\\Newsletter\\SchemaHooks",
},
},
namespaces={
{
id=5500,
constant="NS_NEWSLETTER",
name="Newsletter",
defaultcontentmodel="NewsletterContent",
},{
id=5501,
constant="NS_NEWSLETTER_TALK",
name="Newsletter_talk",
},},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Newsletter",
},
NoBogusUserpages={
name="NoBogusUserpages",
version="1.1.1",
author={
"[https://www.mediawiki.org/wiki/User:Dantman Daniel Friesen]",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:NoBogusUserpages",
descriptionmsg="nobogususerpages-desc",
type="antispam",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
getUserPermissionsErrors="NoBogusUserpages::onGetUserPermissionsErrors",
},
AvailableRights={
"createbogususerpage",},
GroupPermissions={
sysop={
createbogususerpage=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NoBogusUserpages",
},
NoCat={
name="NoCat",
version="1.1",
author={
"Brian Wolff",},
url="https://www.mediawiki.org/wiki/Extension:NoCat",
descriptionmsg="nocat-desc",
type="other",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;=1.38.0",
},
ExtensionMessagesFiles={
NoCatMagic="NoCat.i18n.magic.php",
},
config={
NoCatShowCat=false,
},
Hooks={
GetDoubleUnderscoreIDs="NoCatHooks::onGetDoubleUnderscoreIDs",
ParserAfterParse="NoCatHooks::onParserAfterParse",
OutputPageParserOutput="NoCatHooks::onOutputPageParserOutput",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NoCat",
},
NoTitle={
name="NoTitle",
version="0.4.0",
author={
"Carlo Cabanilla","Tony Boyles","Kunal Mehta","...",},
url="https://www.mediawiki.org/wiki/Extension:NoTitle",
descriptionmsg="notitle-desc",
["license-name"]="GPL-3.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
ExtensionMessagesFiles={
NoTitleMagic="NoTitle.i18n.magic.php",
},
Hooks={
GetDoubleUnderscoreIDs="NoTitle::onGetDoubleUnderscoreIDs",
OutputPageParserOutput="NoTitle::onOutputPageParserOutput",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NoTitle",
},
NotebookViewer={
name="NotebookViewer",
version="0.0.1",
author={
"Yuvi Panda",},
url="https://www.mediawiki.org/wiki/Extension:NotebookViewer",
descriptionmsg="notebookviewer-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
namespaces={
{
id=486,
constant="NS_NOTEBOOK",
name="Notebook",
defaultcontentmodel="Notebook",
},},
ContentHandlers={
Notebook="NotebookContentHandler",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NotebookViewer",
},
NotesLink={
name="NotesLink",
version="2",
author={
"Unknown--","Patric Wirth",},
url="https://www.mediawiki.org/wiki/Extension:NotesLink",
descriptionmsg="noteslink-desc",
type="parserhook",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.31.0",
},
callback="\\NotesLink\\Extension::onRegistration",
ServiceWiringFiles={
"includes/ServiceWiring.php",},
config={
["_prefix"]="noteslink",
DocumentHost="",
ParserPatterns={
replica="#&lt;(?i)replica(?-i)[ &gt;]([a-zA-Z0-9]{8}:[a-zA-Z0-9]{8}).*?[&lt;&gt;]#si",
view="#&lt;(?i)view(?-i)[ &gt;]([a-zA-Z0-9]{10}:[a-zA-Z0-9]{8}-[a-zA-Z0-9]{10}:[a-zA-Z0-9]{8}).*?[&lt;&gt;]#si",
note="#&lt;(?i)note(?-i)[ &gt;]([a-zA-Z0-9]{10}:[a-zA-Z0-9]{8}-[a-zA-Z0-9]{10}:[a-zA-Z0-9]{8}).*?[&lt;&gt;]#si",
hint={
"#&lt;(?i)hint(?-i)[ &gt;].*?CN=(.*?)?[/&lt;&gt;]#si","#&lt;(?i)hint(?-i)[ &gt;](.*?)[&lt;&gt;]#si",},
rem="#&lt;(?i)rem(?-i)[ &gt;](.*?)?[&lt;&gt;]#si",
},
},
ConfigRegistry={
noteslink="\\NotesLink\\Config::newInstance",
},
Hooks={
ParserFirstCallInit="\\NotesLink\\Hook\\ParserFirstCallInit\\AddNDLParserHook::callback",
},
composer="mediawiki/notes-link",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NotesLink",
},
Nuke={
name="Nuke",
author={
"Brion Vibber","Jeroen De Dauw",},
url="https://www.mediawiki.org/wiki/Extension:Nuke",
descriptionmsg="nuke-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42",
},
type="specialpage",
ExtensionMessagesFiles={
NukeAlias="Nuke.alias.php",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Nuke\\Hooks",
},
},
Hooks={
ContributionsToolLinks="main",
},
GroupPermissions={
sysop={
nuke=true,
},
},
AvailableRights={
"nuke",},
GrantPermissions={
delete={
nuke=true,
},
},
SpecialPages={
Nuke={
class="MediaWiki\\Extension\\Nuke\\SpecialNuke",
services={
"JobQueueGroup","DBLoadBalancerFactory","PermissionManager","RepoGroup","UserFactory","UserNamePrefixSearch","UserNameUtils","NamespaceInfo","ContentLanguage",},
styles={
"mediawiki.special.special",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Nuke",
},
NukeDPL={
name="NukeDPL",
version="1.6",
author={
"[https://www.mediawiki.org/wiki/User:Nad Nad]","[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",},
url="https://www.mediawiki.org/wiki/Extension:NukeDPL",
descriptionmsg="nukedpl-desc",
type="specialpage",
["license-name"]="GPL-3.0-or-later",
requires={
MediaWiki="&gt;= 1.37.0",
},
AvailableRights={
"nukedpl",},
GroupPermissions={
sysop={
nukedpl=true,
},
},
SpecialPages={
NukeDPL="SpecialNukeDPL",
},
ExtensionMessagesFiles={
NukeDPLAliases="NukeDPL.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NukeDPL",
},
NumberFormat={
name="NumberFormat",
version="1.0",
author={
"[https://www.mediawiki.org/wiki/User:Patrick_Nagel Patrick Nagel]","[https://www.mediawiki.org/wiki/User:Pastakhov Pavel Astakhov]",},
url="https://www.mediawiki.org/wiki/Extension:NumberFormat",
descriptionmsg="numberformat_desc",
["license-name"]="LGPL-3.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
NumberFormatMagic="NumberFormat.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="NumberFormat::onParserFirstCallInit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NumberFormat",
},
NumberOfWikis={
name="Number of wikis",
version="0.5",
author={
"Jack Phoenix",},
url="https://www.mediawiki.org/wiki/Extension:NumberOfWikis",
descriptionmsg="numberofwikis-desc",
type="variable",
requires={
MediaWiki="&gt;= 1.34.0",
},
ExtensionMessagesFiles={
NumberOfWikisMagic="NumberOfWikis.i18n.magic.php",
},
Hooks={
ParserGetVariableValueSwitch="NumberOfWikis::assignValue",
MagicWordwgVariableIDs="NumberOfWikis::variableIds",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NumberOfWikis",
},
NumerAlpha={
name="NumerAlpha",
version="0.7.0",
author={
"Thierry G. Veilleux","[https://www.mediawiki.org/wiki/User:Jamesmontalvo3 James Montalvo]","Emanspeaks","...",},
url="https://www.mediawiki.org/wiki/Extension:NumerAlpha",
descriptionmsg="numeralpha-desc",
["license-name"]="Unlicense",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
ExtensionMessagesFiles={
NumerAlphaMagic="NumerAlpha.magic.php",
},
Hooks={
ParserFirstCallInit="NumerAlpha::onParserFirstCallInit",
},
composer="mediawiki/numer-alpha",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/NumerAlpha",
},
OATHAuth={
name="OATHAuth",
version="0.5.0",
author={
"Ryan Lane","Robert Vogel &lt;vogel@hallowelt.com&gt;","Dejan Savuljesku &lt;savuljesku@hallowelt.com&gt;","Taavi Väänänen",},
url="https://www.mediawiki.org/wiki/Extension:OATHAuth",
descriptionmsg="oathauth-desc",
type="other",
requires={
MediaWiki="&gt;= 1.43",
},
["license-name"]="GPL-2.0-or-later AND GPL-3.0-or-later",
attributes={
OATHAuth={
Modules={
totp="\\MediaWiki\\Extension\\OATHAuth\\Module\\TOTP::factory",
},
},
},
AuthManagerAutoConfig={
secondaryauth={
OATHSecondaryAuthenticationProvider={
class="\\MediaWiki\\Extension\\OATHAuth\\Auth\\SecondaryAuthenticationProvider",
sort=50,
},
},
},
ServiceWiringFiles={
"ServiceWiring.php",},
ExtensionMessagesFiles={
OATHAuthAlias="OATHAuth.alias.php",
},
Hooks={
AuthChangeFormFields="main",
LoadExtensionSchemaUpdates="updater",
GetPreferences="main",
getUserPermissionsErrors="main",
UserEffectiveGroups="main",
UserGetRights="main",
BeforeCreateEchoEvent="echo",
MediaWikiServices="mwservices",
},
HookHandlers={
main={
class="\\MediaWiki\\Extension\\OATHAuth\\Hook\\HookHandler",
services={
"OATHUserRepository","PermissionManager","MainConfig","UserGroupManager",},
},
updater={
class="MediaWiki\\Extension\\OATHAuth\\Hook\\UpdateTables",
},
echo={
class="MediaWiki\\Extension\\OATHAuth\\Hook\\EchoHandler",
},
mwservices={
class="MediaWiki\\Extension\\OATHAuth\\Hook\\MWServicesHandler",
},
},
config={
OATHAuthWindowRadius={
value=4,
description="Number of token windows on either side of current time to be considered valid for authentication.",
},
OATHAuthDatabase={
value=false,
description="Deprecated; configure the virtual-oathauth virtual domain instead.",
},
OATHAuthAccountPrefix={
value=false,
description="Prefix for user account shown during enrollment.",
},
OATHExclusiveRights={
value={
},
description="List of permissions that are revoked from users who do not use two-factor authentication.",
},
OATHRequiredForGroups={
value={
},
description="List of user groups that must use two-factor authentication.",
},
},
SpecialPages={
DisableOATHForUser={
class="\\MediaWiki\\Extension\\OATHAuth\\Special\\DisableOATHForUser",
services={
"OATHUserRepository","UserFactory",},
},
OATHManage={
class="\\MediaWiki\\Extension\\OATHAuth\\Special\\OATHManage",
services={
"OATHUserRepository","OATHAuthModuleRegistry",},
},
VerifyOATHForUser={
class="\\MediaWiki\\Extension\\OATHAuth\\Special\\VerifyOATHForUser",
services={
"OATHUserRepository","UserFactory",},
},
},
AvailableRights={
"oathauth-enable","oathauth-api-all","oathauth-disable-for-user","oathauth-verify-user","oathauth-view-log",},
GroupPermissions={
["*"]={
["oathauth-disable-for-user"]=false,
["oathauth-view-log"]=false,
},
user={
["oathauth-enable"]=true,
},
sysop={
["oathauth-disable-for-user"]=true,
["oathauth-verify-user"]=true,
["oathauth-view-log"]=true,
},
},
GrantPermissions={
oath={
["oathauth-api-all"]=true,
["oathauth-verify-user"]=true,
},
},
GrantPermissionGroups={
oath="authentication",
},
GrantRiskGroups={
oath="internal",
},
APIModules={
oathvalidate="\\MediaWiki\\Extension\\OATHAuth\\Api\\Module\\ApiOATHValidate",
},
APIMetaModules={
oath={
class="\\MediaWiki\\Extension\\OATHAuth\\Api\\Module\\ApiQueryOATH",
services={
"OATHUserRepository",},
},
},
RateLimits={
badoath={
["&amp;can-bypass"]=false,
user={
10,60,},
["user-global"]={
10,60,},
},
},
ReauthenticateTime={
["oathauth-enable"]=60,
},
LogTypes={
"oath",},
LogNames={
oath="oath-log-name",
},
LogHeaders={
oath="oath-log-header",
},
LogActionsHandlers={
["oath/*"]="LogFormatter",
},
LogRestrictions={
oath="oathauth-view-log",
},
ActionFilteredLogs={
oath={
verify={
"verify",},
["disable-other"]={
"disable-other",},
},
},
DatabaseVirtualDomains={
"virtual-oathauth",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/OATHAuth",
},
OAuth={
name="OAuth",
version="1.1.0",
author={
"Aaron Schulz","Chris Steipp","Brad Jorsch","Robert Vogel","Dejan Savuljesku",},
url="https://www.mediawiki.org/wiki/Extension:OAuth",
descriptionmsg="mwoauth-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
ExtensionFunctions={
"MediaWiki\\Extension\\OAuth\\Backend\\Hooks::onExtensionFunctions",},
ServiceWiringFiles={
"src/ServiceWiring.php",},
DefaultUserOptions={
["echo-subscriptions-web-oauth-owner"]=true,
["echo-subscriptions-email-oauth-owner"]=true,
["echo-subscriptions-web-oauth-admin"]=true,
["echo-subscriptions-email-oauth-admin"]=true,
},
GroupPermissions={
user={
mwoauthmanagemygrants=true,
},
},
AvailableRights={
"mwoauthproposeconsumer","mwoauthupdateownconsumer","mwoauthmanageconsumer","mwoauthsuppress","mwoauthviewsuppressed","mwoauthviewprivate","mwoauthmanagemygrants",},
SessionProviders={
["MediaWiki\\Extension\\OAuth\\SessionProvider"]={
class="MediaWiki\\Extension\\OAuth\\SessionProvider",
args={
},
},
},
SpecialPages={
OAuth={
class="MediaWiki\\Extension\\OAuth\\Frontend\\SpecialPages\\SpecialMWOAuth",
services={
"GrantsLocalization","SkinFactory",},
},
OAuthManageMyGrants={
class="MediaWiki\\Extension\\OAuth\\Frontend\\SpecialPages\\SpecialMWOAuthManageMyGrants",
services={
"GrantsInfo","GrantsLocalization",},
},
OAuthListConsumers={
class="MediaWiki\\Extension\\OAuth\\Frontend\\SpecialPages\\SpecialMWOAuthListConsumers",
services={
"GrantsLocalization",},
},
},
ExtensionMessagesFiles={
MWOAuthAliases="MWOAuth.alias.php",
},
callback="MediaWiki\\Extension\\OAuth\\Backend\\Hooks::onRegistration",
HookHandlers={
abusefilter={
class="MediaWiki\\Extension\\OAuth\\Backend\\AbuseFilterHookHandler",
},
backend={
class="MediaWiki\\Extension\\OAuth\\Backend\\Hooks",
services={
"ChangeTagDefStore","ConnectionProvider",},
},
frontend={
class="MediaWiki\\Extension\\OAuth\\Frontend\\UIHooks",
services={
"PermissionManager",},
},
setup={
class="MediaWiki\\Extension\\OAuth\\Setup",
},
schema={
class="MediaWiki\\Extension\\OAuth\\Backend\\UpdaterHooks",
},
},
Hooks={
["AbuseFilter-builder"]="abusefilter",
["AbuseFilter-computeVariable"]="abusefilter",
["AbuseFilter-generateUserVars"]="abusefilter",
ChangeTagCanCreate="backend",
MergeAccountFromTo="MediaWiki\\Extension\\OAuth\\Backend\\Hooks::onMergeAccountFromTo",
LoadExtensionSchemaUpdates="schema",
GetPreferences="frontend",
MessagesPreLoad="frontend",
SpecialPageAfterExecute="frontend",
SpecialPageBeforeFormDisplay="frontend",
BeforeCreateEchoEvent="MediaWiki\\Extension\\OAuth\\Frontend\\UIHooks::onBeforeCreateEchoEvent",
TestCanonicalRedirect="setup",
SetupAfterCache="backend",
ApiRsdServiceApis="backend",
SpecialPage_initList="frontend",
ListDefinedTags="backend",
ChangeTagsListActive="backend",
LoginFormValidErrorMessages="frontend",
},
ConfigRegistry={
mwoauth="GlobalVarConfig::newInstance",
},
config={
MWOAuthCentralWiki={
value=false,
description="Wiki ID of OAuth management wiki. On wiki farms, it makes sense to set this to a wiki that acts as a portal site, is decidated to management, or just handles login/authentication. It can, however, be set to any wiki if the farm. For single-wiki sites or farms where each wiki manages consumers separately, it should be left as false.",
},
MWOAuthSharedUserIDs={
value=false,
description="Whether shared global user IDs are stored in the oauth tables. On wiki farms with a central authentication system (with integer user IDs) that share a single OAuth management wiki, this must be set to true. If wikis have a central authentication system but have their own OAuth management, then this can be either true or false. Otherwise it should always be set to false Setting this to true requires CentralIdLookup or an MWOAuth aware authentication extension. This value should not be changed after the fact to avoid ambigious IDs. Proper user ID migration should be done before any such changes.",
},
MWOAuthSharedUserSource={
value=nil,
description="Source of shared user IDs, if enabled. If CentralIdLookup is available, this is the $providerId for CentralIdLookupFactory::getLookup(). Generally null would be what you want, to use the default provider. If that class is not available or the named provider is not found, this is\n * passed to the 'OAuthGetUserNamesFromCentralIds', 'OAuthGetLocalUserFromCentralId', 'OAuthGetCentralIdFromLocalUser', and 'OAuthGetCentralIdFromUserName' hooks. This has no effect if $wgMWOAuthSharedUserIDs is set to false.",
},
MWOAuthRequestExpirationAge={
value=2592000,
description="Seconds after which an idle consumer request is marked as \"expired\"",
},
MWOAuthSecureTokenTransfer={
value=true,
description="Require HTTPs for user transactions that might send out secret tokens",
},
MWOauthDisabledApiModules={
value={
},
description="List of API module classes to disable when OAuth is used for the request",
},
MWOAuthReadOnly={
value=false,
description="Prevent write activity to the database. When this is true, consumers cannot be added or updated, and new authorizations are prohibited. Authorization headers for existing authorizations will continue to work. Useful for migrating database tables",
},
OAuthAutoApprove={
value={
},
description="Rules for automatically approving new consumers (instead of requiring manual review by an OAuth admin before they are usable). Takes a list of conditions; meeting any one of the conditions results in auto-approval. Conditions are an associative array of &lt;rule name&gt; =&gt; &lt;rule value&gt;; the condition is met if every one of its rules is satisfied. Current the only supported rule is 'grants', which takes a list of grant names, and is satisfied when all the grants requested for the consumer are within that list.",
},
OAuthGroupsToNotify={
value={
},
description="User groups to notify about new consumers that need to be reviewed",
},
MWOAuthSessionCacheType={
value=nil,
description="The cache type used for most temporary data storage. An index into $wgObjectCaches. The default is $wgSessionCacheType.",
},
MWOAuthNonceCacheType={
value=nil,
description="The cache type used for OAuth 1.0 nonces. An index into $wgObjectCaches. The default is $wgMWOAuthSessionCacheType.",
},
OAuthSecretKey={
value=nil,
description="Random 32-bit string used to encrypt OAuth requests. Generate using \"base64_encode(random_bytes(32))\"",
},
OAuth2EnabledGrantTypes={
value={
"authorization_code","refresh_token","client_credentials",},
description="List of OAuth2 grants that client applications can use",
},
OAuth2PrivateKey={
value="",
description="Private key or a path to the private key used to sign OAuth2 JWT being transmitted",
},
OAuth2PublicKey={
value="",
description="Public key or a path to the public key used to verify OAuth2 resource requests",
},
OAuth2RequireCodeChallengeForPublicClients={
value=true,
description="Controls whether clients are required to send code challenges with OAuth2 requests. This only applies to non-confidential clients",
},
OAuth2GrantExpirationInterval={
description="Controls validity period for access tokens (stored in the cache configured in MWOAuthSessionCacheType). Does not apply to owner-only clients, whose access tokens are always non-expiring. Accepts ISO 8601 durations or can be set to \"infinity\" or false for non-expiring tokens. Defaults to one hour.",
value="PT1H",
},
OAuth2RefreshTokenTTL={
description="Controls validity period for refresh tokens (stored in the cache configured in MWOAuthSessionCacheType). Accepts ISO 8601 durations or can be set to \"infinity\" or false for non-expiring tokens. Defaults to one month.",
value="P1M",
},
},
GrantPermissions={
oauthmanageownclient={
mwoauthproposeconsumer=true,
mwoauthupdateownconsumer=true,
mwoauthmanagemygrants=true,
},
},
GrantPermissionGroups={
oauthmanageownclient="administration",
},
GrantRiskGroups={
oauthmanageownclient="internal",
},
RestRoutes={
{
path="/oauth2/authorize",
factory="MediaWiki\\Extension\\OAuth\\Rest\\Handler\\Authorize::factory",
},{
path="/oauth2/access_token",
factory="MediaWiki\\Extension\\OAuth\\Rest\\Handler\\AccessToken::factory",
method="POST",
},{
path="/oauth2/resource/{type}",
factory="MediaWiki\\Extension\\OAuth\\Rest\\Handler\\Resource::factory",
},{
path="/oauth2/client",
class="MediaWiki\\Extension\\OAuth\\Rest\\Handler\\RequestClient",
method="POST",
},{
path="/oauth2/client/{client_key}/reset_secret",
class="MediaWiki\\Extension\\OAuth\\Rest\\Handler\\ResetClientSecret",
method="POST",
},{
path="/oauth2/client",
class="MediaWiki\\Extension\\OAuth\\Rest\\Handler\\ListClients",
services={
"DBLoadBalancer",},
method="GET",
},},
composer="mediawiki/oauth",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/OAuth",
},
OAuthAuthentication={
name="OAuthAuthentication",
version="0.1.0",
author={
"Chris Steipp",},
url="https://www.mediawiki.org/wiki/Extension:OAuthAuthentication",
descriptionmsg="oauthauth-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
SpecialPages={
OAuthLogin="MediaWiki\\Extension\\OAuthAuthentication\\SpecialOAuthLogin",
},
ExtensionMessagesFiles={
SpecialOAuthLoginNoTranslate="OAuthAuthentication.notranslate-alias.php",
},
Hooks={
["SkinTemplateNavigation::Universal"]="MediaWiki\\Extension\\OAuthAuthentication\\Hooks::onSkinTemplateNavigation__Universal",
PostLoginRedirect="MediaWiki\\Extension\\OAuthAuthentication\\Hooks::onPostLoginRedirect",
LoadExtensionSchemaUpdates="MediaWiki\\Extension\\OAuthAuthentication\\Hooks::onLoadExtensionSchemaUpdates",
GetPreferences="MediaWiki\\Extension\\OAuthAuthentication\\Hooks::onGetPreferences",
AbortNewAccount="MediaWiki\\Extension\\OAuthAuthentication\\Hooks::onAbortNewAccount",
UserLoadAfterLoadFromSession="MediaWiki\\Extension\\OAuthAuthentication\\Hooks::onUserLoadAfterLoadFromSession",
},
config={
OAuthAuthenticationUrl={
description="Must be configured in LocalSettings.php! The OAuth special page on the wiki. Passing the title as a parameter is usually more reliable E.g., http://en.wikipedia.org/w/index.php?title=Special:OAuth",
value=nil,
},
OAuthAuthenticationConsumerKey={
description="Must be configured! The key that was generated for you when you registered your consumer. RSA private key isn't currently supported.",
value=nil,
},
OAuthAuthenticationConsumerSecret={
description="Must be configured! The secret that was generated for you when you registered your consumer. RSA private key isn't currently supported.",
value=nil,
},
OAuthAuthenticationCanonicalUrl={
description="Optionally set the Canonical url that the server will return, if it's different from the OAuth endpoint. OAuth will use wgCannonicalServer when generating the identity JWT, and this code will compare the iss to this value, or $wgOAuthAuthenticationUrl if this isn't set.",
value=nil,
},
OAuthAuthenticationAccountUsurpation={
description="Allow usurpation of accounts. If accounts on the OAuth provider have the same name as an already created local account, this flag decides if the user is allowed to login, or if the login will fail with an error message.",
value=false,
},
OAuthAuthenticationUsernameWhitelist={
description="Only allow creation/login of usernames that are on a whitelist. Setting this to false allows any username to register and login.",
value=false,
},
OAuthAuthenticationGroupWhitelist={
description="Only allow creation/login of users who are in groups on the remote wiki. Setting this to false allows any username to register and login.",
value=false,
},
OAuthAuthenticationAllowLocalUsers={
description="Allow local account creation. Set this to false if you only want to use remote accounts. Note: Once local accounts exist, this extension will not prevent them from logging in.",
value=true,
},
OAuthAuthenticationRemoteName={
description="A simple text string, naming the remote wiki (used for text like, \"Login on &lt;wikiname&gt;\". If this is false, a generic \"Remote OAuth Wiki\" is used, which users may not understand.",
value=false,
},
OAuthAuthenticationMaxIdentityAge={
description="Max age that a session can go without re-validating the user's identity.",
value=3600,
},
OAuthAuthenticationValidateSSL={
description="If $wgOAuthAuthenticationUrl uses https, do we validate the certificate? This should always be true in production, but sometimes useful to disable while testing.",
value=true,
},
OAuthAuthenticationCallbackUrl={
description="Callback URL (should point to Special:OAuthLogin/finish). If it is empty, the callback is assumed to be non-dynamic (and thus read from the consumer record of the target wiki). Under normal circumstances this should not be changed.",
value=nil,
},
},
repository="https://github.com/wikimedia/mediawiki-extensions-OAuthAuthentication",
composer="mediawiki/oauth-authentication",
},
OAuthRateLimiter={
name="OAuthRateLimiter",
version="0.0.1",
author={
"Clara Andrew-Wani",},
url="https://www.mediawiki.org/wiki/Extension:OAuthRateLimiter",
descriptionmsg="oauthratelimiter-desc",
["license-name"]="GPL-2.0-or-later",
type="hooks",
requires={
MediaWiki="&gt;= 1.42",
extensions={
OAuth="&gt;= 1.1.0",
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
HookHandlers={
OAuthRateLimiterHooks={
class="MediaWiki\\Extension\\OAuthRateLimiter\\Hooks",
services={
"OAuthRateLimiterTierManager",},
},
LoadExtensionSchemaUpdatesHookHandler={
class="MediaWiki\\Extension\\OAuthRateLimiter\\LoadExtensionSchemaUpdatesHookHandler",
},
},
Hooks={
OAuthClaimStoreGetClaims="OAuthRateLimiterHooks",
LoadExtensionSchemaUpdates="LoadExtensionSchemaUpdatesHookHandler",
},
config={
OAuthRateLimiterDefaultClientTier={
description="Default client tier name used when there is no tier name in database",
value="default",
},
OAuthRateLimiterTierConfig={
description="Rate limit tiers for clients",
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/OAuthRateLimiter",
},
OOJSPlus={
name="OOJSPlus",
version="3.0.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://en.wiki.bluespice.com/wiki/Reference:OOJSPlus",
descriptionmsg="oojsplus-desc",
requires={
MediaWiki="&gt;= 1.39.0",
},
callback="OOJSPlus\\Extension::callback",
APIListModules={
allgroups={
class="\\OOJSPlus\\Api\\ApiQueryAllGroups",
services={
"MWStakeCommonUtilsFactory",},
},
allcategories={
class="\\OOJSPlus\\Api\\ApiQueryAllCategories",
},
},
ExtensionMessagesFiles={
OOJSPlusAlias="OOJSPlus.alias.php",
},
composer="mediawiki/oojsplus",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/OOJSPlus",
},
OOJsUIAjaxLogin={
name="OOJsUIAjaxLogin",
version="0.0.2",
author={
"Florian Schmidt",},
url="https://www.mediawiki.org/wiki/Extension:OOJsUIAjaxLogin",
descriptionmsg="oojsuiajaxlogin-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
Hooks={
BeforePageDisplay="OOJsUIAjaxLoginHooks::onBeforePageDisplay",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/OOJsUIAjaxLogin",
},
ORES={
name="ORES",
descriptionmsg="ores-desc",
namemsg="ores-name",
["license-name"]="GPL-3.0-or-later",
author={
"Kunal Mehta","Amir Sarabadani","Ilias Sarantopoulos","Adam Roses Wight",},
url="https://www.mediawiki.org/wiki/Extension:ORES",
requires={
MediaWiki="&gt;= 1.42",
},
APIMetaModules={
ores={
class="ORES\\Hooks\\Api\\ApiQueryORES",
services={
"NamespaceInfo",},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
Hooks={
APIGetAllowedParams="api",
ApiQueryBaseBeforeQuery="api",
ApiQueryBaseAfterQuery="api",
ApiQueryBaseProcessRow="api",
ApiQueryWatchlistExtractOutputData="api",
ApiQueryWatchlistPrepareWatchedItemQueryServiceOptions="api",
WatchedItemQueryServiceExtensions="api",
BeforePageDisplay="main",
ChangesListSpecialPageStructuredFilters="changeslist",
ChangesListSpecialPageQuery="changeslist",
["ContribsPager::getQueryInfo"]="contributions",
EnhancedChangesListModifyBlockLineData="changeslist",
EnhancedChangesListModifyLineData="changeslist",
GetPreferences="preferences",
LoadExtensionSchemaUpdates="schema",
OldChangesListRecentChangesLine="changeslist",
RecentChange_save="main",
RecentChangesPurgeRows="main",
["SpecialContributions::formatRow::flags"]="contributions",
ContributionsLineEnding="contributions",
["SpecialContributions::getForm::filters"]="contributions",
},
HookHandlers={
main={
class="ORES\\Hooks\\Hooks",
},
schema={
class="ORES\\Hooks\\SchemaHooks",
},
api={
class="ORES\\Hooks\\Api\\ApiHooksHandler",
services={
"ConnectionProvider",},
},
changeslist={
class="ORES\\Hooks\\ChangesListHooksHandler",
},
contributions={
class="ORES\\Hooks\\ContributionsHooksHandler",
},
preferences={
class="ORES\\Hooks\\PreferencesHookHandler",
},
recentchanges={
class="ORES\\Hooks\\RecentChangeSaveHookHandler",
},
},
JobClasses={
ORESFetchScoreJob="ORES\\Services\\FetchScoreJob",
},
config={
OresUiEnabled={
value=true,
},
OresBaseUrl={
value="https://ores.wikimedia.org/",
},
OresUseLiftwing={
description="Whether to use LiftWing instead of ORES for fetching model predictions. With ORES deprecation this has been turned to true by default.",
value=true,
},
OresLiftWingBaseUrl={
description="The base URL of the LiftWing service. This is only used if OresUseLiftwing. We set it by default to use the API Gateway endpoint which is publicly accessible and is modified by mediawiki deployments that run within the production WMF cluster and have access to the internal endpoint.",
value="https://api.wikimedia.org/service/lw/inference/",
},
OresLiftWingAddHostHeader={
description="Whether to add the Host header to the LiftWing request. This is required for Lift Wing requests made using the internal endpoint within the WMF infrastructure.",
value=false,
},
OresLiftWingRevertRiskHostHeader={
value="revertrisk-language-agnostic.revertrisk.wikimedia.org",
description="Hostname to use with header for requests to RevertRisk endpoint.",
},
OresFrontendBaseUrl={
value=nil,
},
OresExcludeBots={
value=true,
},
OresModels={
value={
damaging={
enabled=true,
},
goodfaith={
enabled=true,
},
reverted={
enabled=false,
},
articlequality={
enabled=false,
namespaces={
0,},
cleanParent=true,
keepForever=true,
},
wp10={
enabled=false,
namespaces={
0,},
cleanParent=true,
keepForever=true,
},
draftquality={
enabled=false,
namespaces={
0,},
types={
1,},
},
revertrisklanguageagnostic={
enabled=false,
},
},
},
OresModelClasses={
value={
damaging={
["false"]=0,
["true"]=1,
},
goodfaith={
["false"]=0,
["true"]=1,
},
reverted={
["false"]=0,
["true"]=1,
},
articlequality={
Stub=0,
Start=1,
C=2,
B=3,
GA=4,
FA=5,
},
wp10={
Stub=0,
Start=1,
C=2,
B=3,
GA=4,
FA=5,
},
draftquality={
attack=0,
OK=1,
spam=2,
vandalism=3,
},
revertrisklanguageagnostic={
["false"]=0,
["true"]=1,
},
},
},
OresFiltersThresholds={
value={
damaging={
likelygood={
min=0,
max=0.699,
},
maybebad={
min=0.149,
max=1,
},
likelybad={
min=0.629,
max=1,
},
verylikelybad={
min=0.944,
max=1,
},
},
goodfaith={
likelygood={
min=0.777,
max=1,
},
maybebad={
min=0,
max=0.075,
},
likelybad={
min=0,
max=0.647,
},
verylikelybad=false,
},
articlequality={
Stub={
min=0,
max=0.166,
},
Start={
min=0.167,
max=0.333,
},
C={
min=0.334,
max=0.499,
},
B={
min=0.5,
max=0.666,
},
GA={
min=0.667,
max=0.833,
},
FA={
min=0.834,
max=1,
},
},
wp10={
Stub={
min=0,
max=0.1666,
},
Start={
min=0.1666,
max=0.3333,
},
C={
min=0.3333,
max=0.5,
},
B={
min=0.5,
max=0.6666,
},
GA={
min=0.6666,
max=0.8333,
},
FA={
min=0.8333,
max=1,
},
},
revertrisklanguageagnostic={
revertrisk={
min=0.95,
max=1,
},
},
},
description="Interval endpoints are calculated using a formula.\n\nTODO: Simplify the grammar and support lists of conditions to build a threshold.",
merge_strategy="array_plus_2d",
},
OresModelVersions={
value={
models={
damaging={
version="0.5.1",
},
goodfaith={
version="0.5.1",
},
reverted={
version="0.4.0",
},
articlequality={
version="0.9.2",
},
wp10={
version="0.9.2",
},
draftquality={
version="0.2.1",
},
revertrisklanguageagnostic={
version="3",
},
},
},
},
OresEnabledNamespaces={
value={
},
},
OresWikiId={
value=nil,
},
OresRevisionsPerBatch={
value=30,
description="Number of revisions to fetch scores for from the ORES API per request when the MediaWiki API is asked to score revisions which are not cached. Set to 0 to disable fetching (scores will still be fetched for new edits).",
},
OresCacheVersion={
value=1,
description="Increment to invalidate the cached thresholds.",
},
OresAggregatedModels={
value={
"articlequality","wp10",},
description="List of models which will have their predictions aggregated to one row.",
},
},
RecentChangesFlags={
damaging={
letter="ores-damaging-letter",
title="ores-damaging-title",
legend="ores-damaging-legend",
class="ores-damaging",
},
},
DefaultUserOptions={
["ores-damaging-flag-rc"]=false,
oresDamagingPref="soft",
rcOresDamagingPref="soft",
oresHighlight=false,
oresRCHideNonDamaging=false,
oresWatchlistHideNonDamaging=false,
},
SpecialPages={
ORESModels={
class="ORES\\Specials\\SpecialORESModels",
services={
"ORESModelLookup","ORESThresholdLookup",},
},
},
ExtensionMessagesFiles={
ORESAlias="ORES.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ORES",
},
OdbcDatabase={
name="OdbcDatabase",
version="1.2.0 alpha 2",
author="Roger Cass",
url="https://www.mediawiki.org/wiki/Extension:OdbcDatabase",
descriptionmsg="odbcdatabase-desc",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
ExtensionMessagesFiles={
OdbcDatabaseAlias="OdbcDatabase.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/OdbcDatabase",
},
OnlineStatusBar={
name="Online Status Bar",
version="1.2.0",
author={
"Petr Bena",},
url="https://www.mediawiki.org/wiki/Extension:OnlineStatusBar",
descriptionmsg="onlinestatusbar-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.3",
},
APIPropModules={
onlinestatus={
class="ApiOnlineStatus",
services={
"UserNameUtils",},
},
},
ExtensionMessagesFiles={
OnlineStatusBarMagic="OnlineStatusBar.i18n.magic.php",
},
Hooks={
LoadExtensionSchemaUpdates="OnlineStatusBarHooks::ckSchema",
UserLogout="OnlineStatusBarHooks::logout",
ArticleViewHeader="OnlineStatusBarHooks::renderBar",
UserLoginComplete="OnlineStatusBarHooks::onUserLoginComplete",
GetPreferences="OnlineStatusBarHooks::preferencesHook",
UserGetDefaultOptions="OnlineStatusBarHooks::setDefaultOptions",
MagicWordwgVariableIDs="OnlineStatusBarHooks::magicWordSet",
ParserGetVariableValueSwitch="OnlineStatusBarHooks::parserGetVariable",
},
config={
OnlineStatusBarTrackIpUsers={
value=false,
},
OnlineStatusBarAutoDelete={
value=true,
},
OnlineStatusBar_WriteTime={
value=300,
},
OnlineStatusBarDefaultOnline={
value="online",
},
OnlineStatusBarDefaultOffline={
value="offline",
},
OnlineStatusBarDefaultEnabled={
value=false,
},
OnlineStatusBar_LogoutTime={
value=3600,
},
OnlineStatusBar_AwayTime={
value=15,
},
OnlineStatusBarCacheTime={
value={
online=10,
busy=10,
away=10,
offline=60,
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/OnlineStatusBar",
},
OnlyRecentRecentChanges={
name="OnlyRecentRecentChanges",
version="1.5.0",
author="Thomas Gries",
url="https://www.mediawiki.org/wiki/Extension:OnlyRecentRecentChanges",
descriptionmsg="onlyrecentrecentchanges-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
DefaultUserOptions={
["onlyrecentrecentchanges-show-only-recent-change"]=true,
},
Hooks={
GetPreferences="OnlyRecentRecentChangesHooks::onGetPreferences",
ChangesListSpecialPageQuery="OnlyRecentRecentChangesHooks::onChangesListSpecialPageQuery",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/OnlyRecentRecentChanges",
},
OpenBadges={
name="OpenBadges",
version="0.3.0",
author={
"chococookies","Don Yu","Stephen Zhou","Lokal_Profil","...",},
url="https://www.mediawiki.org/wiki/OpenBadges",
descriptionmsg="ob-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.33.0",
},
APIModules={
openbadges="ApiOpenBadgesAssertions",
openbadgesissue="ApiOpenBadgesIssue",
},
AvailableRights={
"createbadge","issuebadge","viewbadge",},
GroupPermissions={
sysop={
issuebadge=true,
createbadge=true,
},
user={
viewbadge=true,
},
},
SpecialPages={
BadgeIssue="SpecialBadgeIssue",
BadgeCreate="SpecialBadgeCreate",
BadgeView="SpecialBadgeView",
},
ExtensionMessagesFiles={
OpenBadgesAlias="OpenBadges.i18n.alias.php",
},
Hooks={
LoadExtensionSchemaUpdates="OpenBadgesHooks::onLoadExtensionSchemaUpdates",
},
config={
OpenBadgesThumb={
value=400,
description="Default thumb width (integer).",
public=true,
},
OpenBadgesRequireEmail={
value=true,
description="Badge recipient must have an email (boolean).",
public=true,
},
OpenBadgesRequireEmailConfirmation={
value=false,
description="Badge recipient must have a confirmed email (boolean).",
public=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/OpenBadges",
},
OpenGraphMeta={
name="OpenGraphMeta",
version="0.5.6",
author={
"[http://danf.ca/mw/ Daniel Friesen]","Southparkfan","Owen Davis","Jacek Jursza",},
url="https://www.mediawiki.org/wiki/Extension:OpenGraphMeta",
descriptionmsg="opengraphmeta-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
config={
["_prefix"]="eg",
FacebookAppId=nil,
FacebookAdmins=nil,
},
ExtensionMessagesFiles={
OpenGraphMetaMagic="OpenGraphMeta.magic.php",
},
Hooks={
OutputPageParserOutput="OpenGraphMeta::onOutputPageParserOutput",
ParserFirstCallInit="OpenGraphMeta::onParserFirstCallInit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/OpenGraphMeta",
},
OpenID_Connect={
name="OpenID Connect",
version="8.0.3",
author={
"[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]",},
url="https://www.mediawiki.org/wiki/Extension:OpenID_Connect",
descriptionmsg="openidconnect-desc",
type="other",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.36.0",
extensions={
PluggableAuth="&gt;= 7.0",
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
HookHandlers={
schema={
class="MediaWiki\\Extension\\OpenIDConnect\\SchemaHooks",
},
},
Hooks={
LoadExtensionSchemaUpdates="schema",
},
config={
OpenIDConnect_MigrateUsersByEmail={
value=false,
},
OpenIDConnect_MigrateUsersByUserName={
value=false,
},
OpenIDConnect_SingleLogout={
value=false,
},
OpenIDConnect_ForceReauth={
value=false,
},
OpenIDConnect_UseRealNameAsUserName={
value=false,
},
OpenIDConnect_UseEmailNameAsUserName={
value=false,
},
OpenIDConnect_UseRandomUsernames={
value=false,
},
OpenIDConnect_EmailProcessor={
value=nil,
},
OpenIDConnect_RealNameProcessor={
value=nil,
},
OpenIDConnect_PreferredUsernameProcessor={
value=nil,
},
},
attributes={
PluggableAuth={
OpenIDConnect={
class="MediaWiki\\Extension\\OpenIDConnect\\OpenIDConnect",
services={
"MainConfig","AuthManager","OpenIDConnectClient","UserIdentityLookup","UserNameUtils","OpenIDConnectStore","TitleFactory","GlobalIdGenerator",},
},
},
},
composer="mediawiki/openidconnect",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/OpenIDConnect",
},
OpenJsCad={
name="OpenJsCad",
author="WolfgangFahl",
url="https://www.mediawiki.org/wiki/Extension:OpenJsCad",
descriptionmsg="openjscad-desc",
["license-name"]="Apache-2.0",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
ParserFirstCallInit="OpenJsCad::onParserFirstCallInit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/OpenJsCad",
},
OpenLayers={
name="OpenLayers",
namemsg="openlayers-extensionname",
version="1.0.0",
author={
"Yaron Koren","Paladox","...",},
url="https://www.mediawiki.org/wiki/Extension:OpenLayers",
descriptionmsg="openlayers-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
composer="mediawiki/open-layers",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/OpenLayers",
},
OrphanedTalkPages={
name="OrphanedTalkPages",
version="1.5.0",
author={
"Mainframe98",},
url="https://www.mediawiki.org/wiki/Extension:OrphanedTalkPages",
descriptionmsg="orphanedtalkpages-desc",
namemsg="orphanedtalkpages-extensionname",
["license-name"]="MIT",
type="specialpage",
requires={
MediaWiki="&gt;=1.41.0",
},
ExtensionMessagesFiles={
OrphanedTalkPagesAlias="OrphanedTalkPages.alias.php",
},
ConfigRegistry={
OrphanedTalkPages="MediaWiki\\Config\\GlobalVarConfig::newInstance",
},
SpecialPages={
OrphanedTalkPages={
class="MediaWiki\\Extension\\OrphanedTalkPages\\Specials\\SpecialOrphanedTalkPages",
services={
"ConfigFactory",},
},
},
HookHandlers={
main={
class="MediaWiki\\Extension\\OrphanedTalkPages\\OrphanedTalkPagesHooks",
},
},
Hooks={
wgQueryPages="main",
},
config={
OrphanedTalkPagesExemptedNamespaces={
},
OrphanedTalkPagesIgnoreUserTalk=true,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/OrphanedTalkPages",
},
OurWorldInData={
name="OurWorldInData",
namemsg="owid-extensionname",
version="1.1.0",
author={
"[https://mwusers.org Ryan Schmidt]",},
["license-name"]="GPL-3.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:OurWorldInData",
descriptionmsg="owid-desc",
type="parserhook",
HookHandlers={
main={
class="MediaWiki\\Extension\\OurWorldInData\\Hooks",
services={
"MainConfig",},
},
},
Hooks={
ParserFirstCallInit="main",
},
config={
OurWorldInDataUrl={
value="https://ourworldindata.org/grapher/$1",
description="The URL used to generate the graphs; $1 is replaced with the data key",
},
},
requires={
MediaWiki="&gt;= 1.37.0",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/OurWorldInData",
},
PGFTikZ={
name="PGFTikZ",
version="0.4.0",
author={
"Thibault Marin","Markus Bürkler",},
url="https://www.mediawiki.org/wiki/Extension:PGFTikZ",
descriptionmsg="pgftikz-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="PGFTikZHooks::onPGFTikZParserInit",
ParserAfterTidy="PGFTikZHooks::onPGFTikZAfterTidy",
},
config={
PGFTikZDefaultDPI={
description="Default resolution for generated images",
value=300,
},
PGFTikZLaTeXPath={
description="Full path to latex executable (assume in path if empty)",
value="latex",
},
PGFTikZLaTeXOpts={
description="Extra options to latex executable (e.g. --shell-escape for special TikZ rendering)",
value="-no-shell-escape",
},
PGFTikZdvipsPath={
description="Full path to 'dvips' executable",
value="dvips",
},
PGFTikZuseghostscript={
description="Either use epstool+imagemagick or ghostscript to generate image",
value=true,
},
PGFTikZepstoolPath={
description="Full path to 'epstool' executable",
value="epstool",
},
PGFTikZghostScriptPath={
description="Full path to 'ghostscript' executable",
value="gs",
},
PGFTikZLaTeXStandalone={
description="Use standalone LaTeX package",
value=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PGFTikZ",
},
PageAssessments={
name="PageAssessments",
version="1.1.0",
author={
"Niharika Kohli","Frances Hocutt","Ryan Kaldari","Sam Wilson",},
url="https://www.mediawiki.org/wiki/Extension:PageAssessments",
descriptionmsg="pageassessments-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.43",
},
APIListModules={
projectpages="MediaWiki\\Extension\\PageAssessments\\Api\\ApiQueryProjectPages",
projects="MediaWiki\\Extension\\PageAssessments\\Api\\ApiQueryProjects",
},
APIPropModules={
pageassessments="MediaWiki\\Extension\\PageAssessments\\Api\\ApiQueryPageAssessments",
},
ExtensionMessagesFiles={
PageAssessmentsMagic="PageAssessments.i18n.magic.php",
PageAssessmentsAlias="PageAssessments.i18n.alias.php",
},
Hooks={
ParserFirstCallInit="main",
LoadExtensionSchemaUpdates="schema",
LinksUpdateComplete="main",
ArticleDeleteComplete="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\PageAssessments\\Hooks",
},
schema={
class="MediaWiki\\Extension\\PageAssessments\\SchemaHooks",
},
},
SpecialPages={
PageAssessments="MediaWiki\\Extension\\PageAssessments\\SpecialPage",
},
config={
PageAssessmentsOnTalkPages={
value=true,
},
PageAssessmentsSubprojects={
value=false,
},
},
composer="mediawiki/page-assessments",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageAssessments",
},
PageCheckout={
name="PageCheckout",
version="1.1.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://en.wiki.bluespice.com/wiki/Reference:PageCheckout",
descriptionmsg="pagecheckout-desc",
requires={
MediaWiki="&gt;= 1.39.0",
},
attributes={
BlueSpiceFoundation={
PermissionRegistry={
["page-checkout-clear"]={
global=true,
roles={
"admin",},
},
},
},
Workflows={
LogicObjects={
ActivityRegistry={
page_checkout={
class="MediaWiki\\Extension\\PageCheckout\\Activity\\PageCheckoutActivity",
services={
"PageCheckoutManager","UserFactory","TitleFactory",},
},
page_checkin={
class="MediaWiki\\Extension\\PageCheckout\\Activity\\PageCheckInActivity",
services={
"PageCheckoutManager","UserFactory","TitleFactory",},
},
},
},
WorkflowListeners={
["clear-checkout-on-abort"]={
class="MediaWiki\\Extension\\PageCheckout\\Workflows\\Consumer\\ClearCheckoutOnAbort",
services={
"PageCheckoutManager",},
},
},
EditorPluginModules={
"ext.pagecheckout.workflows.editor.customElements",},
},
},
APIModules={
["pagecheckout-clear"]={
class="MediaWiki\\Extension\\PageCheckout\\Api\\ApiClearCheckout",
services={
"PageCheckoutManager",},
},
},
Hooks={
LoadExtensionSchemaUpdates="addDatabaseTables",
getUserPermissionsErrors="applyCheckout",
["SkinTemplateNavigation::Universal"]="addClearCheckoutAction",
BeforePageDisplay="addClearCheckoutAction",
BlueSpiceDiscoveryTemplateDataProviderAfterInit="discovery-skin",
MWStakeAlertBannersRegisterProviders="addAlertBanner",
},
HookHandlers={
addDatabaseTables={
class="MediaWiki\\Extension\\PageCheckout\\Hook\\AddDatabaseTables",
},
applyCheckout={
class="MediaWiki\\Extension\\PageCheckout\\Hook\\ApplyCheckout",
services={
"PageCheckoutManager",},
},
addClearCheckoutAction={
class="MediaWiki\\Extension\\PageCheckout\\Hook\\AddClearCheckoutAction",
services={
"PermissionManager","PageCheckoutManager",},
},
addAlertBanner={
class="\\MediaWiki\\Extension\\PageCheckout\\Hook\\AddAlertBanner",
},
["discovery-skin"]={
class="\\MediaWiki\\Extension\\PageCheckout\\HookHandler\\DiscoverySkin",
},
},
GroupPermissions={
user={
["page-checkout-clear"]=false,
},
sysop={
["page-checkout-clear"]=true,
},
},
AvailableRights={
"page-checkout-clear",},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
LogTypes={
"pagecheckout",},
LogActionsHandlers={
["pagecheckout/*"]="LogFormatter",
},
composer="mediawiki/page-checkout",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageCheckout",
},
PageCreationNotif={
name="Page Creation Notification",
version="0.3.0 beta",
author={
"[https://www.mediawiki.org/wiki/User:Nischayn22 Nischay Nahata] for [http://www.wikiworks.com/ WikiWorks]",},
url="https://www.mediawiki.org/wiki/Extension:PageCreationNotif",
descriptionmsg="page-creation-notif-desc",
type="semantic",
requires={
MediaWiki="&gt;= 1.29.0",
},
callback="PageCreationNotifHooks::registerExtension",
Hooks={
LoadExtensionSchemaUpdates="PageCreationNotifHooks::onSchemaUpdate",
GetPreferences="PageCreationNotifHooks::onGetPreferences",
UserSaveOptions="PageCreationNotifHooks::onUserSaveOptions",
},
config={
PCNSender={
value=nil,
},
PCNSenderName={
value=nil,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageCreationNotif",
},
PageDisqus={
name="PageDisqus",
version="1.0",
author={
"Michael Platzer","[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",},
url="https://www.mediawiki.org/wiki/Extension:PageDisqus",
descriptionmsg="pagedisqus-desc",
type="other",
["license-name"]="GPL-3.0-or-later",
requires={
MediaWiki="&gt;= 1.31.0",
},
config={
PageDisqusShortname={
value="",
},
PageDisqusPageBlacklist={
value={
},
},
PageDisqusPageWhitelist={
value={
},
},
PageDisqusCategoryBlacklist={
value={
},
},
PageDisqusCategoryWhitelist={
value={
},
},
PageDisqusNamespaceBlacklist={
value={
},
},
PageDisqusNamespaceWhitelist={
value={
},
},
},
Hooks={
SkinAfterContent="PageDisqus::onSkinAfterContent",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageDisqus",
},
PageEncryption={
name="PageEncryption",
author="thomas-topway-it",
version="1.2",
url="https://www.mediawiki.org/wiki/Extension:PageEncryption",
descriptionmsg="pageencryption-extension-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.35.0",
},
callback="PageEncryptionHooks::onRegistration",
ExtensionMessagesFiles={
PageEncryptionAlias="PageEncryption.alias.php",
},
Hooks={
BeforeInitialize="PageEncryptionHooks::onBeforeInitialize",
AlternateEdit="PageEncryptionHooks::onAlternateEdit",
OutputPageBeforeHTML="PageEncryptionHooks::onOutputPageBeforeHTML",
getUserPermissionsErrors="PageEncryptionHooks::onGetUserPermissionsErrors",
MediaWikiServices="PageEncryptionHooks::onMediaWikiServices",
MultiContentSave="PageEncryptionHooks::onMultiContentSave",
RejectParserCacheValue="PageEncryptionHooks::onRejectParserCacheValue",
ParserCacheSaveComplete="PageEncryptionHooks::onParserCacheSaveComplete",
ContentGetParserOutput="PageEncryptionHooks::onContentGetParserOutput",
SiteNoticeBefore="PageEncryptionHooks::onSiteNoticeBefore",
LoadExtensionSchemaUpdates="PageEncryptionHooks::onLoadExtensionSchemaUpdates",
BeforePageDisplay="PageEncryptionHooks::onBeforePageDisplay",
["SkinTemplateNavigation::Universal"]="PageEncryptionHooks::onSkinTemplateNavigation",
SkinBuildSidebar="PageEncryptionHooks::onSkinBuildSidebar",
UserLogoutComplete="PageEncryptionHooks::onUserLogoutComplete",
OutputPageParserOutput="PageEncryptionHooks::onOutputPageParserOutput",
},
SpecialPages={
PageEncryptionPermissions="SpecialPageEncryptionPermissions",
},
APIModules={
["pageencryption-set-encryption-keys"]="PageEncryptionApiSetEncryptionKeys",
["pageencryption-check-latest-version"]="PageEncryptionApiCheckLatestVersion",
},
namespaces={
{
id=2246,
constant="NS_PAGEENCRYPTION",
name="Encrypted",
},{
id=2277,
constant="NS_PAGEENCRYPTION_TALK",
name="Encrypted talk",
},},
GroupPermissions={
sysop={
["pageencryption-can-manage-encryption"]=true,
["pageencryption-can-handle-encryption"]=true,
},
bureaucrat={
["pageencryption-can-manage-encryption"]=true,
["pageencryption-can-handle-encryption"]=true,
},
user={
["pageencryption-can-manage-encryption"]=false,
["pageencryption-can-handle-encryption"]=false,
},
["pageencryption-admin"]={
["pageencryption-can-manage-encryption"]=true,
["pageencryption-can-handle-encryption"]=true,
},
["pageencryption-recipient"]={
["pageencryption-can-manage-encryption"]=false,
["pageencryption-can-handle-encryption"]=true,
},
},
AddGroups={
["pageencryption-admin"]={
"pageencryption-admin","pageencryption-recipient",},
},
RemoveGroups={
["pageencryption-admin"]={
"pageencryption-admin","pageencryption-recipient",},
},
AvailableRights={
"pageencryption-can-manage-encryption","pageencryption-can-handle-encryption",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageEncryption",
},
Page_Exchange={
name="Page Exchange",
namemsg="pageexchange-extensionname",
version="0.7",
author={
"Yaron Koren",},
url="https://www.mediawiki.org/wiki/Extension:Page_Exchange",
descriptionmsg="pageexchange-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.37",
},
AvailableRights={
"pageexchange",},
GroupPermissions={
sysop={
pageexchange=true,
},
},
Hooks={
LoadExtensionSchemaUpdates="PXHooks::describeDBSchema",
ResourceLoaderSiteModulePages="PXHooks::loadJSPages",
ResourceLoaderSiteStylesModulePages="PXHooks::loadCSSPages",
AdminLinks="PXHooks::addToAdminLinks",
},
SpecialPages={
Packages="SpecialPackages",
},
JobClasses={
pageExchangeCreatePage="PXCreatePageJob",
},
LogTypes={
"pageexchange",},
LogNames={
pageexchange="pageexchange-logname",
},
LogHeaders={
pageexchange="pageexchange-logdesc",
},
LogActions={
["pageexchange/installpackage"]="pageexchange-installpackagelog",
["pageexchange/updatepackage"]="pageexchange-updatepackagelog",
["pageexchange/uninstallpackage"]="pageexchange-uninstallpackagelog",
},
ExtensionMessagesFiles={
PageExchangeAlias="PageExchange.alias.php",
},
config={
PageExchangePackageFiles={
value={
},
},
PageExchangeFileDirectories={
value={
},
},
},
APIModules={
pxinstallpackage="PXInstallPackageAPI",
pxupdatepackage="PXUpdatePackageAPI",
pxuninstallpackage="PXUninstallPackageAPI",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageExchange",
},
Page_Forms={
name="PageForms",
namemsg="pageforms-name",
version="5.8-alpha",
author={
"Yaron Koren","Stephan Gambke","...",},
url="https://www.mediawiki.org/wiki/Extension:Page_Forms",
descriptionmsg="pageforms-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
namespaces={
{
id=106,
constant="PF_NS_FORM",
name="Form",
conditional=true,
},{
id=107,
constant="PF_NS_FORM_TALK",
name="Form_talk",
conditional=true,
},},
callback="PFHooks::registerExtension",
ExtensionFunctions={
"PFHooks::initialize",},
requires={
MediaWiki="&gt;= 1.38.0",
},
GroupPermissions={
["*"]={
viewedittab=true,
},
sysop={
editrestrictedfields=true,
},
user={
createclass=true,
multipageedit=true,
},
},
AvailableRights={
"viewedittab","editrestrictedfields","createclass","multipageedit",},
Actions={
formedit="PFFormEditAction",
formcreate="PFHelperFormAction",
},
SpecialPages={
Forms="PFForms",
CreateForm="PFCreateForm",
Templates="PFTemplates",
MultiPageEdit="PFMultiPageEdit",
CreateTemplate="PFCreateTemplate",
CreateClass="PFCreateClass",
CreateCategory="PFCreateCategory",
FormStart="PFFormStart",
FormEdit="PFFormEdit",
RunQuery="PFRunQuery",
UploadWindow="PFUploadWindow",
},
JobClasses={
pageFormsCreatePage="PFCreatePageJob",
},
APIModules={
pfautocomplete="PFAutocompleteAPI",
pfautoedit="PFAutoeditAPI",
},
ExtensionMessagesFiles={
PageFormsAlias="languages/PF_Aliases.php",
PageFormsMagic="languages/PF_Magic.php",
PageFormsNS="languages/PF_Namespaces.php",
},
Hooks={
["SkinTemplateNavigation::Universal"]={
"PFFormEditAction::displayTab","PFHelperFormAction::displayTab",},
ArticlePurge="PFFormUtils::purgeCache",
ParserFirstCallInit="PFHooks::registerFunctions",
MakeGlobalVariablesScript="PFHooks::setGlobalJSVariables",
PageSchemasRegisterHandlers="PFHooks::registerPageSchemasClass",
["EditPage::importFormData"]="PFHooks::showFormPreview",
PageSaveComplete="PFHooks::setPostEditCookie",
MultiContentSave="PFFormUtils::purgeCacheOnSave",
HtmlPageLinkRendererEnd="PFFormLinker::setBrokenLink",
AdminLinks="PFHooks::addToAdminLinks",
CargoTablesActionLinks="PFHooks::addToCargoTablesLinks",
CargoTablesSetAllowedActions="PFHooks::addToCargoTablesColumns",
CargoTablesSetActionLinks="PFHooks::addToCargoTablesRow",
TinyMCEDisable="PFHooks::disableTinyMCE",
CanonicalNamespaces="PFHooks::registerNamespaces",
ResourceLoaderRegisterModules="PFHooks::registerModules",
},
config={
PageFormsVisualEditorMaxHeight=400,
PageFormsUseDisplayTitle=true,
PageFormsShowExpandAllLink=false,
PageFormsSimpleUpload=false,
PageFormsMaxAutocompleteValues=1000,
PageFormsMaxLocalAutocompleteValues=100,
PageFormsAutocompleteOnAllChars=false,
PageFormsAutocompletionURLs={
},
PageFormsCacheAutocompleteValues=false,
PageFormsAutocompleteCacheTimeout=nil,
PageFormsRenameEditTabs=false,
PageFormsRenameMainEditTab=false,
PageFormsMainFormsMinimum=0.01,
PageFormsListSeparator=",",
PageForms24HourTime=false,
PageFormsCacheFormDefinitions=false,
PageFormsFormCacheType=nil,
PageFormsDisableOutsideServices=false,
PageFormsLinkAllRedLinksToForms=false,
PageFormsShowTabsForAllHelperForms=true,
PageFormsRunQueryFormAtTop=false,
PageFormsGoogleMapsKey=nil,
PageFormsShowOnSelect={
},
PageFormsAutocompleteValues={
},
PageFormsCalendarParams={
},
PageFormsCalendarValues={
},
PageFormsGridValues={
},
PageFormsGridParams={
},
PageFormsContLangYes=nil,
PageFormsContLangNo=nil,
PageFormsContLangMonths={
},
PageFormsHeightForMinimizingInstances=800,
PageFormsFieldProperties={
},
PageFormsCargoFields={
},
PageFormsDependentFields={
},
PageFormsCheckboxesSelectAllMinimum=10,
PageFormsMapsWithFeeders={
},
PageFormsAutoeditNamespaces={
0,},
PageFormsAutoCreateUser=nil,
PageFormsIgnoreTitlePattern={
},
PageFormsEmbeddedTemplates={
},
PageFormsEmbedQueryCacheTTL=0,
},
composer="mediawiki/page-forms",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageForms",
},
PageImages={
name="PageImages",
author="Max Semenik",
url="https://www.mediawiki.org/wiki/Extension:PageImages",
descriptionmsg="pageimages-desc",
["license-name"]="WTFPL",
type="api",
requires={
MediaWiki="&gt;= 1.42.0",
},
APIPropModules={
pageimages={
class="PageImages\\ApiQueryPageImages",
services={
"RepoGroup",},
},
},
Hooks={
ApiOpenSearchSuggest="main",
BeforePageDisplay="main",
InfoAction="main",
ParserAfterTidy="parser",
ParserModifyImageHTML="parser",
ParserTestGlobals="parser",
SearchResultProvideThumbnail="search",
["SpecialMobileEditWatchlist::images"]="mobile",
},
HookHandlers={
main={
class="PageImages\\PageImages",
services={
"MainConfig","DBLoadBalancerFactory","RepoGroup","UserOptionsLookup",},
},
parser={
class="PageImages\\Hooks\\ParserFileProcessingHookHandlers",
services={
"MainConfig","RepoGroup","MainWANObjectCache","HttpRequestFactory","DBLoadBalancerFactory","TitleFactory","LinksMigration",},
},
search={
class="PageImages\\Hooks\\SearchResultProvideThumbnailHookHandler",
services={
"SearchResultThumbnailProvider","PageProps","RepoGroup",},
},
mobile={
class="PageImages\\Hooks\\MobileFrontendHookHandlers",
},
},
JobClasses={
InitImageDataJob={
class="PageImages\\Job\\InitImageDataJob",
services={
"DBLoadBalancerFactory",},
},
},
config={
PageImagesScores={
description="Images &lt;120px are usually from maintenance or stub templates; &gt;600px are panoramas, less suitable.",
value={
position={
8,6,4,3,},
width={
[120]=-100,
[401]=10,
[601]=5,
[602]=0,
},
galleryImageWidth={
[100]=-100,
[101]=0,
},
ratio={
[4]=-100,
[6]=0,
[21]=5,
[31]=0,
[32]=-100,
},
},
},
PageImagesDenylist={
value={
{
type="db",
page="MediaWiki:Pageimages-denylist",
db=false,
},},
},
PageImagesOpenGraph={
description="Enable the OpenGraph meta tags",
public=true,
value=true,
},
PageImagesDenylistExpiry={
value=900,
},
PageImagesExpandOpenSearchXml={
value=false,
},
PageImagesNamespaces={
value={
0,},
},
PageImagesLeadSectionOnly={
description="Whether page images should be restricted to those in section 0",
value=true,
},
PageImagesAPIDefaultLicense={
description="Get images with either a 'free' license or 'any' (including free and non-free) license by default, via 'pilicense' option, in pageprops query api. The value of this setting should be either 'free' or 'any'.",
value="free",
},
PageImagesOpenGraphFallbackImage={
description="A url to fallback image that will be shown when there is no image on a page.",
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageImages",
},
PageInCat={
name="PageInCat",
version="3.0.0",
author="[https://mediawiki.org/wiki/User:Bawolff Brian Wolff]",
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:PageInCat",
descriptionmsg="pageincat-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.38.0",
},
config={
PageInCatUseAccuratePreview=true,
},
ExtensionMessagesFiles={
PageInCatMagic="PageInCat.i18n.magic.php",
},
Hooks={
ParserFirstCallInit={
"PageInCat::register",},
ParserClearState={
"PageInCat::onClearState",},
ParserAfterTidy={
"PageInCat::onParserAfterTidy",},
EditPageGetPreviewContent={
"PageInCat::onEditPageGetPreviewContent",},
ParserBeforeInternalParse={
"PageInCat::onParserBeforeInternalParse",},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageInCat",
},
PageLanguage={
name="Page Language",
author={
"Liangent",},
url="https://www.mediawiki.org/wiki/Extension:PageLanguage",
descriptionmsg="pagelanguage-desc",
type="other",
requires={
MediaWiki="&gt;= 1.40",
},
ExtensionMessagesFiles={
PageLanguageMagic="PageLanguage.magic.php",
},
Hooks={
PageContentLanguage="main",
ParserFirstCallInit="main",
},
HookHandlers={
main={
class="PageLanguage",
services={
"DBLoadBalancerFactory","LanguageFactory","LanguageNameUtils",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageLanguage",
},
PageMagic={
name="PageMagic",
author={
"Vedmaka",},
url="https://www.mediawiki.org/wiki/Extension:PageMagic",
descriptionmsg="pagemagic-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
ParserFirstCallInit="MediaWiki\\Extension\\PageMagic\\Hooks::onParserFirstCallInit",
},
ExtensionMessagesFiles={
PageMagicMagic="PageMagic.i18n.magic.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageMagic",
},
PageNameFormula={
name="PageNameFormula",
version="0.0.0",
["license-name"]="GPL-3.0-only",
author={
"[http://mwstake.org Mark A. Hershberger]",},
url="https://www.mediawiki.org/wiki/Extension:PageNameFormula",
requires={
MediaWiki="&gt;=1.28",
},
descriptionmsg="pagenameformula-desc",
type="parserhook",
ExtensionMessagesFiles={
PageNameFormulaMagic="src/i18n/Magic.php",
},
Hooks={
LoadExtensionSchemaUpdates={
"PageNameFormula\\Hook::onLoadExtensionSchemaUpdates",},
ParserFirstCallInit={
"PageNameFormula\\Hook::onParserFirstCallInit",},
},
config={
["_prefix"]="PageNameFormula",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageNameFormula",
},
PageNotice={
name="PageNotice",
author="Daniel Kinzler",
url="https://www.mediawiki.org/wiki/Extension:PageNotice",
descriptionmsg="pagenotice-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
HookHandlers={
Hooks={
class="MediaWiki\\Extension\\PageNotice\\Hooks",
},
},
Hooks={
ArticleViewHeader="Hooks",
ArticleViewFooter="Hooks",
},
config={
PageNoticeDisablePerPageNotices={
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageNotice",
},
PageOwnership={
name="PageOwnership",
author="thomas-topway-it",
version="1.2.1",
url="https://www.mediawiki.org/wiki/Extension:PageOwnership",
descriptionmsg="pageownership-extension-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
PageOwnershipAlias="PageOwnership.alias.php",
PageOwnershipMagic="PageOwnershipMagic.i18n.magic.php",
},
Hooks={
BeforeInitialize="PageOwnershipHooks::onBeforeInitialize",
SiteNoticeBefore="PageOwnershipHooks::onSiteNoticeBefore",
getUserPermissionsErrors="PageOwnershipHooks::onGetUserPermissionsErrors",
PageSaveComplete="PageOwnershipHooks::onPageSaveComplete",
PageRenderingHash="PageOwnershipHooks::onPageRenderingHash",
RejectParserCacheValue="PageOwnershipHooks::onRejectParserCacheValue",
ParserOptionsRegister="PageOwnershipHooks::onParserOptionsRegister",
BeforeParserFetchTemplateRevisionRecord="PageOwnershipHooks::onBeforeParserFetchTemplateRevisionRecord",
ParserFetchTemplate_="PageOwnershipHooks::onParserFetchTemplate",
["SMW::Store::AfterQueryResultLookupComplete"]="PageOwnershipHooks::onSMWStoreAfterQueryResultLookupComplete",
LoadExtensionSchemaUpdates="PageOwnershipHooks::onLoadExtensionSchemaUpdates",
BeforePageDisplay="PageOwnershipHooks::onBeforePageDisplay",
ArticleDeleteComplete="PageOwnershipHooks::onArticleDeleteComplete",
MagicWordwgVariableIDs="PageOwnershipHooks::onMagicWordwgVariableIDs",
ParserGetVariableValueSwitch="PageOwnershipHooks::onParserGetVariableValueSwitch",
["SkinTemplateNavigation::Universal"]="PageOwnershipHooks::onSkinTemplateNavigation",
ParserFirstCallInit="PageOwnershipHooks::onParserFirstCallInit",
SkinBuildSidebar="PageOwnershipHooks::onSkinBuildSidebar",
TitleQuickPermissions="PageOwnershipHooks::onTitleQuickPermissions",
},
SpecialPages={
PageOwnershipPermissions="SpecialPageOwnershipPermissions",
},
APIModules={
["pageownership-check-latest-version"]="PageOwnershipApiCheckLatestVersion",
["pageownership-set-permissions"]="PageOwnershipApiSetPermissions",
["pageownership-get-permissions"]="PageOwnershipApiGetPermissions",
},
GroupPermissions={
sysop={
["pageownership-canmanagepermissions"]=true,
["pageownership-caneditpermissions"]=true,
},
bureaucrat={
["pageownership-canmanagepermissions"]=true,
["pageownership-caneditpermissions"]=true,
},
["pageownership-admin"]={
["pageownership-canmanagepermissions"]=true,
["pageownership-caneditpermissions"]=true,
},
},
AddGroups={
sysop={
"pageownership-admin",},
bureaucrat={
"pageownership-admin",},
["pageownership-admin"]={
"pageownership-admin",},
["pageownership-article-author"]={
"pageownership-article-author",},
},
RemoveGroups={
sysop={
"pageownership-admin",},
bureaucrat={
"pageownership-admin",},
["pageownership-admin"]={
"pageownership-admin",},
["pageownership-article-author"]={
"pageownership-article-author",},
},
AvailableRights={
"pageownership-canmanagepermissions","pageownership-caneditpermissions","pageownership-include-subpages",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageOwnership",
},
PagePermissions={
name="PagePermissions",
version="1.0",
author={
"Sanjay Thiyagarajan",},
descriptionmsg="pagepermissions-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
Actions={
pagepermissions="PagePermissionsAction",
},
Hooks={
PageDeleteComplete="PagePermissionsHooks::onPageDeleteComplete",
["SkinTemplateNavigation::Universal"]="PagePermissionsHooks::onSkinTemplateNavigationUniversal",
MediaWikiServices="PagePermissionsHooks::onMediaWikiServices",
LoadExtensionSchemaUpdates="PagePermissionsHooks::onLoadExtensionSchemaUpdates",
},
AvailableRights={
"pagepermissions",},
GroupPermissions={
sysop={
pagepermissions=true,
},
},
config={
PagePermissionsRoles={
reader={
"read",},
editor={
"read","edit",},
manager={
"read","edit","move","rollback",},
owner={
"read","edit","move","rollback","delete","pagepermissions",},
},
},
requires={
MediaWiki="&gt;= 1.38.0",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PagePermissions",
},
PagePopups={
name="PagePopups",
version="0.0.1",
author={
"Victor Porton",},
url="https://www.mediawiki.org/wiki/Extension:PagePopups",
["license-name"]="GPL-2.0-or-later",
descriptionmsg="pagepopups-desc",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
Hooks={
BeforePageDisplay={
"PagePopupsHooks::onBeforePageDisplay",},
},
config={
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PagePopups",
},
PageProperties={
name="PageProperties",
author="thomas-topway-it",
version="1.5.0",
url="https://www.mediawiki.org/wiki/Extension:PageProperties",
descriptionmsg="pageproperties-extension-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42.0",
},
callback="PagePropertiesHooks::initExtension",
ExtensionMessagesFiles={
PagePropertiesAlias="PageProperties.alias.php",
},
Hooks={
LoadExtensionSchemaUpdates="PagePropertiesHooks::onLoadExtensionSchemaUpdates",
PageDeleteComplete="PagePropertiesHooks::onPageDeleteComplete",
ArticleUndelete="PagePropertiesHooks::onArticleUndelete",
BeforeInitialize="PagePropertiesHooks::onBeforeInitialize",
ParserAfterTidy="PagePropertiesHooks::onParserAfterTidy",
MultiContentSave="PagePropertiesHooks::onMultiContentSave",
OutputPageParserOutput="PagePropertiesHooks::onOutputPageParserOutput",
BeforePageDisplay="PagePropertiesHooks::onBeforePageDisplay",
SidebarBeforeOutput="PagePropertiesHooks::onSidebarBeforeOutput",
["SkinTemplateNavigation::Universal"]="PagePropertiesHooks::onSkinTemplateNavigation",
LinkerMakeExternalLink="PagePropertiesHooks::onLinkerMakeExternalLink",
},
SpecialPages={
PageProperties="SpecialPageProperties",
},
APIModules={
["pageproperties-check-latest-version"]="PagePropertiesApiCheckLatestVersion",
},
GroupPermissions={
sysop={
["pageproperties-caneditpageproperties"]=true,
},
bureaucrat={
["pageproperties-caneditpageproperties"]=true,
},
["pageproperties-admin"]={
["pageproperties-caneditpageproperties"]=true,
},
["pageproperties-editor"]={
["pageproperties-caneditpageproperties"]=true,
},
},
AddGroups={
["pageproperties-admin"]={
"pageproperties-admin","pageproperties-editor",},
},
RemoveGroups={
["pageproperties-admin"]={
"pageproperties-admin","pageproperties-editor",},
},
AvailableRights={
"pageproperties-caneditpageproperties",},
TrackingCategories={
"pageproperties-tracking-category",},
config={
PagePropertiesAddTrackingCategory=false,
PagePropertiesDisableSidebarLink=false,
PagePropertiesDisableNavigationLink=false,
PagePropertiesDisplayAlwaysUnprefixedTitles=false,
PagePropertiesDisableVersionCheck=false,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageProperties",
},
Page_Schemas={
name="Page Schemas",
version="0.9.2",
author={
"Yaron Koren","Ankit Garg","...",},
url="https://www.mediawiki.org/wiki/Extension:Page_Schemas",
descriptionmsg="ps-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
GroupPermissions={
sysop={
generatepages=true,
},
},
AvailableRights={
"generatepages",},
Actions={
editschema="PSEditSchemaAction",
generatepages="PSGeneratePagesAction",
},
SpecialPages={
EditSchema="PSEditSchema",
GeneratePages="PSGeneratePages",
},
JobClasses={
pageSchemasCreatePage="PSCreatePageJob",
},
ExtensionMessagesFiles={
PageSchemasAlias="PageSchemas.i18n.alias.php",
},
Hooks={
ParserFirstCallInit="PageSchemasHooks::register",
["SkinTemplateNavigation::Universal"]={
"PSEditSchemaAction::displayTab","PSGeneratePagesAction::displayTab",},
},
config={
PageSchemasFieldNum=0,
PageSchemasHandlerClasses={
},
},
requires={
MediaWiki="&gt;= 1.36",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageSchemas",
},
PageTools={
name="PageTools",
version="2.2.0-alpha",
author={
"[https://www.mediawiki.org/wiki/User:Jldupont Jean-Lou Dupont]","[https://www.mediawiki.org/wiki/User:F.trott Stephan Gambke]",},
["license-name"]="GPL-3.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:PageTools",
descriptionmsg="pagetools-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
ExtensionMessagesFiles={
PageToolsMagic="PageTools.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="PageToolsHooks::onPageToolsSetupParserFunction",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageTools",
},
PageTriage={
name="PageTriage",
author={
"Ryan Kaldari","Benny Situ","Ian Baker","Andrew Garrett","DannyS712",},
url="https://www.mediawiki.org/wiki/Extension:PageTriage",
descriptionmsg="pagetriage-desc",
["license-name"]="MIT",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42.0",
},
APIModules={
pagetriagelist={
class="MediaWiki\\Extension\\PageTriage\\Api\\ApiPageTriageList",
services={
"UserFactory","RedirectLookup","TitleFormatter","LinksMigration",},
},
pagetriagestats="MediaWiki\\Extension\\PageTriage\\Api\\ApiPageTriageStats",
pagetriageaction={
class="MediaWiki\\Extension\\PageTriage\\Api\\ApiPageTriageAction",
services={
"RevisionStore","ContentLanguage",},
},
pagetriagetagcopyvio="MediaWiki\\Extension\\PageTriage\\Api\\ApiPageTriageTagCopyvio",
pagetriagetagging="MediaWiki\\Extension\\PageTriage\\Api\\ApiPageTriageTagging",
},
APIPropModules={
isreviewed={
class="MediaWiki\\Extension\\PageTriage\\Api\\ApiIsReviewed",
services={
"WikiPageFactory",},
},
},
AvailableRights={
"pagetriage-copyvio",},
DefaultUserOptions={
["echo-subscriptions-web-page-review"]=true,
["echo-subscriptions-email-page-review"]=false,
},
GroupPermissions={
copyviobot={
["pagetriage-copyvio"]=true,
},
},
GrantPermissions={
highvolume={
["pagetriage-copyvio"]=true,
},
},
LogActionsHandlers={
["pagetriage-curation/reviewed"]="LogFormatter",
["pagetriage-curation/reviewed-redirect"]="LogFormatter",
["pagetriage-curation/reviewed-article"]="LogFormatter",
["pagetriage-curation/unreviewed"]="LogFormatter",
["pagetriage-curation/unreviewed-article"]="LogFormatter",
["pagetriage-curation/unreviewed-redirect"]="LogFormatter",
["pagetriage-curation/enqueue"]="LogFormatter",
["pagetriage-curation/tag"]="MediaWiki\\Extension\\PageTriage\\PageTriageLogFormatter",
["pagetriage-curation/delete"]="MediaWiki\\Extension\\PageTriage\\PageTriageLogFormatter",
["pagetriage-copyvio/insert"]="LogFormatter",
["pagetriage-copyvio/delete"]="LogFormatter",
},
LogTypes={
"pagetriage-curation","pagetriage-copyvio",},
ActionFilteredLogs={
["pagetriage-curation"]={
review={
"reviewed","reviewed-article","reviewed-redirect",},
unreview={
"unreviewed","unreviewed-redirect","unreviewed-article",},
enqueue={
"enqueue",},
tag={
"tag",},
delete={
"delete",},
},
},
RateLimits={
["pagetriage-mark-action"]={
anon={
1,3,},
user={
1,3,},
},
["pagetriage-tagging-action"]={
anon={
1,10,},
user={
1,10,},
},
},
SpecialPages={
NewPagesFeed="MediaWiki\\Extension\\PageTriage\\SpecialNewPagesFeed",
},
ServiceWiringFiles={
"ServiceWiring.php",},
ExtensionMessagesFiles={
PageTriageAlias="PageTriage.alias.php",
},
JobClasses={
compileArticleMetadata="\\MediaWiki\\Extension\\PageTriage\\CompileArticleMetadataJob",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\PageTriage\\Hooks",
services={
"MainConfig","RevisionLookup","StatsdDataFactory","PermissionManager","RevisionStore","TitleFactory","UserOptionsManager","PageTriageQueueManager","WikiPageFactory",},
},
schema={
class="MediaWiki\\Extension\\PageTriage\\HookHandlers\\Schema",
},
},
Hooks={
["ApiMain::moduleManager"]="main",
LoadExtensionSchemaUpdates="schema",
PageMoveComplete="main",
RevisionFromEditComplete="main",
PageSaveComplete="main",
LinksUpdateComplete="main",
ArticleViewFooter="main",
PageDeleteComplete="main",
MarkPatrolledComplete="main",
BlockIpComplete="main",
UnblockUserComplete="main",
ResourceLoaderGetConfigVars="main",
BeforeCreateEchoEvent="\\MediaWiki\\Extension\\PageTriage\\Hooks::onBeforeCreateEchoEvent",
LocalUserCreated="main",
ORESCheckModels="MediaWiki\\Extension\\PageTriage\\Hooks::onORESCheckModels",
ListDefinedTags="main",
ChangeTagsListActive="main",
ChangeTagsAllowedAdd="main",
PageUndeleteComplete="main",
},
config={
PageTriageEnableOresFilters={
value=false,
},
PageTriageEnableCopyvio={
value=false,
},
PageTriageRedirectAutoreviewAge={
value=180,
},
PageTriageMaxAge={
value=90,
},
PageTriageMaxNoIndexAge={
value=90,
},
PageTriagePagesPerRequest={
value=20,
},
PageTriageMarkPatrolledLinkExpiry={
value=86400,
},
PageTriageNoIndexUnreviewedNewArticles={
value=false,
},
PageTriageLearnMoreUrl={
value="//en.wikipedia.org/wiki/Wikipedia:Page_Curation/Help",
},
PageTriageProjectLink={
value="Wikipedia:Page Curation",
},
PageTriageFeedbackUrl={
value="//en.wikipedia.org/wiki/Wikipedia_talk:Page_Curation",
},
PageTriageEnableCurationToolbar={
value=true,
},
PageTriageCurationModules={
value={
articleInfo={
helplink="//en.wikipedia.org/wiki/Wikipedia:Page_Curation/Help#PageInfo",
namespace={
0,},
},
mark={
helplink="//en.wikipedia.org/wiki/Wikipedia:Page_Curation/Help#MarkReviewed",
namespace={
0,},
note={
0,},
},
tags={
helplink="//en.wikipedia.org/wiki/Wikipedia:Page_Curation/Help#AddTags",
namespace={
0,},
},
delete={
helplink="//en.wikipedia.org/wiki/Wikipedia:Page_Curation/Help#MarkDeletion",
namespace={
0,},
},
},
},
PageTriageNamespaces={
value={
0,},
},
TalkPageNoteTemplate={
value={
Mark="Reviewednote-NPF",
UnMark={
note="Unreviewednote-NPF",
nonote="Unreviewednonote-NPF",
},
SendNote="Sentnote-NPF",
Tags="Taggednote-NPF",
},
},
PageTriageEnabledEchoEvents={
value={
"pagetriage-mark-as-reviewed","pagetriage-add-maintenance-tag","pagetriage-add-deletion-tag",},
},
PtTemplatePath={
value="modules",
path=true,
},
PageTriageTagsOptionsMessages={
value={
"pagetriage-tags-title","pagetriage-tags-cat-all-label","pagetriage-tags-param-date-label","pagetriage-tag-count-total","pagetriage-button-add-tag","pagetriage-button-add-tag-number","pagetriage-button-add-parameters","pagetriage-button-add-details","pagetriage-button-edit-details","pagetriage-button-mark-for-deletion","cancel","pagetriage-tags-param-free-yes-label","pagetriage-tags-param-free-no-label","pagetriage-tags-param-missing-required","pagetriage-tags-tooltip",},
},
PageTriageDeletionTagsOptionsMessages={
value={
"pagetriage-tags-param-article-label","pagetriage-del-title","pagetriage-del-tooltip","pagetriage-tags-param-article-label",},
},
PageTriageDeletionTagsOptionsContentLanguageMessages={
value={
"pagetriage-del-tags-prod-notify-topic-title","pagetriage-del-tags-speedy-deletion-nomination-notify-topic-title","pagetriage-del-tags-speedy-deletion-nomination-notify-without-article-name","pagetriage-del-tags-xfd-notify-topic-title",},
},
PageTriageDraftNamespaceId={
description="The ID of the Draft namespace, as defined in $wgExtraNamespaces. If false, all AfC features are disabled.",
value=false,
},
PageTriageEnableExtendedFeatures={
value=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageTriage",
},
PageViewInfo={
name="PageViewInfo",
["license-name"]="GPL-3.0-or-later",
author={
"Kunal Mehta","Gergő Tisza",},
url="https://www.mediawiki.org/wiki/Extension:PageViewInfo",
descriptionmsg="pvi-desc",
requires={
MediaWiki="&gt;= 1.42",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\PageViewInfo\\Hooks",
services={
"PageViewService",},
},
},
Hooks={
InfoAction="main",
["ApiQuery::moduleManager"]="main",
APIQuerySiteInfoGeneralInfo="main",
},
ConfigRegistry={
PageViewInfo="GlobalVarConfig::newInstance",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
config={
PageViewInfoWikimediaEndpoint={
value="https://wikimedia.org/api/rest_v1",
description="URL of the Wikimedia Pageview API - see https://wikitech.wikimedia.org/wiki/Analytics/PageviewAPI",
},
PageViewInfoWikimediaDomain={
value=false,
description="Domain name to request data for from the Wikimedia Pageview API, or false to fall back to $wgServerName. This is mainly meant for testing.",
},
PageViewInfoWikimediaRequestLimit={
value=5,
description="Max number of calls to make to the Wikimedia Pageview API in a single request (false for unlimited).",
},
PageViewApiMaxDays={
value=60,
description="Max number of days to return in the API.",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageViewInfo",
},
PageViewInfoGA={
name="PageViewInfoGA",
version="0.1.2",
author="[https://femiwiki.com/ Femiwiki Team]",
url="https://www.mediawiki.org/wiki/Extension:PageViewInfoGA",
descriptionmsg="pageviewinfoga-desc",
["license-name"]="AGPL-3.0-or-later",
requires={
MediaWiki="&gt;= 1.36.0",
extensions={
PageViewInfo="*",
},
},
HookHandlers={
default={
class="MediaWiki\\Extension\\PageViewInfoGA\\Hooks\\Main",
services={
"MainConfig",},
},
MediaWikiServices={
class="MediaWiki\\Extension\\PageViewInfoGA\\Hooks\\MediaWikiServices",
},
},
Hooks={
BeforePageDisplay="default",
MediaWikiServices="MediaWikiServices",
},
config={
PageViewInfoGATrackingID={
value=false,
},
PageViewInfoGACredentialsFile={
value=false,
description="The file name of the credentials from the Google API Console.",
},
PageViewInfoGAProfileId={
value=false,
description="Profile(View) ID of the Google Analytics View. You can use the Account Explorer to find a View ID.",
},
PageViewInfoGAWriteCustomDimensions={
value=true,
description="Send custom dimensions MediaWiki-readable page id and page title.",
},
PageViewInfoGAWriteCustomMap={
value={
dimension1="mw:page_id",
dimension2="mw:page_title",
},
},
PageViewInfoGAReadCustomDimensions={
value=false,
description="Use custom dimensions require additional installation steps.",
},
},
composer="femiwiki/page-view-info-ga",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PageViewInfoGA",
},
PagedTiffHandler={
name="PagedTiffHandler",
author={
"[http://www.hallowelt.biz HalloWelt! Medienwerkstatt GmbH]","Sebastian Ulbricht","Daniel Lynge","Marc Reymann","Markus Glaser for Wikimedia Deutschland",},
url="https://www.mediawiki.org/wiki/Extension:PagedTiffHandler",
descriptionmsg="tiff-desc",
["license-name"]="GPL-2.0-or-later",
type="media",
requires={
MediaWiki="&gt;= 1.42.0",
},
MediaHandlers={
["image/tiff"]="MediaWiki\\Extension\\PagedTiffHandler\\PagedTiffHandler",
},
ExtensionMessagesFiles={
PagedTiffHandlerMagic="PagedTiffHandler.i18n.magic.php",
},
FileExtensions={
"tiff","tif",},
config={
TiffIdentifyRejectMessages={
value={
"/TIFFErrors?/","/^identify: Compression algorithm does not support random access/","/^identify: Old-style LZW codes, convert file/","/^identify: Sorry, requested compression method is not configured/","/^identify: ThunderDecode: Not enough data at scanline/","/^identify: .+?: Read error on strip/","/^identify: .+?: Can not read TIFF directory/","/^identify: Not a TIFF/",},
},
TiffIdentifyBypassMessages={
value={
"/^identify: .*TIFFReadDirectory/","/^identify: .+?: unknown field with tag .+? encountered/",},
},
TiffTiffinfoRejectMessages={
value={
"/.*: Cannot read TIFF header\\.$/","/.*: Not a TIFF or MDI file, bad magic number .+\\.$/","/.*: Error fetching data for field .+\\.$/","/TIFFReadDirectory: .*: Can not read TIFF directory count\\.$/",},
},
TiffTiffinfoBypassMessages={
value={
"/^TIFFReadCustomDirectory: .+: unknown field with tag .+? encountered\\./","/^TIFFReadCustomDirectory: .+: wrong data type .*; tag ignored\\./",},
},
ImageMagickIdentifyCommand={
value="/usr/bin/identify",
},
TiffUseExiv={
value=false,
},
TiffTiffinfoCommand={
value="/usr/bin/tiffinfo",
},
TiffUseTiffinfo={
value=false,
},
TiffMaxEmbedFiles={
value=10000,
},
TiffMaxMetaSize={
value=65536,
},
TiffErrorCacheTTL={
value=86400,
},
TiffIntermediaryScaleStep={
value=2048,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PagedTiffHandler",
},
PagesList={
name="PagesList",
version="0.4.0",
author={
"Ike Hecht",},
url="https://www.mediawiki.org/wiki/Extension:PagesList",
descriptionmsg="pageslist-desc",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
APIModules={
pageslist="PagesListAPI",
},
SpecialPages={
PagesList="SpecialPagesList",
PagesListQueryPage="SpecialPagesListQueryPage",
},
ExtensionMessagesFiles={
PagesListAlias="PagesList.i18n.alias.php",
PagesListMagic="PagesList.magic.php",
},
Hooks={
ParserFirstCallInit="PagesListHooks::setupParserFunction",
BeforePageDisplay="PagesListHooks::onBeforePageDisplay",
ResourceLoaderGetConfigVars="PagesListHooks::onResourceLoaderGetConfigVars",
},
config={
PagesListShowLastUser={
description="Show a column on Special:PagesList that shows who the page was last modified by.",
value=false,
},
PagesListShowLastModification={
description="Show a column on Special:PagesList that shows when the page was last modified. Possible values:\n\nfalse - Don't display this column\nPagesList::LAST_MODIFICATION_HUMAN - Display this column in human-readable format (i.e. \"3 minutes ago\" or \"Friday at 07:20\")\ntrue|PagesList::LAST_MODIFICATION_DATE - Display this column, showing the date",
value=false,
},
PagesListDataTablesOptions={
description="An array of options for the DataTables plugin. See https://datatables.net/reference/option/ for more information.\n\nExample:\n[\n\t'iDisplayLength' =&gt; 25,\n\t// Don't sort by first column - results in a sort by \"last modified\", descending\n\t'aaSorting' =&gt; [] ]",
value={
},
},
PagesListUseAjax={
description="Only partially functional - some of the DataTables bells and whistles are disabled and does not limit results by namespace and such. See the js file and the API class. Let's keep this undocumented, OK?",
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PagesList",
},
PaginateText={
name="PaginateText",
version="0.1.0",
author={
"Ike Hecht",},
url="https://www.mediawiki.org/wiki/Extension:PaginateText",
descriptionmsg="paginatetext-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="PaginateTextHooks::addTag",
BeforePageDisplay="PaginateTextHooks::addModules",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PaginateText",
},
PanScroll={
name="PanScroll",
version="0.3.0",
author="Mathias Lidal",
url="https://www.mediawiki.org/wiki/Extension:PanScroll",
descriptionmsg="panscroll-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="PanScrollHooks::init",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PanScroll",
},
ParentPage={
name="ParentPage",
version="0.0.1",
author={
"Leonid Verhovskij",},
url="https://www.mediawiki.org/wiki/Extension:ParentPage",
descriptionmsg="parentpage-desc",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.31.0",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ParentPage",
},
ParserFunctions={
name="ParserFunctions",
version="1.6.1",
author={
"Tim Starling","Robert Rohde","Ross McClure","Juraj Simlovic",},
url="https://www.mediawiki.org/wiki/Extension:ParserFunctions",
descriptionmsg="pfunc_desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39",
},
config={
PFEnableStringFunctions={
value=false,
},
PFStringLengthLimit={
value=1000,
},
},
ExtensionMessagesFiles={
ParserFunctionsMagic="ParserFunctions.i18n.magic.php",
},
Hooks={
ParserTestGlobals="ParserFunctionsHookHandler",
ParserFirstCallInit="ParserFunctionsHookHandler",
ScribuntoExternalLibraries="ParserFunctionsScribuntoHookHandler",
},
HookHandlers={
ParserFunctionsHookHandler={
class="MediaWiki\\Extension\\ParserFunctions\\Hooks",
services={
"MainConfig","HookContainer","LanguageConverterFactory","LanguageFactory","LanguageNameUtils","LinkCache","RepoGroup","SpecialPageFactory",},
},
ParserFunctionsScribuntoHookHandler={
class="MediaWiki\\Extension\\ParserFunctions\\ScribuntoHooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ParserFunctions",
},
ParserMigration={
name="ParserMigration",
author={
"Tim Starling","C. Scott Ananian","...",},
version="2.0.0",
url="https://www.mediawiki.org/wiki/Extension:ParserMigration",
descriptionmsg="parsermigration-desc",
["license-name"]="CC0-1.0",
requires={
MediaWiki="&gt;= 1.42",
},
config={
ParserMigrationEnableQueryString={
value=false,
description="Whether to enable the ?useparsoid=1 query string for article views",
},
ParserMigrationEnableParsoidDiscussionTools={
value=false,
description="Whether to use Parsoid by default on discussion tools pages",
},
ParserMigrationEnableParsoidArticlePages={
value=false,
description="Whether to use Parsoid by default on article pages",
},
ParserMigrationEnableParsoidMobileFrontend={
value=false,
description="Whether to use Parsoid by default on mobile domains, intersecting with the other default configs",
},
ParserMigrationUserNoticeVersion={
value=1,
description="Updated whenever the user notice is modified sufficient to merit redisplay",
},
ParserMigrationUserNoticeDays={
value=7,
description="The number of days before the user notice is reshown after being dismissed",
},
},
ServiceWiringFiles={
"src/ServiceWiring.php",},
Actions={
["parsermigration-edit"]="MediaWiki\\Extension\\ParserMigration\\EditAction",
},
APIModules={
["parser-migration"]={
class="MediaWiki\\Extension\\ParserMigration\\ApiParserMigration",
},
},
DefaultUserOptions={
parsermigration="0",
["parsermigration-parsoid-readviews"]="0",
},
HookHandlers={
ParserMigrationHooks={
class="MediaWiki\\Extension\\ParserMigration\\Hooks",
services={
"MainConfig","UserOptionsManager","ParserMigration.Oracle",},
},
},
Hooks={
ArticleParserOptions="ParserMigrationHooks",
GetPreferences="ParserMigrationHooks",
SidebarBeforeOutput="ParserMigrationHooks",
ParserOutputPostCacheTransform="ParserMigrationHooks",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ParserMigration",
},
PasswordlessLogin={
name="PasswordlessLogin",
version="0.0.1",
author="Florian Schmidt",
url="https://www.mediawiki.org/wiki/Extension:PasswordlessLogin",
descriptionmsg="passwordlesslogin-desc",
namemsg="passwordlesslogin",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.35.3",
},
Hooks={
LoadExtensionSchemaUpdates={
"PasswordlessLogin\\Hooks::onLoadExtensionSchemaUpdates",},
BeforePageDisplay={
"PasswordlessLogin\\Hooks::onBeforePageDisplay",},
AuthChangeFormFields={
"PasswordlessLogin\\Hooks::onAuthChangeFormFields",},
},
ConfigRegistry={
passwordless="GlobalVarConfig::newInstance",
},
config={
PLFirebaseAccessToken={
value="",
description="The Firebase server key out of the Firebase project Cloud Messaging settings.",
},
PLFirebaseSenderId={
value="",
description="The Firebase Cloud Messaging Sender ID, which can be found in the Firebase project settings.",
},
PLEnableApiVerification={
value=false,
description="Uses the API to check that a login was already verified. This is a convenience feature for the UI only, the actual verification always happens at the backend. This feature is experimental and may result in much higher load to the server during the login process of users, as connections to the API are hold open for up to 30 seconds to save HTTP round-trips.",
},
},
ServiceWiringFiles={
"src/ServiceWiring.php",},
APIModules={
passwordlesslogin="PasswordlessLogin\\adapter\\api\\DeviceRegistration",
["passwordlesslogin-verify-challenge"]="PasswordlessLogin\\adapter\\api\\ChallengeVerification",
["passwordlesslogin-verify-login"]="PasswordlessLogin\\adapter\\api\\LoginVerification",
},
AuthManagerAutoConfig={
primaryauth={
["PasswordlessLogin\\adapter\\AuthenticationProvider"]={
class="PasswordlessLogin\\adapter\\AuthenticationProvider",
sort=0,
},
},
},
composer="mediawiki/passwordlesslogin",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PasswordlessLogin",
},
Patroller={
name="Patroller",
version="2.1",
author={
"Rob Church","Kris Blair (Developaws)",},
url="https://www.mediawiki.org/wiki/Extension:Patroller",
descriptionmsg="patrol-desc",
["license-name"]="GPL-2.0-only",
type="special",
requires={
MediaWiki="&gt;= 1.35.3",
},
GroupPermissions={
sysop={
patroller=true,
},
patroller={
patroller=true,
},
},
AvailableRights={
"patroller",},
ExtensionMessagesFiles={
PatrollerAlias="Patroller.alias.php",
},
Hooks={
LoadExtensionSchemaUpdates={
"PatrollerHooks::onLoadExtensionSchemaUpdates",},
},
SpecialPages={
Patrol="SpecialPatroller",
},
composer="mediawiki/patroller",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Patroller",
},
PdfHandler={
name="PDF Handler",
author={
"Martin Seidel","Mike Połtyn",},
url="https://www.mediawiki.org/wiki/Extension:PdfHandler",
descriptionmsg="pdf-desc",
["license-name"]="GPL-2.0-or-later",
type="media",
requires={
MediaWiki="&gt;= 1.42",
},
config={
PdfOutputExtension={
value="jpg",
},
PdfHandlerDpi={
value=150,
},
PdfPostProcessor={
value="/usr/bin/convert",
},
PdfHandlerJpegQuality={
value=95,
},
PdftoText={
value="/usr/bin/pdftotext",
},
PdfProcessor={
value="/usr/bin/gs",
},
PdfInfo={
value="/usr/bin/pdfinfo",
},
},
MediaHandlers={
["application/pdf"]="MediaWiki\\Extension\\PdfHandler\\PdfHandler",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PdfHandler",
},
PerPageLanguage={
name="PerPageLanguage",
version="1.0.0",
author={
"WikiWorks team","Vedmaka Wakalaka",},
url="https://www.mediawiki.org/wiki/Extension:PerPageLanguage",
descriptionmsg="perpagelanguage-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42",
},
type="other",
Hooks={
["SkinTemplateNavigation::Universal"]="main",
UserGetLanguageObject="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\PerPageLanguage\\Hooks",
services={
"LanguageFactory","LanguageConverterFactory","PermissionManager","UserOptionsLookup",},
},
},
config={
PerPageLanguageIgnoreUserSetting={
value=false,
description="If to ignore user setting for a language",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PerPageLanguage",
},
PerformanceInspector={
name="PerformanceInspector",
version="0.1.0",
author={
"Peter Hedenskog",},
url="https://www.mediawiki.org/wiki/Extension:PerformanceInspector",
descriptionmsg="performanceinspector-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
BeforePageDisplay={
"PerformanceInspectorHooks::onBeforePageDisplay",},
BaseTemplateToolbox={
"PerformanceInspectorHooks::onBaseTemplateToolbox",},
GetPreferences={
"PerformanceInspectorHooks::onGetPreferences",},
},
QUnitTestModule={
localBasePath="tests/qunit",
remoteExtPath="PerformanceInspector/tests/qunit",
scripts={
"ext.performanceInspector.test.js",},
dependencies={
"ext.PerformanceInspector.analyze",},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PerformanceInspector",
},
Petition={
name="Petition",
author={
"Peter Coombe","Andrew Garrett",},
url="https://www.mediawiki.org/wiki/Extension:Petition",
descriptionmsg="petition-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.35.3",
},
GroupPermissions={
petitiondata={
["view-petition-data"]=true,
},
},
AvailableRights={
"view-petition-data",},
SpecialPages={
Petition="SpecialPetition",
PetitionData="SpecialPetitionData",
},
LogTypes={
"petition",},
LogRestrictions={
petition="view-petition-data",
},
LogActionsHandlers={
["petition/sign"]="LogFormatter",
},
ExtensionMessagesFiles={
PetitionDataAlias="Petition.alias.php",
},
Hooks={
LoadExtensionSchemaUpdates={
"PetitionHooks::onLoadExtensionSchemaUpdates",},
},
config={
PetitionDatabase={
value=false,
},
PetitionCountCacheTime={
value=86400,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Petition",
},
PhabTaskGraph={
name="PhabTaskGraph",
version="2.0",
author={
"[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]",},
url="https://www.mediawiki.org/wiki/Extension:PhabTaskGraph",
descriptionmsg="phabtaskgraph-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
SpecialPages={
PhabTaskGraph="SpecialPhabTaskGraph",
},
ExtensionMessagesFiles={
PhabTaskGraphAlias="i18n/PhabTaskGraph.i18n.alias.php",
PhabTaskGraphMagic="i18n/PhabTaskGraph.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="PhabTaskGraphHooks::onParserFirstCallInit",
},
config={
PhabTaskGraphPhabURL={
value="https://phabricator.wikimedia.org",
},
PhabTaskGraphConduitAPIToken={
value=nil,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PhabTaskGraph",
},
Phonos={
name="Phonos",
author={
"[https://meta.wikimedia.org/wiki/Community_Tech#Team Wikimedia Community Tech Team]",},
url="https://www.mediawiki.org/wiki/Extension:Phonos",
version="0.1.0",
["license-name"]="GPL-2.0-or-later",
namemsg="phonos",
descriptionmsg="phonos-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
},
suggests={
extensions={
TimedMediaHandler="&gt;= 0.6.0",
},
},
TrackingCategories={
"phonos-tracking-category","phonos-error-category",},
config={
PhonosEngine={
value="espeak",
description="Backend TTS provider to use",
},
PhonosApiEndpointLarynx={
value="https://larynx-tts.wmcloud.org/api/tts",
description="API endpoint for the Larynx engine",
},
PhonosApiEndpointGoogle={
value="https://texttospeech.googleapis.com/v1/",
description="API endpoint for the Google engine",
},
PhonosApiKeyGoogle={
value="",
description="API key for the Google Cloud Text-to-speech API",
},
PhonosApiProxy={
value=false,
description="HTTP proxy to use for API requests",
},
PhonosFileBackend={
value=false,
description="Which backend to use for file caching",
},
PhonosFileBackendDirectory={
value=false,
description="Custom public directory to store persisted Phonos audio",
},
PhonosEspeak={
value="/usr/bin/espeak",
description="Path to the eSpeak executable",
},
PhonosLame={
value="/usr/bin/lame",
description="Path to the Lame executable used for converting WAV to MP3",
},
PhonosPath={
value=false,
description="Relative URL path to where Phonos files are publicly available",
},
PhonosWikibaseUrl={
value="https://www.wikidata.org/wiki/",
description="Wikibase URL",
},
PhonosWikibaseProperties={
value={
wikibasePronunciationAudioProp="P443",
wikibaseLangNameProp="P407",
wikibaseIETFLangTagProp="P305",
wikibaseIPATranscriptionProp="P898",
},
description="Wikibase properties for the Wikibase API",
},
PhonosIPARenderingEnabled={
value=true,
description="Enable rendering of IPA",
},
PhonosFileExpiry={
value="30",
description="Time in days after which files should expire, if the backend supports the 'X-Delete-At' header.",
},
PhonosInlineAudioPlayerMode={
value=false,
description="Only play audio files",
},
},
ExtensionMessagesFiles={
PhonosMagic="Phonos.i18n.php",
},
Hooks={
ParserFirstCallInit="PhonosHooks",
},
HookHandlers={
PhonosHooks={
class="MediaWiki\\Extension\\Phonos\\Phonos",
services={
"RepoGroup","Phonos.Engine","Phonos.Wikibase","StatsdDataFactory","JobQueueGroup","LinkRenderer","MainConfig",},
},
},
JobClasses={
phonosIPAFilePersist={
class="MediaWiki\\Extension\\Phonos\\Job\\PhonosIPAFilePersistJob",
services={
"Phonos.Engine","StatsdDataFactory",},
needsPage=false,
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Phonos",
},
PhotoSwipe={
name="PhotoSwipe",
version="1.0.0",
author={
"Jason Khanlar",},
descriptionmsg="photoswipe-desc",
["license-name"]="GPL-3.0-or-later",
requires={
MediaWiki="&gt;= 1.37.1",
},
type="parserhook",
url="https://www.mediawiki.org/wiki/Extension:PhotoSwipe",
ConfigRegistry={
PhotoSwipe="GlobalVarConfig::newInstance",
},
Hooks={
ParserFirstCallInit="PhotoSwipe::onParserFirstCallInit",
},
config={
PhotoSwipeConfig={
value={
mode="recommended",
options={
gallery="table.gallery",
children="a.img",
thumbSelector="a.img",
pswpModule="() =&gt; require( 'js.photoswipe' )",
allowPanToNext=false,
allowMouseDrag=true,
wheelToZoom=true,
zoom=false,
},
addBeginning={
"document.querySelectorAll( 'table.gallery img' ).forEach( ( e, i ) =&gt; { if ( e.parentElement.tagName !== 'A' ) { document.querySelectorAll( 'img' )[ i ].outerHTML = `&lt;a class='img' href='${e.src}'; data-my-size='${e.naturalWidth}x${e.naturalHeight}'&gt;${e.outerHTML}&lt;/a&gt;`; } } );",},
addEventables={
"const backEasing = { in: 'cubic-bezier(0.6, -0.28, 0.7, 1)', out: 'cubic-bezier(0.3, 0, 0.32, 1.275)', inOut: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)' }","lightbox.on( 'firstUpdate', () =&gt; { lightbox.pswp.options.easing = backEasing.out; } );","lightbox.on( 'initialZoomInEnd', () =&gt; { lightbox.pswp.options.easing = backEasing.inOut; } );","lightbox.on( 'close', () =&gt; { lightbox.pswp.options.easing = backEasing.in; } );","lightbox.addFilter( 'domItemData', ( itemData, element, linkEl ) =&gt; { if ( linkEl ) { const sizeAttr = linkEl.dataset.mySize; itemData.src = linkEl.href; itemData.w = Number( sizeAttr.split( 'x' )[ 0 ] ); itemData.h = Number( sizeAttr.split( 'x' )[ 1 ] ); itemData.msrc = linkEl.dataset.thumbSrc; itemData.thumbCropped = true; } return itemData; } );",},
addEnd={
},
plugins={
DeepZoomPlugin={
enabled=true,
options={
tileSize=256,
},
},
DynamicCaption={
enabled=true,
options={
captionContent=".pswp-caption-content",
horizontalEdgeThreshold=20,
mobileCaptionOverlapRatio=0.3,
mobileLayoutBreakpoint=600,
type="auto",
},
},
VideoPlugin={
enabled=true,
options={
},
},
},
},
description="Configuration for loading the PhotoSwipe JS library and plugins",
},
},
composer="mediawiki/photoswipe",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PhotoSwipe",
},
PhpHighlight={
name="PHP highlight",
author="Alexandre Emsenhuber",
url="https://www.mediawiki.org/wiki/Extension:PhpHighlight",
descriptionmsg="phphighlight-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
ParserFirstCallInit="PhpHighlightHooks::efSetPhp",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PhpHighlight",
},
PhpTags={
name="PhpTags",
version="5.14",
author="[https://www.mediawiki.org/wiki/User:Pastakhov Pavel Astakhov]",
url="https://www.mediawiki.org/wiki/Extension:PhpTags",
descriptionmsg="phptags-desc",
["license-name"]="GPL-2.0-or-later",
type="phptags",
requires={
MediaWiki="&gt;= 1.38.0",
},
ExtensionMessagesFiles={
PhpTagsMagic="PhpTags.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="PhpTagsHooks::onParserFirstCallInit",
PhpTagsRuntimeFirstInit="PhpTagsHooks::onPhpTagsRuntimeFirstInit",
ParserLimitReport="PhpTagsHooks::onParserLimitReport",
ParserAfterTidy="PhpTagsHooks::onParserAfterTidy",
ExtensionTypes="PhpTagsHooks::onExtensionTypes",
},
TrackingCategories={
"phptags-compiler-error-category","phptags-runtime-error-category",},
config={
PhpTagsNamespaces=true,
PhpTagsMaxLoops=1000,
PhpTagsBytecodeExptime=2592000,
},
CodeMirrorTagModes={
phptag="text/x-php",
},
CodeMirrorPluginModules={
"ext.CodeMirror.lib.mode.php",},
callback="PhpTagsHooks::onRegistration",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PhpTags",
},
PhpTags_Functions={
name="PhpTags Functions",
version="3.8.1",
author="[https://www.mediawiki.org/wiki/User:Pastakhov Pavel Astakhov]",
url="https://www.mediawiki.org/wiki/Extension:PhpTags_Functions",
descriptionmsg="phptagsfunctions-desc",
["license-name"]="GPL-2.0-or-later",
type="phptags",
requires={
MediaWiki="&gt;= 1.35.0",
extensions={
PhpTags="&gt;= 5.12",
},
},
Hooks={
ParserFirstCallInit="PhpTagsFunctionsHooks::onParserFirstCallInit",
PhpTagsRuntimeFirstInit="PhpTagsFunctionsHooks::onPhpTagsRuntimeFirstInit",
},
config={
PhpTagsFunctionDumpDepth=3,
PhpTagsFunctionDumpAmount=10,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PhpTagsFunctions",
},
PhpTags_SMW={
name="PhpTags SMW",
version="1.5.2",
author={
"[https://www.mediawiki.org/wiki/User:Pastakhov Pavel Astakhov]","[https://www.mediawiki.org/wiki/User:JoelKP Joel K. Pettersson]",},
url="https://www.mediawiki.org/wiki/Extension:PhpTags_SMW",
descriptionmsg="phptagssmw-desc",
["license-name"]="GPL-2.0-or-later",
type="phptags",
requires={
MediaWiki="&gt;= 1.34.0",
},
Hooks={
ParserFirstCallInit="PhpTagsSMWHooks::onParserFirstCallInit",
PhpTagsRuntimeFirstInit="PhpTagsSMWHooks::onPhpTagsRuntimeFirstInit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PhpTagsSMW",
},
PhpTags_SPARQL={
name="PhpTags SPARQL",
version="1.0",
author="[https://www.mediawiki.org/wiki/User:Pastakhov Pavel Astakhov]",
url="https://www.mediawiki.org/wiki/Extension:PhpTags_SPARQL",
descriptionmsg="phptagssparql-desc",
["license-name"]="GPL-2.0-or-later",
type="phptags",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
ParserFirstCallInit="PhpTagsSPARQLHooks::onParserFirstCallInit",
PhpTagsRuntimeFirstInit="PhpTagsSPARQLHooks::onPhpTagsRuntimeFirstInit",
},
config={
PhpTagsSPARQLDefaultEndpoint="https://query.wikidata.org/bigdata/namespace/wdq/sparql",
PhpTagsSPARQLEndpointsThatUseGetHttpMethod={
["https://query.wikidata.org/bigdata/namespace/wdq/sparql"]=1,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PhpTagsSPARQL",
},
PhpTags_Widgets={
name="PhpTags Widgets",
version="2.0.0",
author="[https://www.mediawiki.org/wiki/User:Pastakhov Pavel Astakhov]",
url="https://www.mediawiki.org/wiki/Extension:PhpTags_Widgets",
descriptionmsg="phptagswidgets-desc",
type="phptags",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
ParserFirstCallInit="PhpTagsWidgetsHooks::onParserFirstCallInit",
PhpTagsRuntimeFirstInit="PhpTagsWidgetsHooks::onPhpTagsRuntimeFirstInit",
},
config={
PhpTagsWidgetVegaDomainWhiteList={
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PhpTagsWidgets",
},
PhpTags_Wiki={
name="PhpTags Wiki",
version="1.6.14",
author="[https://www.mediawiki.org/wiki/User:Pastakhov Pavel Astakhov]",
url="https://www.mediawiki.org/wiki/Extension:PhpTags_Wiki",
descriptionmsg="phptagswiki-desc",
["license-name"]="GPL-2.0-or-later",
type="phptags",
requires={
MediaWiki="&gt;= 1.35.3",
extensions={
PhpTags="&gt;= 5.8",
},
},
Hooks={
ParserFirstCallInit="PhpTagsWikiHooks::onParserFirstCallInit",
PhpTagsRuntimeFirstInit="PhpTagsWikiHooks::onPhpTagsRuntimeFirstInit",
ContentAlterParserOutput="PhpTagsWikiHooks::onContentAlterParserOutput",
LinksUpdate="PhpTagsWikiHooks::onLinksUpdate",
LoadExtensionSchemaUpdates="PhpTagsWikiHooks::onLoadExtensionSchemaUpdates",
},
config={
PhpTagsWikiExtract=false,
PhpTagsWikiExtractAnything=false,
PhpTagsWikiExtractOnParserOutput=false,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PhpTagsWiki",
},
PictureGame={
name="PictureGame",
version="4.4.0",
author={
"Aaron Wright","Ashish Datta","David Pean","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.35.3",
},
url="https://www.mediawiki.org/wiki/Extension:PictureGame",
descriptionmsg="picturegame-desc",
type="other",
config={
CreatePictureGameThresholds={
},
},
SpecialPages={
PictureGameHome="SpecialPictureGameHome",
PictureGameAjaxUpload="SpecialPictureGameAjaxUpload",
},
ExtensionMessagesFiles={
PictureGameAlias="includes/PictureGame.alias.php",
},
Hooks={
["SkinTemplateNavigation::Universal"]="PictureGameHooks::onSkinTemplateNavigationUniversal",
LoadExtensionSchemaUpdates="PictureGameHooks::onLoadExtensionSchemaUpdates",
},
LogTypes={
"picturegame",},
LogActionsHandlers={
["picturegame/*"]="WikitextLogFormatter",
},
AvailableRights={
"picturegameadmin",},
GroupPermissions={
staff={
picturegameadmin=true,
},
sysop={
picturegameadmin=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PictureGame",
},
PlaceNewSection={
name="PlaceNewSection",
type="other",
descriptionmsg="placenewsection-desc",
author={
"[https://www.mediawiki.org/wiki/User:Nx Nx]","Kevin Ernst",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:PlaceNewSection",
requires={
MediaWiki="&gt;= 1.33.0",
},
ExtensionMessagesFiles={
PlaceNewSectionMagic="PlaceNewSection.i18n.magic.php",
},
Hooks={
GetDoubleUnderscoreIDs="\\MediaWiki\\Extension\\PlaceNewSection\\Hooks::onGetDoubleUnderscoreIDs",
PlaceNewSection="\\MediaWiki\\Extension\\PlaceNewSection\\Hooks::onPlaceNewSection",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PlaceNewSection",
},
PluggableAuth={
name="PluggableAuth",
version="7.1.0",
author={
"[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]",},
url="https://www.mediawiki.org/wiki/Extension:PluggableAuth",
descriptionmsg="pluggableauth-desc",
type="other",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.35.0",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
SpecialPages={
PluggableAuthLogin={
class="MediaWiki\\Extension\\PluggableAuth\\PluggableAuthLogin",
services={
"PluggableAuthFactory","AuthManager","PluggableAuth.GroupProcessorRunner",},
},
PluggableAuthLogout={
class="MediaWiki\\Extension\\PluggableAuth\\PluggableAuthLogout",
},
},
ExtensionMessagesFiles={
PluggableAuthAlias="includes/PluggableAuth.alias.php",
},
callback="MediaWiki\\Extension\\PluggableAuth\\PluggableAuthHooks::onRegistration",
HookHandlers={
main={
class="MediaWiki\\Extension\\PluggableAuth\\PluggableAuthHooks",
services={
"PluggableAuthService",},
},
},
Hooks={
TitleReadWhitelist="main",
UserLogoutComplete="main",
AuthChangeFormFields="main",
["SkinTemplateNavigation::Universal"]="main",
BeforeInitialize="main",
LocalUserCreated="main",
SpecialPage_initList="main",
},
AuthManagerAutoConfig={
primaryauth={
PluggableAuthPrimaryAuthenticationProvider={
class="MediaWiki\\Extension\\PluggableAuth\\PrimaryAuthenticationProvider",
services={
"MainConfig","UserFactory","PluggableAuthFactory",},
sort=0,
},
},
},
attributes={
PluggableAuth={
LoginSpecialPages={
"PluggableAuthLogin","Userlogin","PluggableAuth.GroupProcessorRunner",},
GroupSyncs={
syncall={
class="MediaWiki\\Extension\\PluggableAuth\\Group\\SyncAllGroups",
services={
"UserGroupManager",},
},
mapped={
class="MediaWiki\\Extension\\PluggableAuth\\Group\\MapGroups",
services={
"UserGroupManager",},
},
},
},
},
config={
PluggableAuth_EnableAutoLogin={
value=false,
},
PluggableAuth_EnableLocalLogin={
value=false,
},
PluggableAuth_EnableLocalProperties={
value=false,
},
PluggableAuth_EnableFastLogout={
value=false,
},
PluggableAuth_Config={
value={
},
},
},
composer="mediawiki/pluggable-auth",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PluggableAuth",
},
PluggableSSO={
name="PluggableSSO",
namemsg="pluggablesso-extensionname",
version="0.1",
author={
"[http://mwstake.org Mark A. Hershberger]",},
url="https://www.mediawiki.org/wiki/Extension:PluggableSSO",
descriptionmsg="pluggablesso-desc",
type="authentication",
["license-name"]="GPL-3.0-or-later",
requires={
MediaWiki="&gt;= 1.31.0",
},
ExtensionFunctions={
"PluggableSSO\\Hook::initExtension",},
SessionProviders={
["PluggableSSO\\SessionProvider"]={
class="PluggableSSO\\SessionProvider",
args={
{
priority=50,
callUserSetCookiesHook=true,
},},
},
},
config={
SSOHeader="REMOTE_USER",
AuthRemoteuserDomain="example.wiki",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PluggableSSO",
},
Poem={
name="Poem",
author={
"Nikola Smolenski","Brion Vibber","Steve Sanbeg",},
["license-name"]="CC0-1.0",
url="https://www.mediawiki.org/wiki/Extension:Poem",
descriptionmsg="poem-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Poem\\Poem",
},
},
Hooks={
ParserFirstCallInit="main",
},
ParsoidModules={
{
name="Poem",
domProcessors={
"MediaWiki\\Extension\\Poem\\Parsoid\\PoemProcessor",},
tags={
{
name="poem",
handler="MediaWiki\\Extension\\Poem\\Parsoid\\Poem",
options={
outputHasCoreMwDomSpecMarkup=true,
},
},},
},},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Poem",
},
Poll={
name="Poll",
version="2.0",
author="Jan Luca",
url="https://www.mediawiki.org/wiki/Extension:Poll",
descriptionmsg="poll-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.29.0",
},
AvailableRights={
"poll-admin","poll-create","poll-vote","poll-score",},
GroupPermissions={
sysop={
["poll-admin"]=true,
},
["*"]={
["poll-admin"]=false,
["poll-create"]=false,
["poll-vote"]=false,
["poll-score"]=true,
},
autoconfirmed={
["poll-create"]=true,
["poll-vote"]=true,
},
},
LogActions={
["poll/create"]="poll-logentry-create",
["poll/change"]="poll-logentry-change",
["poll/delete"]="poll-logentry-delete",
},
LogHeaders={
poll="poll-logpagetext",
},
LogNames={
poll="poll-logpage",
},
LogTypes={
"poll",},
SpecialPages={
Poll="Poll",
},
ExtensionMessagesFiles={
PollAlias="Poll.alias.php",
},
Hooks={
LoadExtensionSchemaUpdates="PollHooks::onPollSchemaUpdates",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Poll",
},
PollNY={
name="PollNY",
version="3.7.0",
author={
"Aaron Wright","David Pean","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.35.3",
},
url="https://www.mediawiki.org/wiki/Extension:PollNY",
descriptionmsg="poll-desc",
type="other",
config={
CreatePollThresholds={
},
PollDisplay={
comments=true,
},
},
SpecialPages={
AdminPoll="AdminPoll",
CreatePoll="CreatePoll",
PollAjaxUpload="SpecialPollAjaxUpload",
RandomPoll="RandomPoll",
UpdatePoll="UpdatePoll",
ViewPoll="ViewPoll",
},
namespaces={
{
id=300,
constant="NS_POLL",
name="Poll",
},{
id=301,
constant="NS_POLL_TALK",
name="Poll_talk",
},},
APIModules={
pollny="ApiPollNY",
},
ExtensionMessagesFiles={
PollNYAlias="includes/PollNY.alias.php",
PollNYNamespaces="includes/PollNY.namespaces.php",
},
Hooks={
PageMoveComplete="PollNYHooks::updatePollQuestion",
ArticleDelete="PollNYHooks::deletePollQuestion",
ArticleFromTitle="PollNYHooks::pollFromTitle",
ParserFirstCallInit={
"PollNYHooks::registerUserPollHook","PollNYHooks::registerPollEmbedHook",},
APIGetAllowedParams="PollNYHooks::onAPIGetAllowedParams",
LoadExtensionSchemaUpdates="PollNYHooks::onLoadExtensionSchemaUpdates",
},
AvailableRights={
"pollny-vote","polladmin",},
GroupPermissions={
["*"]={
["pollny-vote"]=true,
},
sysop={
polladmin=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PollNY",
},
PopcornEditor={
name="PopcornEditor",
author={
"Brion Vibber",},
url="https://www.mediawiki.org/wiki/Extension:PopcornEditor",
descriptionmsg="popcorn-desc",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
FileExtensions={
"popcorn",},
Hooks={
BeforePageDisplay="PopcornEditorHooks::beforePageDisplay",
MakeGlobalVariablesScript="PopcornEditorHooks::makeGlobalVariablesScript",
},
config={
PopcornEditorUrl={
value="http://popcorn-editor.wmflabs.org/PopcornEditor/editor.html",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PopcornEditor",
},
PopupAlerts={
name="PopupAlerts",
author={
"WikiTeq",},
url="https://www.mediawiki.org/wiki/Extension:PopupAlerts",
descriptionmsg="popupalerts-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
ExtensionMessagesFiles={
PopupAlertsMagic="PopupAlerts.magic.php",
},
Hooks={
ParserFirstCallInit={
"PopupAlerts\\PopupAlertsHooks::onParserFirstCallInit",},
},
QUnitTestModule={
localBasePath="",
remoteExtPath="PopupAlerts",
templates={
["popup.mustache"]="templates/popup.mustache",
},
scripts={
"tests/qunit/ext.popupalerts.alert.test.js","tests/qunit/ext.popupalerts.manager.test.js",},
dependencies={
"ext.popupalerts.alert","ext.popupalerts.manager",},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PopupAlerts",
},
Popups={
name="Popups",
namemsg="popups-message",
author={
"Prateek Saxena","[https://www.mediawiki.org/wiki/Reading/Web/Team Readers Web Team]","Yair Rand",},
url="https://www.mediawiki.org/wiki/Extension:Popups",
descriptionmsg="popups-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42.0",
},
ConfigRegistry={
popups="GlobalVarConfig::newInstance",
},
Hooks={
BeforePageDisplay="PopupsHooks",
ResourceLoaderGetConfigVars="PopupsHooks",
GetPreferences="PopupsHooks",
UserGetDefaultOptions="PopupsHooks",
MakeGlobalVariablesScript="PopupsHooks",
},
HookHandlers={
PopupsHooks={
class="Popups\\PopupsHooks",
services={
"Popups.Config","Popups.Context","Popups.Logger","UserOptionsManager",},
},
},
attributes={
EventLogging={
Schemas={
ReferencePreviewsPopups="/analytics/legacy/referencepreviewspopups/1.1.0",
VirtualPageView="/analytics/legacy/virtualpageview/1.0.0",
},
},
},
config={
PopupsVirtualPageViews={
description="@var bool: Whether the extension should log virtual pageviews.",
value=false,
},
PopupsHideOptInOnPreferencesPage={
description="@var bool: Whether the option to enable/disable Page Previews should be hidden on Preferences page. False by default",
value=false,
},
PopupsOptInDefaultState={
description="@var string:['1'|'0'] Default Page Previews visibility for old accounts. Has to be a string as a compatibility with beta feature settings. For more info see @T191888",
value="1",
},
PopupsConflictingNavPopupsGadgetName={
description="@var string: Navigation popups gadget name",
value="Navigation_popups",
},
PopupsConflictingRefTooltipsGadgetName={
description="@var string: Name of a gadget that would cause duplicate reference preview popups. Known conflicting gadgets include \"ReferenceTooltips\", \"CiteTooltip\" alias \"RefTooltip\", \"ReferencePopups\", and \"tooltipRef\" (see T274353).",
value="ReferenceTooltips",
},
PopupsGateway={
description="Which gateway to use for fetching Popups data. Available options: [mwApiPlain|restbasePlain|restbaseHTML]. Full and always up to date list is available in src/gateway/index.js",
value="mwApiPlain",
},
PopupsRestGatewayEndpoint={
description="Specify a REST endpoint where summaries should be sourced from. Endpoint must meet the spec at https://www.mediawiki.org/wiki/Specs/Summary/1.2.0",
value="/api/rest_v1/page/summary/",
},
PopupsReferencePreviews={
description="Feature flag to enable or disable the separate popup type for references created via the Cite extension's &lt;ref&gt; tag.",
value=true,
},
PopupsStatsvSamplingRate={
description="Sampling rate for logging performance data to statsv.",
value=0,
},
PopupsPageDisabled={
description="List of pages that should not show Popups. Includes subpages. These pages are subject to the HTML cache policy of the wiki. A purge on these pages maybe needed to see the effect of this configuration variable. Every excluded page should be defined by a canonical name, eg: Special:Userlogin",
value={
"Special:CreateAccount","Special:GlobalRenameRequest","Special:Userlogin","Special:MergeAccount","Special:ChangeCredentials","Special:OAuthListConsumers","Special:GlobalUserRights","Special:Notifications","Special:UserRights","Special:Upload","Special:VipsTest","Special:ApiFeatureUsage","Special:ExpandTemplates","Special:GadgetUsage","Special:GraphSandbox","Special:TemplateSandbox","Special:MostLinkedFiles","Special:Book",},
},
PopupsTextExtractsIntroOnly={
description="Whether we should extract intro text only or full page text. This is only applicable when using PopupsGateway=mwApiPlain.",
value=true,
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
DefaultUserOptions={
popups="1",
popupsreferencepreviews="0",
["popups-reference-previews"]="0",
},
ConditionalUserOptions={
popups={
{
"1",{
"registered-after","20170816000000",},},{
"0",{
"named-user",},},},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Popups",
},
PreToClip={
name="PreToClip",
version="2.0.0-alpha",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]","Łukasz Paszke",},
url="https://www.mediawiki.org/wiki/Extension:PreToClip",
descriptionmsg="pretoclip-desc",
["license-name"]="GPL-3.0-only",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
HookHandlers={
PreToClipHooks={
class="MediaWiki\\Extension\\PreToClip\\Hooks",
},
},
Hooks={
OutputPageBeforeHTML="PreToClipHooks",
},
composer="mediawiki/pre-to-clip",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PreToClip",
},
PreferencesList={
name="PreferencesList",
version="0.1.0",
author={
"Ike Hecht",},
url="https://www.mediawiki.org/wiki/Extension:PreferencesList",
descriptionmsg="preferenceslist-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
PreferencesListAlias="PreferencesList.i18n.alias.php",
},
SpecialPages={
PreferencesList="SpecialPreferencesList",
},
AvailableRights={
"preferenceslist",},
GroupPermissions={
sysop={
preferenceslist=true,
},
},
composer="preferenceslist/preferences-list",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PreferencesList",
},
Prezi={
name="Prezi",
version="1.2",
author="Jack Phoenix",
url="https://www.mediawiki.org/wiki/Extension:Prezi",
descriptionmsg="prezi-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.34.0",
},
Hooks={
ParserFirstCallInit={
"PreziTag::registerHook",},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Prezi",
},
PrivateDomains={
name="PrivateDomains",
version="1.8.0",
author={
"Inez Korczyński","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:PrivateDomains",
descriptionmsg="privatedomains-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.36.0",
},
SpecialPages={
PrivateDomains="SpecialPrivateDomains",
},
ExtensionMessagesFiles={
PrivateDomainsAlias="PrivateDomains.alias.php",
},
HookHandlers={
default={
class="PrivateDomainsHooks",
services={
"UserGroupManager",},
},
},
Hooks={
AlternateEdit="default",
UserLoggedIn="PrivateDomainsHooks::onUserLoginComplete",
ConfirmEmailComplete="PrivateDomainsHooks::onUserLoginComplete",
},
AvailableRights={
"privatedomains",},
GroupPermissions={
["*"]={
edit=false,
minoredit=false,
move=false,
reupload=false,
["reupload-shared"]=false,
upload=false,
},
bureaucrat={
edit=true,
move=true,
upload=true,
privatedomains=true,
},
privatedomains={
edit=true,
minoredit=true,
move=true,
reupload=true,
["reupload-shared"]=true,
upload=true,
},
staff={
edit=true,
move=true,
upload=true,
privatedomains=true,
},
user={
edit=false,
minoredit=false,
move=false,
reupload=false,
["reupload-shared"]=false,
upload=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PrivateDomains",
},
PrivatePageProtection={
name="PrivatePageProtection",
version="1.2",
author={
"Daniel Kinzler","...",},
url="https://www.mediawiki.org/wiki/Extension:PrivatePageProtection",
descriptionmsg="privatepp-desc",
type="parserfunction",
requires={
MediaWiki="&gt;= 1.39.0",
},
ExtensionMessagesFiles={
PrivatePageProtectionMagic="PrivatePageProtection.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="PrivatePageProtection::onParserFirstCallInit",
getUserPermissionsErrorsExpensive="PrivatePageProtection::ongetUserPermissionsErrorsExpensive",
MultiContentSave="PrivatePageProtection::onMultiContentSave",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PrivatePageProtection",
},
PronunciationRecording={
name="PronunciationRecording",
version="1.2.0",
author={
"Rahul Maliakkal","Matthew Flaschen","Michael Dale",},
url="https://www.mediawiki.org/wiki/Extension:PronunciationRecording",
descriptionmsg="pronunciationrecording-desc",
type="specialpage",
["license-name"]="GPL-2.0-only AND MIT",
requires={
MediaWiki="&gt;= 1.34.0",
},
SpecialPages={
PronunciationRecording="SpecialPronunciationRecording",
},
ExtensionMessagesFiles={
PronunciationRecordingAlias="PronunciationRecording.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PronunciationRecording",
},
Proofread_Page={
name="ProofreadPage",
author={
"ThomasV","Thomas Pellissier Tanon",},
url="https://www.mediawiki.org/wiki/Extension:Proofread_Page",
descriptionmsg="proofreadpage_desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
},
GroupPermissions={
user={
pagequality=true,
["pagequality-validate"]=true,
},
},
GrantPermissions={
editpage={
pagequality=true,
["pagequality-validate"]=true,
},
},
AvailableRights={
"pagequality","pagequality-admin","pagequality-validate",},
DefaultUserOptions={
["proofreadpage-animation-time"]=0,
["proofreadpage-zoom-factor"]=1.2,
["proofreadpage-pagelist-use-visual-mode"]="1",
["proofreadpage-after-save-action"]="do-nothing",
["proofreadpage-show-dialog-before-every-save"]=1,
},
SpecialPages={
IndexPages="\\ProofreadPage\\Special\\SpecialProofreadPages",
PagesWithoutScans="\\ProofreadPage\\Special\\SpecialPagesWithoutScans",
},
APIListModules={
proofreadpagesinindex={
class="ProofreadPage\\Api\\ApiQueryPagesInIndex",
},
},
APIMetaModules={
proofreadinfo="\\ProofreadPage\\Api\\ApiQueryProofreadInfo",
},
APIPropModules={
proofread="\\ProofreadPage\\Api\\ApiQueryProofread",
imageforpage="\\ProofreadPage\\Api\\ApiQueryImageForPage",
defaultcontentforpage="\\ProofreadPage\\Api\\ApiQueryDefaultContentForPage",
},
ContentHandlers={
["proofread-page"]="\\ProofreadPage\\Page\\PageContentHandler",
["proofread-index"]="\\ProofreadPage\\Index\\IndexContentHandler",
},
TrackingCategories={
"proofreadpage_quality0_category","proofreadpage_quality1_category","proofreadpage_quality2_category","proofreadpage_quality3_category","proofreadpage_quality4_category","proofreadpage_nosuch_index_category","proofreadpage_nosuch_file_for_index_category",},
ExtensionMessagesFiles={
ProofreadPageAlias="ProofreadPage.alias.php",
ProofreadPageMagic="ProofreadPage.i18n.php",
},
ForeignResourcesDir="modules/lib",
QUnitTestModule={
localBasePath="tests/qunit",
packageFiles={
"index.js","TestPagelistModel.js","PagelistModel.test.js","PageModel.test.js",},
dependencies={
"ext.proofreadpage.page.editinsequence",},
},
Hooks={
SetupAfterCache="ProofreadPageInitHooks",
ParserFirstCallInit="ProofreadPageHooks",
GetBetaFeaturePreferences="ProofreadPage\\ProofreadPage::onGetBetaFeaturePreferences",
BeforePageDisplay="ProofreadPageHooks",
GetLinkColours="ProofreadPageHooks",
ImageOpenShowImageInlineBefore="ProofreadPageHooks",
LoadExtensionSchemaUpdates="schema",
OutputPageParserOutput="ProofreadPageHooks",
wgQueryPages="ProofreadPageHooks",
GetPreferences="ProofreadPageHooks",
CanonicalNamespaces="ProofreadPageHooks",
["SkinTemplateNavigation::Universal"]="ProofreadPageHooks",
ContentHandlerDefaultModelFor="ProofreadPageHooks",
EditFormPreloadText="ProofreadPageHooks",
MultiContentSave="ProofreadPageHooks",
InfoAction="ProofreadPageHooks",
ListDefinedTags="ProofreadPageHooks",
ChangeTagsListActive="ProofreadPageHooks",
RecentChange_save="ProofreadPageHooks",
ScribuntoExternalLibraries="ScribuntoHooks",
ScribuntoExternalLibraryPaths="ScribuntoHooks",
GetDoubleUnderscoreIDs="ProofreadPageHooks",
ParserAfterParse="ProofreadPageHooks",
},
HookHandlers={
ProofreadPageHooks={
class="ProofreadPage\\ProofreadPage",
services={
"MainConfig",},
},
ProofreadPageInitHooks={
class="ProofreadPage\\ProofreadPageInit",
services={
"MainConfig",},
},
ScribuntoHooks={
class="ProofreadPage\\ScribuntoHooks",
},
schema={
class="ProofreadPage\\SchemaHooks",
},
},
attributes={
Cite={
AllowedContentModels={
"proofread-page",},
},
CodeMirror={
ContentModels={
"proofread-page",},
},
VisualEditor={
PluginModules={
"ext.proofreadpage.ve.node.pages",},
},
},
ConfigRegistry={
proofreadpage="GlobalVarConfig::newInstance",
},
config={
ProofreadPageNamespaceIds={
value={
},
description="Array that contain the ids of namespaces used by ProofreadPage",
},
ProofreadPagePageSeparator={
value="&amp;#32;",
description="The separator between transcluded pages",
},
ProofreadPagePageJoiner={
value="-",
description="A character which causes words split over different pages to be joined",
},
ProofreadPagePageSeparatorPlaceholder={
value="__PAGESEPARATOR__",
description="Placeholder to mark the position of the page separator",
},
ProofreadPageUseStatusChangeTags={
value=false,
description="Use the new change tags for page statuses",
},
ProofreadPageEnableEditInSequence={
value=false,
description="Enable edit in sequence in Page: pages",
},
ProofreadPageBookNamespaces={
value={
0,},
description="Namespaces that are considered as book namespaces, mainspace is considered as book namespace by default",
},
},
callback="ProofreadPage\\ProofreadPage::onRegistration",
composer="mediawiki/proofread-page",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ProofreadPage",
},
Prop={
name="Prop",
version="1.0",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",
descriptionmsg="prop-desc",
["license-name"]="GPL-3.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
ExtensionMessagesFiles={
PropAlias="Prop.alias.php",
},
Hooks={
ParserFirstCallInit="Prop::onParserFirstCallInit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Prop",
},
PropertySuggester={
name="PropertySuggester",
version="3.2.1",
author={
"Christian Dullweber","Moritz Finke","Felix Niemeyer","Virginia Weidhaas",},
url="https://github.com/Wikidata-lib/PropertySuggester",
descriptionmsg="propertysuggester-desc",
["license-name"]="GPL-2.0-or-later",
type="wikibase",
requires={
MediaWiki="&gt;= 1.42",
},
APIModules={
wbsgetsuggestions="PropertySuggester\\GetSuggestions",
},
ExtensionMessagesFiles={
PropertySuggesterAlias="PropertySuggester.alias.php",
},
Hooks={
BeforePageDisplay="main",
LoadExtensionSchemaUpdates="schema",
ResourceLoaderRegisterModules="main",
},
HookHandlers={
main={
class="PropertySuggester\\Hooks",
},
schema={
class="PropertySuggester\\SchemaHooks",
},
},
attributes={
EventLogging={
Schemas={
PropertySuggesterServerSidePropertyRequest="/analytics/mediawiki/wd_propertysuggester/server_side_property_request/1.0.0",
PropertySuggesterClientSidePropertyRequest="/analytics/mediawiki/wd_propertysuggester/client_side_property_request/1.0.0",
},
},
},
config={
PropertySuggesterDeprecatedIds={
value={
},
},
PropertySuggesterClassifyingPropertyIds={
value={
},
},
PropertySuggesterInitialSuggestions={
value={
},
},
PropertySuggesterMinProbability={
value=0.05,
},
PropertySuggesterSchemaTreeUrl={
value="",
description="If the SchemaTree suggester is used, the value should contain the URL of the endpoint for the SchemaTree suggester",
},
PropertySuggesterABTestingState={
value=false,
description="The state of A/B testing. When set to true, additional properties will be suggested from both the PropertySuggester and the SchemaTree suggester, additionally, event logging will be enabled",
},
PropertySuggesterDefaultSuggester={
value="PropertySuggester",
description="When PropertySuggesterABTestingState is set to false additional properties will be suggested using PropertySuggesterDefaultSuggester. Value can be either PropertySuggester or SchemaTreeSuggester",
},
PropertySuggesterTestingRatio={
value=2,
description="Ratio of suggesters used when A/B testing is enabled. Value of 2 will result in an approximate 50/50 split, values greater than 2 will result in the PropertySuggester being used more often",
},
},
composer="propertysuggester/property-suggester",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PropertySuggester",
},
ProtectSite={
name="Protect Site",
version="0.5.3",
author={
"[http://en.uncyclopedia.co/wiki/User:Dawg Eric Johnston]","Chris Stafford","Jack Phoenix","Martyna Nowicka",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:ProtectSite",
descriptionmsg="protectsite-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.31.0",
},
config={
ProtectSiteExempt={
},
ProtectSiteDefaultTimeout="1 hour",
ProtectSiteLimit="1 week",
},
SpecialPages={
ProtectSite="ProtectSite",
},
ExtensionMessagesFiles={
ProtectSiteAliases="ProtectSite.alias.php",
},
AvailableRights={
"protectsite",},
GroupPermissions={
bureaucrat={
protectsite=true,
},
},
ExtensionFunctions={
"ProtectSite::setup",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ProtectSite",
},
ProtectionIndicator={
name="ProtectionIndicator",
author={
"Sohom Datta",},
version="0.1",
url="https://www.mediawiki.org/wiki/Extension:ProtectionIndicator",
descriptionmsg="protectionindicator-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
config={
ShowIconsOnMainPage={
description="Config to show icons on Main Page",
value=false,
},
ShowLogInPopup={
description="Config to show the latest protection entry in the popup",
value=true,
},
},
Hooks={
ArticleViewHeader="MediaWiki\\Extension\\ProtectionIndicator\\ProtectionIndicatorHooks::onArticleViewHeader",
ParserFirstCallInit="MediaWiki\\Extension\\ProtectionIndicator\\ProtectionIndicatorHooks::onParserFirstCallInit",
ContentAlterParserOutput="MediaWiki\\Extension\\ProtectionIndicator\\ProtectionIndicatorHooks::onContentAlterParserOutput",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ProtectionIndicator",
},
Push={
name="Push",
version="1.4.0 alpha",
author={
"[https://www.mediawiki.org/wiki/User:Jeroen_De_Dauw Jeroen De Dauw] for [http://www.wikiworks.com WikiWorks]",},
url="https://www.mediawiki.org/wiki/Extension:Push",
descriptionmsg="push-desc",
["license-name"]="GPL-3.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
APIModules={
push="ApiPush",
pushimages="ApiPushImages",
},
Actions={
push="PushAction",
},
AvailableRights={
"push","pushadmin","filepush","bulkpush",},
GroupPermissions={
autoconfirmed={
push=true,
bulkpush=true,
filepush=true,
},
sysop={
push=true,
bulkpush=true,
filepush=true,
},
pusher={
push=true,
},
bulkpusher={
bulkpush=true,
push=true,
},
filepusher={
filepush=true,
push=true,
},
},
SpecialPages={
Push="SpecialPush",
},
ExtensionMessagesFiles={
PushAlias="Push.alias.php",
},
Hooks={
["SkinTemplateNavigation::Universal"]="PushHooks::onSkinTemplateNavigationUniversal",
AdminLinks="PushHooks::addToAdminLinks",
},
config_prefix="eg",
config={
PushTargets={
description="List of targets that can be pushed to. The array keys are the target names, and the values are the target urls (path to api.php without the '/api.php' part). Example: $egPushTargets['English Wikipedia'] = 'http://en.wikipedia.org/w';",
value={
},
},
PushShowTab={
description="Show the push action as a tab (if not, it's displayed in the actions dropdown). This only works for skins with an actions dropdown. For others push will always appear as a tab.",
value=false,
},
PushIncTemplates={
description="You can choose to include templates when pushing a page.",
value=false,
},
PushIncFiles={
description="You can choose to push files used in a page.",
value=false,
},
PushAllowLogin={
description="Indicate if login options should be added to the push interface or not.",
value=true,
},
PushLoginUser={
description="Default login data. When set, the values will always be used when there is no login interface. If there is, they will be filled in as default.",
value="",
},
PushLoginPass={
description="Default login data. When set, the values will always be used when there is no login interface. If there is, they will be filled in as default.",
value="",
},
PushLoginDomain={
description="Default login data. When set, the values will always be used when there is no login interface. If there is, they will be filled in as default.",
value="",
},
PushLoginUsers={
description="Default login data per target. Overrides $egPushLoginUser and $egPushLoginPass when specified. Array keys should be the urls assigned in the $egPushTargets array. When set, the values will always be used when there is no login interface. If there is, they will be filled in as default.",
value={
},
},
PushLoginPasswords={
description="Default login data per target. Overrides $egPushLoginUser and $egPushLoginPass when specified. Array keys should be the urls assigned in the $egPushTargets array. When set, the values will always be used when there is no login interface. If there is, they will be filled in as default.",
value={
},
},
PushLoginDomains={
description="Default login data per target. Overrides $egPushLoginUser and $egPushLoginPass when specified. Array keys should be the urls assigned in the $egPushTargets array. When set, the values will always be used when there is no login interface. If there is, they will be filled in as default.",
value={
},
},
PushBulkWorkers={
description="The amount of push 'workers' (simultanious push requests) on Special:Push.",
value=3,
},
PushBatchSize={
description="The maximum amount of targets to push a page to in one go.",
value=3,
},
PushDirectFileUploads={
description="This is needed when pushing to a wiki that cannot access the source file (for example from a private wiki to a wiki on the internet).",
value=true,
},
PushVerifySSL={
description="Controls SSL certificates verification when performing connections to remote servers",
value=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Push",
},
PushAll={
name="PushAll",
version="2.1.1",
author={
"[https://www.mediawiki.org/wiki/User:Karima_Rafes Karima Rafes]",},
url="https://www.mediawiki.org/wiki/Extension:PushAll",
descriptionmsg="pushall-desc",
["license-name"]="GPL-3.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.39",
},
APIModules={
pushall="ApiPushAll",
pushallinfo="ApiPushAllInfo",
},
SpecialPages={
PushAll="SpecialPushAll",
},
ExtensionMessagesFiles={
PushAllAlias="src/ui/SpecialPushAll.alias.php",
},
Hooks={
MediaWikiPerformAction="PushAllHooks::onMediaWikiPerformAction",
["SkinTemplateNavigation::Universal"]="PushAllHooks::onSkinTemplateNavigationUniversal",
ListDefinedTags="PushAllHooks::onRegisterTags",
ChangeTagsListActive="PushAllHooks::onRegisterTags",
GetPreferences="PushAllHooks::onGetPreferences",
BeforePageDisplay="PushAllHooks::onBeforePageDisplay",
},
ConfigRegistry={
egPushAll="PushAll::makeConfig",
},
DefaultUserOptions={
["pushall-targets"]="",
["pushall-showtab"]=false,
["pushall-defaultIncTemplates"]=false,
["pushall-defaultIncAttachedNamespaces"]=false,
["pushall-defaultIncSubpages"]=false,
["pushall-defaultIncFiles"]=false,
},
config_prefix="egPushAll",
config={
AttachedNamespaces={
description="You can attach pages by their namespaces (such as discussion pages) when pushing a page.",
value={
},
merge_strategy="array_merge",
},
},
composer="bordercloud/pushall",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PushAll",
},
PushToWatch={
name="PushToWatch",
version="0.3.0",
author="cloudyks",
url="https://www.mediawiki.org/wiki/Extension:PushToWatch",
descriptionmsg="pushtowatch-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.37.0",
},
Hooks={
SkinAddFooterLinks="PushToWatch::onSkinAddFooterLinks",
},
AvailableRights={
"pushtowatch",},
GroupPermissions={
sysop={
pushtowatch=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/PushToWatch",
},
Quantcast={
name="Quantcast Tracking",
version="0.4.1",
author={
"Jack Phoenix",},
url="https://www.mediawiki.org/wiki/Extension:Quantcast",
descriptionmsg="quantcast-desc",
type="other",
config={
QuantcastTrackingExcludedGroups={
"staff",},
},
requires={
MediaWiki="&gt;= 1.36.0",
},
Hooks={
SkinAfterBottomScripts="QuantcastTracking::onSkinAfterBottomScripts",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Quantcast",
},
QuickGV={
name="QuickGV",
version="0.2.4",
author="[https://github.com/virus-warnning 吳政璋]",
url="https://www.mediawiki.org/wiki/Extension:QuickGV",
descriptionmsg="quickgv-desc",
["license-name"]="Apache-2.0",
type="parserhook",
requires={
MediaWiki="&gt;= 1.25",
},
callback="QuickGV::registerExtension",
Hooks={
ParserFirstCallInit="QuickGV::init",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/QuickGV",
},
QuickInstantCommons={
name="QuickInstantCommons",
version="1.5",
author={
"Brian Wolff",},
url="https://www.mediawiki.org/wiki/Extension:QuickInstantCommons",
descriptionmsg="quickinstantcommons-desc",
requires={
MediaWiki="&gt;= 1.42",
platform={
["ext-curl"]="*",
php="&gt;= 7.4.3",
},
},
["license-name"]="GPL-2.0-or-later",
type="other",
Hooks={
ContentGetParserOutput="main",
ImageOpenShowImageInlineBefore="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\QuickInstantCommons\\Hooks",
services={
"ConnectionProvider","MainConfig","RepoGroup",},
},
},
callback="MediaWiki\\Extension\\QuickInstantCommons\\Hooks::setup",
config={
UseQuickInstantCommons={
value=true,
description="Automatically setup wgForeignFileRepos to use this extension",
},
QuickInstantCommonsPrefetch={
value=true,
description="Use the previous revisions image list, and try and prefetch in background",
},
QuickInstantCommonsPrefetchMaxLimit={
value=1000,
description="Max number of images to prefetch",
},
},
composer="mediawiki/quickinstantcommons",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/QuickInstantCommons",
},
QuickResponse={
name="QuickResponse",
version="0.4.0",
author="Konarak Ratnakar",
url="https://www.mediawiki.org/wiki/Extension:QuickResponse",
descriptionmsg="quickresponse-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
BeforePageDisplay="QuickResponseHooks::onBeforePageDisplay",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/QuickResponse",
},
QuickSearchLookup={
name="QuickSearchLookup",
version="0.1.0",
author={
"Florian Schmidt",},
url="https://www.mediawiki.org/wiki/Extension:QuickSearchLookup",
descriptionmsg="quicksearchlookup-desc",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
Hooks={
ShowSearchHitTitle={
"QuickSearchLookupHooks::onShowSearchHitTitle",},
SpecialSearchSetupEngine={
"QuickSearchLookupHooks::onSpecialSearchSetupEngine",},
SpecialSearchResultsAppend={
"QuickSearchLookupHooks::onSpecialSearchResultsAppend",},
},
ConfigRegistry={
quicksearchlookup="GlobalVarConfig::newInstance",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/QuickSearchLookup",
},
QuickSurveys={
name="QuickSurveys",
version="1.4.0",
author={
"Bahodir Mansurov","Joaquin Hernandez","Jon Robson","Rob Moen",},
url="https://www.mediawiki.org/wiki/Extension:QuickSurveys",
descriptionmsg="quicksurveys-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
ConfigRegistry={
quicksurveys="GlobalVarConfig::newInstance",
},
QUnitTestModule={
localBasePath="tests/qunit",
remoteExtPath="QuickSurveys/tests/qunit",
templates={
["embedded-1.html"]="ext.quicksurveys.lib/templates/embedded-1.html",
["vector-1.html"]="ext.quicksurveys.lib/templates/vector-1.html",
["vector-2.html"]="ext.quicksurveys.lib/templates/vector-2.html",
["vector-3.html"]="ext.quicksurveys.lib/templates/vector-3.html",
["vector-4.html"]="ext.quicksurveys.lib/templates/vector-4.html",
["minerva-1.html"]="ext.quicksurveys.lib/templates/minerva-1.html",
["minerva-2.html"]="ext.quicksurveys.lib/templates/minerva-2.html",
["minerva-3.html"]="ext.quicksurveys.lib/templates/minerva-3.html",
["minerva-4.html"]="ext.quicksurveys.lib/templates/minerva-4.html",
},
scripts={
"ext.quicksurveys.lib/lib.test.js",},
dependencies={
"ext.quicksurveys.lib",},
},
attributes={
EventLogging={
Schemas={
QuickSurveysResponses="/analytics/legacy/quicksurveysresponses/1.1.0",
QuickSurveyInitiation="/analytics/legacy/quicksurveyinitiation/1.1.0",
},
},
},
Hooks={
BeforePageDisplay="main",
ResourceLoaderRegisterModules="main",
GetPreferences="QuickSurveys\\Hooks::onGetPreferences",
},
HookHandlers={
main={
class="QuickSurveys\\Hooks",
},
},
config={
QuickSurveysConfig={
description="Array of surveys eligible to be displayed on the wiki. Full documentation can be found in https://www.mediawiki.org/wiki/Extension:QuickSurveys#Configuration",
public=true,
value={
{
name="internal example survey",
type="internal",
questions={
{
layout="single-answer",
question="ext-quicksurveys-example-internal-survey-question",
description="ext-quicksurveys-example-internal-survey-description",
answers={
{
label="ext-quicksurveys-example-internal-survey-answer-positive",
freeformTextLabel="ext-quicksurveys-example-internal-survey-freeform-text-label",
},{
label="ext-quicksurveys-example-internal-survey-answer-neutral",
freeformTextLabel="ext-quicksurveys-example-internal-survey-freeform-text-label",
},{
label="ext-quicksurveys-example-internal-survey-answer-negative",
freeformTextLabel="ext-quicksurveys-example-internal-survey-freeform-text-label",
},},
},},
enabled=false,
coverage=0.5,
platforms={
desktop={
"stable",},
mobile={
"stable","beta",},
},
audience={
userAgent={
"Chrome","KaiOS",},
},
},{
name="external example survey",
type="external",
questions={
{
question="ext-quicksurveys-example-external-survey-question",
description="ext-quicksurveys-example-external-survey-description",
link="ext-quicksurveys-example-external-survey-link",
instanceTokenParameterName="parameterName",
yesMsg="ext-quicksurveys-example-external-survey-yes",
noMsg="ext-quicksurveys-example-external-survey-no",
},},
privacyPolicy="ext-quicksurveys-example-external-survey-privacy-policy",
surveyPreferencesDisclaimer="ext-quicksurveys-survey-change-preferences-disclaimer",
enabled=false,
coverage=0.5,
platforms={
desktop={
"stable",},
mobile={
"stable","beta",},
},
},},
},
},
DefaultUserOptions={
displayquicksurveys=1,
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/QuickSurveys",
},
Quiz={
name="Quiz",
version="1.2.1",
author="Louis-Rémi Babe",
url="https://www.mediawiki.org/wiki/Extension:Quiz",
descriptionmsg="quiz_desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
},
Hooks={
ParserFirstCallInit="main",
ParserAfterTidy="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Quiz\\Hooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Quiz",
},
QuizGame={
name="QuizGame",
version="4.3",
author={
"Aaron Wright","Ashish Datta","David Pean","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:QuizGame",
descriptionmsg="quizgame-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.43",
},
config={
CreateQuizThresholds={
},
QuizLogs=true,
},
callback="QuizGameHooks::onRegisterExtension",
SpecialPages={
QuizGameHome="QuizGameHome",
QuestionGameUpload="SpecialQuestionGameUpload",
QuizLeaderboard="QuizLeaderboard",
QuizRecalcStats="QuizRecalcStats",
ViewQuizzes="ViewQuizzes",
},
APIModules={
quizgame="ApiQuizGame",
quizgamevote="ApiQuizGameVote",
},
ExtensionMessagesFiles={
QuizGameAlias="includes/QuizGame.alias.php",
},
Hooks={
["SkinTemplateNavigation::Universal"]="QuizGameHooks::onSkinTemplateNavigationUniversal",
MakeGlobalVariablesScript="QuizGameHooks::onMakeGlobalVariablesScript",
LoadExtensionSchemaUpdates="QuizGameHooks::onLoadExtensionSchemaUpdates",
},
AvailableRights={
"quizadmin",},
GroupPermissions={
staff={
quizadmin=true,
},
sysop={
quizadmin=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/QuizGame",
},
RSS={
name="RSS feed",
author={
"Kellan Elliott-McCrea","mutante","Daniel Kinzler","Rdb","Mafs","Alxndr","Thomas Gries","Chris Reigrut","K001","Jack Phoenix","Jeroen De Dauw","Mark A. Hershberger",},
version="2.25.1",
requires={
MediaWiki="&gt;= 1.42",
},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:RSS",
descriptionmsg="rss-desc",
type="parserhook",
Hooks={
ParserFirstCallInit="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\RSS\\Hooks",
},
},
TrackingCategories={
"rss-tracking-category",},
config={
RSSCacheAge={
value=3600,
},
RSSCacheCompare={
value=false,
},
RSSFetchTimeout={
value=15,
},
RSSNamespaces={
value=nil,
},
RSSUrlWhitelist={
value={
},
},
RSSUrlNumberOfAllowedRedirects={
value=0,
},
RSSUserAgent={
value="MediaWikiRSS/2.25.1 (+https://www.mediawiki.org/wiki/Extension:RSS) / MediaWiki RSS extension",
},
RSSProxy={
value=false,
},
RSSDateDefaultFormat={
value="Y-m-d H:i:s",
},
RSSItemMaxLength={
value=false,
},
RSSAllowLinkTag={
value=false,
},
RSSAllowImageTag={
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RSS",
},
RandomArea={
name="RandomArea",
version="2.0.0",
author={
"Thomas Stock","Zoranzoki21",},
url="https://www.mediawiki.org/wiki/Extension:RandomArea",
descriptionmsg="randomarea-desc",
["license-name"]="CC-BY-NC-SA-2.5",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="RandomAreaHooks::init",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RandomArea",
},
RandomGameUnit={
name="RandomGameUnit",
version="2.8.0",
author={
"Aaron Wright","David Pean","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:RandomGameUnit",
descriptionmsg="game-unit-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
config={
RandomGameDisplay={
random_poll=true,
random_quiz=true,
random_picturegame=true,
},
RandomImageSize=50,
},
Hooks={
ParserFirstCallInit="RandomGameUnit::registerTag",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RandomGameUnit",
},
RandomImage={
name="RandomImage",
version="1.5.1",
author={
"Rob Church",},
url="https://www.mediawiki.org/wiki/Extension:RandomImage",
descriptionmsg="randomimage-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
callback="RandomImage::onRegistration",
config={
RandomImageNoCache=false,
},
Hooks={
ParserBeforePreprocess="RandomImage::stripHook",
ParserBeforeInternalParse="RandomImage::stripHook",
ParserFirstCallInit="RandomImage::onParserFirstCallInit",
},
requires={
MediaWiki="&gt;= 1.35",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RandomImage",
},
RandomImageByCategory={
name="RandomImageByCategory",
version="1.4.0",
author={
"Aaron Wright","David Pean","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:RandomImageByCategory",
descriptionmsg="randomimagebycategory-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.34.0",
},
Hooks={
ParserFirstCallInit="RandomImageByCategory::registerTag",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RandomImageByCategory",
},
Random_In_Category={
name="Random in category",
version="2.2.0",
author={
"VasilievVV","Sam Reed",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:Random_In_Category",
descriptionmsg="randomincategory-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.41",
},
SpecialPages={
RandomPageInCategory={
class="RandomPageInCategory",
services={
"DBLoadBalancerFactory","NamespaceInfo",},
},
},
ExtensionMessagesFiles={
RandomInCategoryAlias="RandomInCategory.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RandomInCategory",
},
Random_Pages={
name="RandomPages",
version="0.6.0",
author={
"Aurelian Oancea","Krishna Maheshwari","Zoranzoki21",},
url="https://www.mediawiki.org/wiki/Extension:Random_Pages",
descriptionmsg="randompages-desc",
["license-name"]="GPL-3.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="RandomPagesHooks::aoRandomPagesInit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RandomPages",
},
RandomSelection={
name="RandomSelection",
version="2.3.0",
author={
"Ross McClure","Jack Phoenix","...",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:RandomSelection",
descriptionmsg="randomselection-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
ExtensionMessagesFiles={
RandomSelectionMagic="RandomSelection.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="RandomSelection::register",
MagicWordwgVariableIDs="RandomSelection::variableIds",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RandomSelection",
},
ReadAloud={
name="ReadAloud",
version="1.1",
url="https://www.mediawiki.org/wiki/Extension:ReadAloud",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",
["license-name"]="GPL-3.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
Hooks={
BeforePageDisplay="ReadAloud::onBeforePageDisplay",
["SkinTemplateNavigation::Universal"]="ReadAloud::onSkinTemplateNavigationUniversal",
},
config={
ReadAloudNamespaces={
value={
0,},
merge_strategy="provide_default",
},
ReadAloudNearEdit={
value=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ReadAloud",
},
ReadingLists={
name="ReadingLists",
version="0.1.0",
author={
"Gergő Tisza",},
url="https://www.mediawiki.org/wiki/Extension:ReadingLists",
descriptionmsg="readinglists-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
ExtensionMessagesFiles={
ReadingListsAlias="ReadingLists.alias.php",
},
APIModules={
readinglists="MediaWiki\\Extension\\ReadingLists\\Api\\ApiReadingLists",
},
APIListModules={
readinglistentries={
class="MediaWiki\\Extension\\ReadingLists\\Api\\ApiQueryReadingListEntries",
factory="MediaWiki\\Extension\\ReadingLists\\Api\\ApiQueryReadingListEntries::factory",
},
},
APIMetaModules={
readinglists={
class="MediaWiki\\Extension\\ReadingLists\\Api\\ApiQueryReadingLists",
factory="MediaWiki\\Extension\\ReadingLists\\Api\\ApiQueryReadingLists::factory",
},
},
ConfigRegistry={
ReadingLists="GlobalVarConfig::newInstance",
},
SpecialPages={
ReadingLists="MediaWiki\\Extension\\ReadingLists\\SpecialReadingLists",
},
config={
ReadingListAndroidAppDownloadLink={
value="",
description="false or string representing an Android download link",
},
ReadingListiOSAppDownloadLink={
value="",
description="false or string representing an iOS download link",
},
ReadingListsWebAuthenticatedPreviews={
value=true,
description="Temporary feature flag for displaying private lists.",
},
ReadingListsAnonymizedPreviews={
value=false,
description="Whether previews of shared lists should be shown.",
},
ReadingListsDeveloperMode={
value=false,
description="Enable tools that make development easier.",
},
ReadingListsCentralWiki={
value=false,
description="Database name of the central wiki. This is unrelated to data storage and only used to identify which wiki should be used for jobs and such.",
},
ReadingListsMaxListsPerUser={
value=100,
description="Maximum allowed number of lists per user.",
},
ReadingListsMaxEntriesPerList={
value=1000,
description="Maximum allowed number of entries per list.",
},
ReadingListsDeletedRetentionDays={
value=30,
description="Purge deleted lists and list entries after this many days.",
},
},
Hooks={
APIQuerySiteInfoGeneralInfo="main",
LoadExtensionSchemaUpdates="schema",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\ReadingLists\\HookHandler",
},
schema={
class="MediaWiki\\Extension\\ReadingLists\\SchemaHookHandler",
},
},
ServiceWiringFiles={
"ServiceWiring.php",},
RestRoutes={
{
path="/readinglists/v0/lists/setup",
method="POST",
class="MediaWiki\\Extension\\ReadingLists\\Rest\\SetupHandler",
services={
"DBLoadBalancerFactory","MainConfig","CentralIdLookup",},
},{
path="/readinglists/v0/lists/teardown",
method="POST",
class="MediaWiki\\Extension\\ReadingLists\\Rest\\TeardownHandler",
services={
"DBLoadBalancerFactory","MainConfig","CentralIdLookup",},
},{
path="/readinglists/v0/lists",
method="GET",
class="MediaWiki\\Extension\\ReadingLists\\Rest\\ListsHandler",
services={
"DBLoadBalancerFactory","MainConfig","CentralIdLookup",},
},{
path="/readinglists/v0/lists/",
method="GET",
class="MediaWiki\\Extension\\ReadingLists\\Rest\\ListsHandler",
services={
"DBLoadBalancerFactory","MainConfig","CentralIdLookup",},
},{
path="/readinglists/v0/lists/{id}",
method="GET",
class="MediaWiki\\Extension\\ReadingLists\\Rest\\ListsIdHandler",
services={
"DBLoadBalancerFactory","MainConfig","CentralIdLookup",},
},{
path="/readinglists/v0/lists",
method="POST",
class="MediaWiki\\Extension\\ReadingLists\\Rest\\ListsCreateHandler",
services={
"DBLoadBalancerFactory","MainConfig","CentralIdLookup",},
},{
path="/readinglists/v0/lists/",
method="POST",
class="MediaWiki\\Extension\\ReadingLists\\Rest\\ListsCreateHandler",
services={
"DBLoadBalancerFactory","MainConfig","CentralIdLookup",},
},{
path="/readinglists/v0/lists/batch",
method="POST",
class="MediaWiki\\Extension\\ReadingLists\\Rest\\ListsCreateBatchHandler",
services={
"DBLoadBalancerFactory","MainConfig","CentralIdLookup",},
},{
path="/readinglists/v0/lists/{id}",
method="PUT",
class="MediaWiki\\Extension\\ReadingLists\\Rest\\ListsUpdateHandler",
services={
"DBLoadBalancerFactory","MainConfig","CentralIdLookup",},
},{
path="/readinglists/v0/lists/{id}",
method="DELETE",
class="MediaWiki\\Extension\\ReadingLists\\Rest\\ListsDeleteHandler",
services={
"DBLoadBalancerFactory","MainConfig","CentralIdLookup",},
},{
path="/readinglists/v0/lists/pages/{project}/{title}",
method="GET",
class="MediaWiki\\Extension\\ReadingLists\\Rest\\ListsPagesHandler",
services={
"DBLoadBalancerFactory","MainConfig","CentralIdLookup",},
},{
path="/readinglists/v0/lists/changes/since/{date}",
method="GET",
class="MediaWiki\\Extension\\ReadingLists\\Rest\\ListsChangesSinceHandler",
services={
"DBLoadBalancerFactory","MainConfig","CentralIdLookup",},
},{
path="/readinglists/v0/lists/{id}/entries",
method="GET",
class="MediaWiki\\Extension\\ReadingLists\\Rest\\ListsEntriesHandler",
services={
"DBLoadBalancerFactory","MainConfig","CentralIdLookup","ReverseInterwikiLookup",},
},{
path="/readinglists/v0/lists/{id}/entries/",
method="GET",
class="MediaWiki\\Extension\\ReadingLists\\Rest\\ListsEntriesHandler",
services={
"DBLoadBalancerFactory","MainConfig","CentralIdLookup","ReverseInterwikiLookup",},
},{
path="/readinglists/v0/lists/{id}/entries",
method="POST",
class="MediaWiki\\Extension\\ReadingLists\\Rest\\ListsEntriesCreateHandler",
services={
"DBLoadBalancerFactory","MainConfig","CentralIdLookup",},
},{
path="/readinglists/v0/lists/{id}/entries/",
method="POST",
class="MediaWiki\\Extension\\ReadingLists\\Rest\\ListsEntriesCreateHandler",
services={
"DBLoadBalancerFactory","MainConfig","CentralIdLookup",},
},{
path="/readinglists/v0/lists/{id}/entries/batch",
method="POST",
class="MediaWiki\\Extension\\ReadingLists\\Rest\\ListsEntriesCreateBatchHandler",
services={
"DBLoadBalancerFactory","MainConfig","CentralIdLookup",},
},{
path="/readinglists/v0/lists/{id}/entries/{entry_id}",
method="DELETE",
class="MediaWiki\\Extension\\ReadingLists\\Rest\\ListsEntriesDeleteHandler",
services={
"DBLoadBalancerFactory","MainConfig","CentralIdLookup",},
},},
DatabaseVirtualDomains={
"virtual-readinglists",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ReadingLists",
},
RealMe={
name="RealMe",
author={
"Taavi Väänänen",},
url="https://www.mediawiki.org/wiki/Extension:RealMe",
descriptionmsg="realme-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
},
config={
RealMeUserPageUrlLimit={
description="The limit for how many RealMe URLs can be configured on a single user page.",
value=5,
},
},
HookHandlers={
main={
class="MediaWiki\\Extension\\RealMe\\Hooks",
services={
"MainConfig","UrlUtils","UserFactory","UserOptionsLookup",},
},
},
Hooks={
BeforePageDisplay="main",
EditFilterMergedContent="main",
GetPreferences="main",
OutputPageParserOutput="main",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RealMe",
},
Realnames={
name="Realnames",
type="parserhook",
author={
"[https://ofbeaton.com/ Finlay Beaton]","...",},
version="0.8.0",
url="https://www.mediawiki.org/wiki/Extension:Realnames",
description="Displays a user's real name everywhere",
["license-name"]="BSD-2-Clause",
requires={
MediaWiki="&gt;= 1.39.0",
},
config={
RealnamesLinkStyle="paren-reverse",
RealnamesLinkStyleBlankName="standard",
RealnamesLinkStyleSameName="standard",
RealnamesBareStyle=false,
RealnamesBareStyleBlankName=false,
RealnamesBareStyleSameName=false,
RealnamesBlank=false,
RealnamesReplacements={
title=true,
subtitle=true,
personnal=true,
body=true,
},
RealnamesStyles={
standard="$1$2$4",
append="$1$2 [$3]$4",
replace="$1$3$4",
reverse="$1$3 [$2]$4",
dash="$1$2 &amp;ndash; $3$4",
["dash-reverse"]="$1$3$4 &amp;ndash; $2",
["paren-append"]="$1$2 ($3)$4",
["paren-reverse"]="$1$3 ($2)$4",
},
RealnamesSmart={
same=true,
},
RealnamesNamespaces={
},
},
Hooks={
BeforePageDisplay="\\MediaWiki\\Extension\\Realnames\\Realnames::hookBeforePageDisplay",
["SkinTemplateNavigation::Universal"]="\\MediaWiki\\Extension\\Realnames\\Realnames::onSkinTemplateNavigation__Universal",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Realnames",
},
ReassignEdits={
name="ReassignEdits",
version="0.3.0",
author={
"Tim Weyer",},
url="https://www.mediawiki.org/wiki/Extension:ReassignEdits",
descriptionmsg="reassignedits-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.3",
},
AvailableRights={
"reassignedits",},
GroupPermissions={
bureaucrat={
reassignedits=true,
},
},
SpecialPages={
ReassignEdits="SpecialReassignEdits",
},
ExtensionMessagesFiles={
ReassignEditsAliases="ReassignEdits.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ReassignEdits",
},
RedirectManager={
name="RedirectManager",
author={
"[https://samwilson.id.au/ Sam Wilson]",},
url="https://www.mediawiki.org/wiki/Extension:RedirectManager",
descriptionmsg="redirectmanager-desc",
["license-name"]="GPL-3.0-or-later",
type="other",
version="1.1.2",
requires={
MediaWiki="&gt;= 1.40.0",
},
HookHandlers={
RedirectManagerHooks={
class="MediaWiki\\Extension\\RedirectManager\\Hooks",
},
},
Hooks={
["EditPage::showEditForm:initial"]="RedirectManagerHooks",
ListDefinedTags="RedirectManagerHooks",
ChangeTagsListActive="RedirectManagerHooks",
ChangeTagsAllowedAdd="RedirectManagerHooks",
},
APIModules={
redirectmanager={
class="MediaWiki\\Extension\\RedirectManager\\Api",
services={
"ContentHandlerFactory","ContentLanguage","WikiPageFactory",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RedirectManager",
composer="samwilson/redirectmanager",
},
RefreshSpecial={
name="RefreshSpecial",
version="1.6.0",
author={
"Bartek Łapiński","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:RefreshSpecial",
descriptionmsg="refreshspecial-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.32.0",
},
SpecialPages={
RefreshSpecial="RefreshSpecial",
},
ExtensionMessagesFiles={
RefreshSpecialAlias="RefreshSpecial.alias.php",
},
AvailableRights={
"refreshspecial",},
GroupPermissions={
bureaucrat={
refreshspecial=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RefreshSpecial",
},
RegexBlock={
name="RegexBlock",
version="1.8.0",
author={
"Bartek Łapiński","Tomasz Klim","Piotr Molski","Adrian Wieczorek","Alexandre Emsenhuber","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:RegexBlock",
descriptionmsg="regexblock-desc",
type="antispam",
requires={
MediaWiki="&gt;=1.35.3",
},
config={
ContactLink="Special:Contact",
RegexBlockDatabase=false,
},
SpecialPages={
RegexBlock="RegexBlockForm",
},
ExtensionMessagesFiles={
RegexBlockAliases="RegexBlock.alias.php",
},
APIModules={
regexblock={
class="ApiRegexBlock",
services={
"UserNameUtils",},
},
regexunblock="ApiRegexUnblock",
},
Hooks={
ContributionsToolLinks="RegexBlockHooks::onContributionsToolLinks",
GetUserBlock="RegexBlockHooks::onGetUserBlock",
LoadExtensionSchemaUpdates="RegexBlockHooks::onLoadExtensionSchemaUpdates",
},
AvailableRights={
"regexblock","regexblock-exempt",},
GroupPermissions={
staff={
regexblock=true,
["regexblock-exempt"]=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RegexBlock",
},
RegexFunctions={
name="RegexFunctions",
version="2.0.0",
author="Ryan Schmidt",
url="https://www.mediawiki.org/wiki/Extension:RegexFunctions",
descriptionmsg="regexfunctions-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
ExtensionMessagesFiles={
RegexFunctionsMagic="RegexFunctions.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="ExtRegexFunctions::onParserFirstCallInit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RegexFunctions",
},
RegularTooltips={
name="RegularTooltips",
version="1.0.0",
author={
"Sanjay Thiyagarajan",},
url="https://www.mediawiki.org/wiki/Extension:RegularTooltips",
descriptionmsg="regulartooltips-desc",
type="parserhook",
ExtensionMessagesFiles={
RegularTooltipsMagic="RegularTooltips.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="RegularTooltipsHooks::registerParserFunctions",
},
requires={
MediaWiki="&gt;= 1.35.0",
},
composer="mediawiki/regulartooltips",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RegularTooltips",
},
RelMicroformat={
name="RelMicroformat",
["license-name"]="GPL-3.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:RelMicroformat",
author={
"Kunal Mehta",},
descriptionmsg="relmicroformat-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
SkinBuildSidebar="RelMicroformat",
},
HookHandlers={
RelMicroformat={
class="MediaWiki\\RelMicroformat\\Hooks",
},
},
config={
RelMicroformatUrls={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RelMicroformat",
},
RelatedArticles={
name="RelatedArticles",
version="3.1.0",
author={
"[https://www.mediawiki.org/wiki/Reading/Web/Team Readers Web Team]","Roland Unger","Hans Musil","Matthias Mullie","Sam Smith",},
url="https://www.mediawiki.org/wiki/Extension:RelatedArticles",
descriptionmsg="relatedarticles-desc",
["license-name"]="GPL-2.0-only",
type="betafeatures",
requires={
MediaWiki="&gt;= 1.42",
},
ExtensionMessagesFiles={
RelatedArticlesMagic="RelatedArticles.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="main",
OutputPageParserOutput="main",
MakeGlobalVariablesScript="main",
BeforePageDisplay="main",
ResourceLoaderGetConfigVars="main",
SkinAfterContent="main",
},
HookHandlers={
main={
class="RelatedArticles\\Hooks",
services={
"ConfigFactory",},
optional_services={
"DisambiguatorLookup",},
},
},
QUnitTestModule={
localBasePath="",
remoteExtPath="RelatedArticles",
packageFiles={
"tests/qunit/index.js","resources/ext.relatedArticles.readMore/RelatedPagesGateway.js","tests/qunit/RelatedPagesGateway.test.js",},
},
config={
RelatedArticlesUseCirrusSearchApiUrl={
description="During development use a different API for sourcing related articles.",
value="/w/api.php",
},
RelatedArticlesCardLimit={
description="Maximum number of articles that should be shown in RelatedArticles widget. This limit is derived from limits in TextExtracts and PageImages extensions. Number should be between 1 and 20.",
value=5,
},
RelatedArticlesUseCirrusSearch={
value=false,
},
RelatedArticlesOnlyUseCirrusSearch={
value=false,
},
RelatedArticlesDescriptionSource={
description="Source to get the page description from (string, or false to not fetch the description). Possible values: wikidata, textextracts, pagedescription.",
value=false,
},
RelatedArticlesFooterAllowedSkins={
description="List of skin names (e.g. 'minerva') where related articles will be shown in the footer.",
value={
},
},
},
ConfigRegistry={
RelatedArticles="GlobalVarConfig::newInstance",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RelatedArticles",
},
RelatedSites={
name="RelatedSites",
version="2.0",
author={
"Roland Unger","Hans Musil","Matthias Mullie",},
url="https://www.mediawiki.org/wiki/Extension:RelatedSites",
descriptionmsg="relatedsites-desc",
type="parserhook",
["license-name"]="GPL-2.0-only",
requires={
MediaWiki="&gt;= 1.34.0",
},
Hooks={
ParserAfterTidy="RelatedSites::onParserAfterTidy",
OutputPageParserOutput="RelatedSites::onOutputPageParserOutput",
SidebarBeforeOutput="RelatedSites::onSidebarBeforeOutput",
},
TrackingCategories={
"relatedsites-tracking-category",},
config={
RelatedSitesPrefixes={
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RelatedSites",
},
Renameuser={
name="Renameuser",
author={
"Ævar Arnfjörð Bjarmason","Aaron Schulz",},
url="https://www.mediawiki.org/wiki/Extension:Renameuser",
description="Renameuser compatibility stub",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.40.0",
},
callback="MediaWiki\\Extension\\Renameuser\\RenameUserSetup::setup",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Renameuser",
},
ReplaceSet={
name="ReplaceSet",
version="1.6.0",
author={
"[https://www.mediawiki.org/wiki/User:Dantman Daniel Friesen]","...",},
url="https://www.mediawiki.org/wiki/Extension:ReplaceSet",
descriptionmsg="replaceset-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.34.0",
},
ExtensionMessagesFiles={
ReplaceSetMagic="ReplaceSet.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="ReplaceSetHooks::efReplaceSetRegisterParser",
},
config={
["_prefix"]="eg",
ReplaceSetCallLimit=25,
ReplaceSetPregLimit=50,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ReplaceSet",
},
Replace_Text={
name="Replace Text",
version="1.8",
author={
"Yaron Koren","Niklas Laxström","...",},
url="https://www.mediawiki.org/wiki/Extension:Replace_Text",
descriptionmsg="replacetext-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42",
},
type="specialpage",
GroupPermissions={
sysop={
replacetext=true,
},
},
AvailableRights={
"replacetext",},
SpecialPages={
ReplaceText={
class="MediaWiki\\Extension\\ReplaceText\\SpecialReplaceText",
services={
"HookContainer","DBLoadBalancerFactory","ContentLanguage","JobQueueGroup","LinkRenderer","MovePageFactory","NamespaceInfo","PermissionManager","ReadOnlyMode","SearchEngineConfig","SlotRoleStore","UserFactory","UserOptionsLookup","WatchlistManager","WikiPageFactory",},
},
},
JobClasses={
replaceText={
class="MediaWiki\\Extension\\ReplaceText\\Job",
services={
"MovePageFactory","PermissionManager","UserFactory","WatchlistManager","WikiPageFactory",},
},
},
ExtensionMessagesFiles={
ReplaceTextAlias="ReplaceText.i18n.alias.php",
},
Hooks={
AdminLinks="adminlinks",
SpecialMovepageAfterMove="main",
UserGetReservedNames="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\ReplaceText\\Hooks",
services={
"MainConfig","SpecialPageFactory",},
},
adminlinks={
class="MediaWiki\\Extension\\ReplaceText\\AdminLinksHooks",
},
},
config={
ReplaceTextResultsLimit=250,
ReplaceTextUser=nil,
},
composer="mediawiki/replace-text",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ReplaceText",
},
Report={
name="Report",
author={
"Ken Hilton",},
url="https://www.mediawiki.org/wiki/Extension:Report",
descriptionmsg="report-desc",
["license-name"]="GPL-3.0-only",
type="specialpage",
AvailableRights={
"report","handle-reports",},
SpecialPages={
Report="MediaWiki\\Extension\\Report\\SpecialReport",
HandleReports="MediaWiki\\Extension\\Report\\SpecialHandleReports",
},
Hooks={
LoadExtensionSchemaUpdates="MediaWiki\\Extension\\Report\\ReportHooks::onLoadExtensionSchemaUpdates",
HistoryTools="MediaWiki\\Extension\\Report\\ReportHooks::insertReportLink",
DiffTools="MediaWiki\\Extension\\Report\\ReportHooks::insertReportLink",
BeforePageDisplay="MediaWiki\\Extension\\Report\\ReportHooks::reportsAwaitingNotice",
},
GroupPermissions={
user={
report=true,
},
["*"]={
report=false,
["handle-reports"]=false,
},
sysop={
["handle-reports"]=true,
},
},
ExtensionMessagesFiles={
ReportAlias="Report.i18n.alias.php",
},
requires={
MediaWiki="&gt;= 1.35.0",
platform={
php="&gt;= 5.6",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Report",
},
ReportIncident={
name="ReportIncident",
author={
"[https://www.mediawiki.org/wiki/Trust_and_Safety_Tools Wikimedia Trust and Safety Tools team]","Ellen Rayfield","Essex Igyan","Julia Kieserman",},
url="https://www.mediawiki.org/wiki/Extension:ReportIncident",
descriptionmsg="reportincident-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
config={
ReportIncidentReportButtonEnabled={
value=true,
description="Whether to display the report button on configured namespaces.",
},
ReportIncidentApiEnabled={
value=true,
description="When set to true, the REST API endpoint for ingesting reports is available.",
},
ReportIncidentDeveloperMode={
value=true,
description="When set to true, some developer-friendly features are enabled to facilitate testing and QA.",
},
ReportIncidentEnabledNamespaces={
value={
1,3,5,7,9,11,13,15,},
description="Determines what namespaces the Incident Reporting tool will render within. The default is 3 which defaults to the NS_USER_TALK namespace",
},
ReportIncidentAdministratorsPage={
value="Main_Page",
description="The page the report incident form links to when specifying who will review an incident report. This value will be passed to mw.util.getUrl(); a DB prefix is allowed, e.g. Wikipedia:Administrators",
},
ReportIncidentRecipientEmails={
value={
},
description="An array of email addresses that should receive reports sent via the incident report system. An empty array means that ReportIncident will not attempt to send any emails when a user files an incident report.",
},
ReportIncidentEmailFromAddress={
value="",
description="Email to use as the 'from' address for emails that ReportIncident sends. If not set, ReportIncident cannot send emails when users file an incident report.",
},
ReportIncidentMinimumAccountAgeInSeconds={
value=10800,
description="User accounts must be older than this value in order to submit a report. The default is 3 hours.",
},
},
AvailableRights={
"reportincident",},
GroupPermissions={
user={
reportincident=true,
},
},
HookHandlers={
ReportIncidentHooks={
class="MediaWiki\\Extension\\ReportIncident\\Hooks\\Handlers\\MainHooksHandler",
services={
"ReportIncidentController",},
},
DiscussionToolsHooks={
class="MediaWiki\\Extension\\ReportIncident\\Hooks\\Handlers\\DiscussionToolsHandler",
services={
"ReportIncidentController",},
},
},
Hooks={
BeforePageDisplay="ReportIncidentHooks",
SidebarBeforeOutput="ReportIncidentHooks",
["SkinTemplateNavigation::Universal"]="ReportIncidentHooks",
DiscussionToolsAddOverflowMenuItems="DiscussionToolsHooks",
},
RateLimits={
reportincident={
["&amp;can-bypass"]=false,
user={
5,86400,},
newbie={
1,86400,},
},
},
RestRoutes={
{
path="/reportincident/v0/report",
method="POST",
class="MediaWiki\\Extension\\ReportIncident\\Api\\Rest\\Handler\\ReportHandler",
services={
"MainConfig","RevisionStore","UserNameUtils","UserIdentityLookup","ReportIncidentManager","UserFactory","ContentLanguage",},
},},
ServiceWiringFiles={
"src/ServiceWiring.php",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ReportIncident",
},
RevisionSlider={
name="RevisionSlider",
author={
"[https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes Wikimedia Deutschland Technical Wishes Team]","Addshore","Leszek Manicki","Jakob Warkotsch","Tobias Gritschacher","Christoph Jauera",},
url="https://www.mediawiki.org/wiki/Extension:RevisionSlider",
namemsg="revisionslider",
descriptionmsg="revisionslider-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
},
ConfigRegistry={
revisionslider="GlobalVarConfig::newInstance",
},
QUnitTestModule={
scripts={
"QUnit.revisionSlider.testOrSkip.js","RevisionSlider.Revision.test.js","RevisionSlider.Pointer.test.js","RevisionSlider.PointerView.test.js","RevisionSlider.Slider.test.js","RevisionSlider.SliderView.test.js","RevisionSlider.RevisionList.test.js","RevisionSlider.RevisionListView.test.js","RevisionSlider.DiffPage.test.js","RevisionSlider.HelpDialog.test.js",},
dependencies={
"ext.RevisionSlider.Slider","jquery.ui","oojs-ui",},
localBasePath="tests/qunit",
remoteExtPath="RevisionSlider/tests/qunit",
},
Hooks={
DifferenceEngineViewHeader="RevisionSliderHooks",
GetPreferences="RevisionSliderHooks",
},
HookHandlers={
RevisionSliderHooks={
class="MediaWiki\\Extension\\RevisionSlider\\RevisionSliderHooks",
services={
"ConfigFactory","UserOptionsLookup","StatsdDataFactory",},
},
},
DefaultUserOptions={
["revisionslider-disable"]=0,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RevisionSlider",
},
RightFunctions={
name="RightFunctions",
version="1.13.0",
author={
"Ryan Schmidt","...",},
url="https://www.mediawiki.org/wiki/Extension:RightFunctions",
descriptionmsg="rightfunctions-desc",
["license-name"]="Unlicense",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
RightFunctionsMagic="RightFunctions.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="ExtRightFunctions::onParserFirstCallInit",
},
config={
RightFunctionsUserGroups={
value={
"*","user","autoconfirmed","sysop","bureaucrat",},
},
RightFunctionsAllowExpensiveQueries={
value=true,
},
RightFunctionsAllowCaching={
value=false,
},
RightFunctionsDisableFunctions={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/RightFunctions",
},
S5SlideShow={
name="S5SlideShow",
namemsg="s5slide-name",
descriptionmsg="s5slide-desc",
version="0.4",
["license-name"]="GPL-2.0+",
type="parserhook",
url="https://www.mediawiki.org/wiki/Extension:S5SlideShow",
requires={
MediaWiki="&gt;= 1.32.0",
},
author={
"Vitaliy Filippov","[http://www.bitplan.com/index.php/Wolfgang_Fahl Wolfgang Fahl/ProfiWiki]","[http://hexmode.com Mark A. Hershberger]",},
Actions={
slide="S5SlideShow\\Action",
},
Hooks={
ImageBeforeProduceHTML={
"S5SlideShow\\S5SlideShowHooks::ImageBeforeProduceHTML",},
ParserFirstCallInit={
"S5SlideShow\\S5SlideShowHooks::ParserFirstCallInit",},
ArticleFromTitle={
"S5SlideShow\\S5SlideShowHooks::ArticleFromTitle",},
AlternateEdit={
"S5SlideShow\\S5SlideShowHooks::AlternateEdit",},
MagicWordwgVariableIDs={
"S5SlideShow\\S5SlideShowHooks::MagicWordwgVariableIDs",},
ParserGetVariableValueSwitch={
"S5SlideShow\\S5SlideShowHooks::ParserGetVariableValueSwitch",},
},
SpecialPages={
S5SlideShow="S5SlideShow\\SpecialS5SlideShow",
},
ExtensionMessagesFiles={
S5SlideShowMagic="src/S5SlideShow.i18n.magic.php",
S5SlideShowAlias="src/S5SlideShow.i18n.alias.php",
},
config={
["_prefix"]="egS5",
Scaled=false,
DefaultStyle="default",
BrowserScaleHack=true,
SlideTemplateFile="extensions/S5SlideShow/slide.htm",
SlideCenterMark="(center)",
SlideHeadingMark=false,
SlideIncMark="(step)",
},
composer="mediawiki/s5-slide-show",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/S5SlideShow",
},
SVGEdit={
name="SVGEdit",
author={
"Brion Vibber",},
url="https://www.mediawiki.org/wiki/Extension:SVGEdit",
descriptionmsg="svgedit-desc",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
BeforePageDisplay="SVGEditHooks::beforePageDisplay",
MakeGlobalVariablesScript="SVGEditHooks::makeGlobalVariablesScript",
},
config={
SVGEditEditor={
value="http://svg-edit.googlecode.com/svn/trunk/editor/svg-editor.html",
},
SVGEditInline={
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SVGEdit",
},
Safe_Delete={
name="Safe Delete",
version="1.2",
author="[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]",
url="https://www.mediawiki.org/wiki/Extension:Safe_Delete",
descriptionmsg="safedelete-desc",
type="special",
requires={
MediaWiki="&gt;= 1.35.0",
},
SpecialPages={
SafeDelete="SafeDelete",
},
ExtensionMessagesFiles={
SafeDeleteAlias="i18n/SafeDelete.alias.php",
},
Hooks={
["SkinTemplateNavigation::Universal"]="SafeDelete::checkLink",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SafeDelete",
},
SandboxLink={
name="SandboxLink",
author={
"Bartosz Dziewoński",},
url="https://www.mediawiki.org/wiki/Extension:SandboxLink",
descriptionmsg="sandboxlink-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\SandboxLink\\Hooks",
services={
"MainConfig",},
},
},
Hooks={
SkinPreloadExistence={
"main",},
["SkinTemplateNavigation::Universal"]={
"main",},
},
config={
SandboxLinkDisableAnon={
value=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SandboxLink",
},
Sarcasm={
name="Sarcasm",
version="1.2.0",
author="[http://sturmkrieg.de/User:Inquisitor_Ehrenstein Inquisitor Ehrenstein]",
url="https://www.mediawiki.org/wiki/Extension:Sarcasm",
descriptionmsg="sarcasm-desc",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="Sarcasm::wfSarcasmParserInit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Sarcasm",
},
SaveSpinner={
name="SaveSpinner",
author={
"WikiTeq Team",},
["license-name"]="MIT",
url="https://www.mediawiki.org/wiki/Extension:SaveSpinner",
descriptionmsg="savespinner-desc",
type="extension",
requires={
MediaWiki="&gt;= 1.39.0",
},
HookHandlers={
SaveSpinner={
class="MediaWiki\\Extension\\SaveSpinner\\SaveSpinnerHooks",
},
},
Hooks={
["EditPage::showEditForm:initial"]={
handler="SaveSpinner",
},
["PageForms::RenderingEnd"]={
"MediaWiki\\Extension\\SaveSpinner\\SaveSpinnerHooks::onRenderingEnd",},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SaveSpinner",
},
Score={
name="Score",
version="0.3.0",
author={
"Alexander Klauer","Étienne Beaulé",},
url="https://www.mediawiki.org/wiki/Extension:Score",
descriptionmsg="score-desc",
["license-name"]="GPL-3.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
},
Hooks={
ParserFirstCallInit="main",
SoftwareInfo="main",
WikibaseClientDataTypes={
"MediaWiki\\Extension\\Score\\Hooks::onWikibaseClientDataTypes",},
WikibaseRepoDataTypes={
"MediaWiki\\Extension\\Score\\Hooks::onWikibaseRepoDataTypes",},
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Score\\Hooks",
services={
"MainConfig",},
},
},
config={
ScoreTrim={
value=nil,
description="Set to false to keep margins on the generated PNG files",
},
ScoreUseSvg={
value=false,
description="Set to true to output SVG images with PNG fallback. Requires LilyPond version &gt;= 2.23.82 with libcairo support",
},
ScoreLilyPond={
value="/usr/bin/lilypond",
},
ScoreAbc2Ly={
value="/usr/bin/abc2ly",
},
ScoreFluidsynth={
value="/usr/bin/fluidsynth",
},
ScoreSoundfont={
value="/usr/share/sounds/sf2/FluidR3_GM.sf2",
},
ScoreLame={
value="/usr/bin/lame",
},
ScoreGhostscript={
value="/usr/bin/gs",
},
ScoreImageMagickConvert={
value=false,
description="Path to ImageMagick's convert command. If not set, will fallback to $wgImageMagickConvertCommand",
},
ScoreEnvironment={
value={
},
description="A name/value map of environment variables to be passed to all shell commands",
},
ScoreSafeMode={
value=true,
description="Must be set to false for LilyPond versions 2.23.12 or newer (safe mode was removed in 2.23.12 as it could no longer be guaranteed safe). For older versions, set this to true to enable LilyPond's safe mode (default). NOTE: if set to false, all inputs should be sanitized and/or trusted, and the LilyPond binary must be appropriately sandboxed.",
},
ScoreDisableExec={
value=false,
description="Set this to true to disable all new rendering of scores",
},
ScoreLilyPondFakeVersion={
value=false,
description="Set this to a version string which will be used even if exec is disabled",
},
ScorePath={
value=false,
},
ScoreDirectory={
value=false,
},
ScoreFileBackend={
value=false,
},
ScoreMaxLength={
value=400,
},
ScoreOfferSourceDownload={
value=false,
description="Enable a UI for downloading .ly files generated by Score. This is insecure since .ly files may contain scripts which are executed when the file is rendered on the user's computer.",
},
MusicalNotationEnableWikibaseDataType={
value=false,
},
WikibaseMusicalNotationLineWidthInches={
value=0,
},
ScoreDebugOutput={
value=false,
description="Show the full command output when a shell command fails",
},
},
TrackingCategories={
"score-deprecated-category","score-use-category","score-error-category",},
attributes={
VisualEditor={
PluginModules={
"ext.score.visualEditor",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Score",
},
Screenplay={
name="Screenplay",
version="0.6",
author={
"Bartosz Dziewoński","Calimonius the Estrange",},
url="https://www.mediawiki.org/wiki/Extension:Screenplay",
descriptionmsg="screenplay-desc",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.39.0",
},
type="parserhook",
TrackingCategories={
"screenplay-tracking-category",},
config={
ScreenplayTokens={
value=false,
path=false,
description="Don't use this.",
public=false,
},
},
Hooks={
ParserFirstCallInit={
"ScreenplayParser::init",},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Screenplay",
},
Scribunto={
name="Scribunto",
author={
"Victor Vasiliev","Tim Starling","Brad Jorsch",},
url="https://www.mediawiki.org/wiki/Extension:Scribunto",
descriptionmsg="scribunto-desc",
["license-name"]="GPL-2.0-or-later AND MIT",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
},
APIModules={
["scribunto-console"]={
class="MediaWiki\\Extension\\Scribunto\\ApiScribuntoConsole",
services={
"ParserFactory",},
},
},
ContentHandlers={
Scribunto="MediaWiki\\Extension\\Scribunto\\ScribuntoContentHandler",
},
TrackingCategories={
"scribunto-common-error-category","scribunto-module-with-errors-category",},
ExtensionMessagesFiles={
ScribuntoMagic="Scribunto.magic.php",
ScribuntoNamespaces="Scribunto.namespaces.php",
},
Hooks={
SoftwareInfo="main",
ParserFirstCallInit="main",
ParserLimitReportPrepare="main",
ParserLimitReportFormat="main",
ParserClearState="main",
ParserCloned="main",
CodeEditorGetPageLanguage="codeeditor",
["EditPage::showStandardInputs:options"]="main",
["EditPage::showReadOnlyForm:initial"]="main",
EditPageBeforeEditButtons="main",
EditFilterMergedContent="main",
ArticleViewHeader="main",
ContentHandlerDefaultModelFor="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Scribunto\\Hooks",
services={
"MainConfig",},
},
codeeditor={
class="MediaWiki\\Extension\\Scribunto\\CodeEditorHooks",
services={
"MainConfig",},
},
},
namespaces={
{
id=828,
constant="NS_MODULE",
name="Module",
subpages=true,
},{
id=829,
constant="NS_MODULE_TALK",
name="Module_talk",
subpages=true,
},},
callback="MediaWiki\\Extension\\Scribunto\\Hooks::onRegistration",
config={
ScribuntoDefaultEngine={
description="The name of the default script engine",
value="luaautodetect",
},
ScribuntoEngineConf={
description={
"Configuration for each script engine. Parameters:"," * profilerPeriod - The profiler sample period, or false to disable the profiler"," * allowEnvFuncs - Set this to true to allow setfenv() and getfenv() in user code. Note that these functions have been removed in Lua 5.2. Scribunto does not yet support Lua 5.2, but we expect support will be implemented in the future, and there is no guarantee that a simulation of setfenv() and getfenv() will be provided"," * maxLangCacheSize - The maximum number of languages about which data can be requested. The cost is about 1.5MB of memory usage per language on default installations (during recache), but if recaching is disabled with `$wgLocalisationCacheConf['manualRecache'] = false;` then memory usage is perhaps 10x smaller"," * errorFile - A filename to act as the destination for stderr from the Lua binary. This may provide useful error information if Lua fails to run. Set this to null to discard stderr output"," * luaPath - The location of the Lua binary, or null to use the bundled binary",},
value={
luasandbox={
class="MediaWiki\\Extension\\Scribunto\\Engines\\LuaSandbox\\LuaSandboxEngine",
memoryLimit=52428800,
cpuLimit=7,
profilerPeriod=0.02,
allowEnvFuncs=false,
maxLangCacheSize=30,
},
luastandalone={
class="MediaWiki\\Extension\\Scribunto\\Engines\\LuaStandalone\\LuaStandaloneEngine",
errorFile=nil,
luaPath=nil,
memoryLimit=52428800,
cpuLimit=7,
allowEnvFuncs=false,
maxLangCacheSize=30,
},
luaautodetect={
factory="MediaWiki\\Extension\\Scribunto\\Engines\\LuaCommon\\LuaEngine::newAutodetectEngine",
},
},
merge_strategy="array_plus_2d",
},
ScribuntoUseGeSHi={
description="Set to true to enable the SyntaxHighlight_GeSHi extension integration",
value=true,
},
ScribuntoUseCodeEditor={
description="Set to true to enable the CodeEditor extension integration",
value=true,
},
ScribuntoGatherFunctionStats={
description="Set to true to enable gathering and reporting of performance data for slow function invocations.",
value=false,
},
ScribuntoSlowFunctionThreshold={
description="If $wgScribuntoGatherFunctionStats is true, this variable specifies the percentile threshold for slow function invocations. Should be a value between 0 and 1 (exclusive).",
value=0.9,
},
},
attributes={
TemplateSandbox={
EditNamespaces={
828,},
},
TemplateStyles={
Namespaces={
828,},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Scribunto",
},
ScrollableTables={
name="ScrollableTables",
version="0.3.0",
author={
"Clark Verbrugge",},
url="https://www.mediawiki.org/wiki/Extension:ScrollableTables",
descriptionmsg="scrollabletables-desc",
["license-name"]="CC0-1.0",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
BeforePageDisplay="ScrollableTablesHooks::registerModules",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ScrollableTables",
},
SearchExtraNS={
name="SearchExtraNS",
author={
"Roland Unger","Hans Musil",},
url="https://www.mediawiki.org/wiki/Extension:SearchExtraNS",
descriptionmsg="searchextrans-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
Hooks={
SearchAfterNoDirectMatch="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\SearchExtraNS\\Hooks",
},
},
config={
SearchExtraNamespaces={
value=false,
},
},
requires={
MediaWiki="&gt;= 1.42",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SearchExtraNS",
},
SearchParserFunction={
name="SearchParserFunction",
version="2.1",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",
url="https://www.mediawiki.org/wiki/Extension:SearchParserFunction",
descriptionmsg="searchparserfunction-desc",
["license-name"]="GPL-3.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
},
ExtensionMessagesFiles={
SearchParserFunctionAlias="SearchParserFunction.alias.php",
},
Hooks={
ParserFirstCallInit="SearchParserFunction::onParserFirstCallInit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SearchParserFunction",
},
SearchStats={
name="Search Stats",
version="0.1.0",
author={
"Steven Orvis",},
url="https://www.mediawiki.org/wiki/Extension:SearchStats",
descriptionmsg="searchstats-desc",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
SpecialPages={
SearchStats="SpecialSearchStats",
},
ExtensionMessagesFiles={
SearchStatsAlias="SearchStats.alias.php",
},
Hooks={
LoadExtensionSchemaUpdates="SearchStatsHooks::onLoadExtensionSchemaUpdates",
SpecialSearchCreateLink="SearchStatsHooks::onSpecialSearchCreateLink",
SpecialSearchNogomatch="SearchStatsHooks::onSpecialSearchNogomatch",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SearchStats",
},
SearchThumbs={
name="SearchThumbs",
version="1.3",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",
url="https://www.mediawiki.org/wiki/Extension:SearchThumbs",
descriptionmsg="searchthumbs-desc",
["license-name"]="GPL-3.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
BeforePageDisplay="SearchThumbs::onBeforePageDisplay",
ShowSearchHit="SearchThumbs::onShowSearchHit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SearchThumbs",
},
SearchVue={
name="SearchVue",
type="other",
author={
"Cormac Parle","Joseph Seddon","Marco Fossati","Matthias Mullie","Mark Shenoda","Volker E.",},
url="https://www.mediawiki.org/wiki/Extension:SearchVue",
descriptionmsg="searchvue-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42",
extensions={
WikimediaMessages="*",
},
},
HookHandlers={
main={
class="SearchVue\\Hooks",
},
},
Hooks={
SpecialPageBeforeExecute="main",
SpecialSearchResults="main",
SpecialSearchResultsAppend="main",
ShowSearchHitTitle="main",
GetPreferences="main",
},
DefaultUserOptions={
searchpreview=true,
["searchpreview-tutorial-enabled"]=1,
},
config={
QuickViewMediaRepositoryApiBaseUri={
description="Url to API of Commons repository used to fetch images for the selected page. If not set, the 'related images' section will not appear.",
value="https://commons.wikimedia.org/w/api.php",
},
QuickViewDataRepositoryApiBaseUri={
description="Url to API of Wikidata repository used to links for the selected page. If not set, the 'interwiki links' section will not appear.",
value="https://www.wikidata.org/w/api.php",
},
QuickViewMediaRepositorySearchUri={
description="Url to Commons search page.",
value="https://commons.wikimedia.org/wiki/Special:MediaSearch?search=%s",
},
QuickViewMediaRepositoryUri={
description="Url to Commons home page.",
value="https://commons.wikimedia.org",
},
QuickViewSearchFilterForQID={
description="The search parameter used to link the current page with a QID to ensure that the search result are relevant to your search.",
value="custommatch:depicts_or_linked_from=%s",
},
},
RestRoutes={
{
path="/searchvue/v0/page/{page_title}/{snippet_field}",
method="GET",
class="SearchVue\\Rest\\GetSearchVueResultInfo",
},{
path="/searchvue/v0/media/{qid}",
method="GET",
class="SearchVue\\Rest\\GetSearchVueMedia",
services={
"MainConfig","HttpRequestFactory","UrlUtils","ContentLanguage",},
},},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SearchVue",
},
SectionAnchors={
name="SectionAnchors",
version="2.0.0-alpha",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://www.mediawiki.org/wiki/Extension:SectionAnchors",
descriptionmsg="sectionanchors-desc",
["license-name"]="GPL-3.0-only",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
HookHandlers={
SectionAnchorsHooks={
class="MediaWiki\\Extension\\SectionAnchors\\Hooks",
},
},
Hooks={
BeforePageDisplay="SectionAnchorsHooks",
},
composer="mediawiki/section-anchors",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SectionAnchors",
},
SectionDisqus={
name="SectionDisqus",
version="0.4",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Felipe Schenone]",
url="https://www.mediawiki.org/wiki/Extension:SectionDisqus",
descriptionmsg="sectiondisqus-desc",
["license-name"]="GPL-3.0-only",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
BeforePageDisplay="SectionDisqus::addResources",
SkinEditSectionLinks="SectionDisqus::addDisqusButton",
SkinAfterContent="SectionDisqus::addDisqusDialog",
},
config={
SectionDisqusShortname={
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SectionDisqus",
},
SecureAuth={
name="SecureAuth",
version="1.0",
author={
"[https://www.mediawiki.org/wiki/User:Jayprakash12345 Jayprakash]",},
url="https://www.mediawiki.org/wiki/Extension:SecureAuth",
descriptionmsg="secureauth-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
ExtensionMessagesFiles={
SecureAuthAlias="SecureAuth.i18n.alias.php",
},
SpecialPages={
SecureAuthInfo="SpecialSecureAuthInfo",
},
AvailableRights={
"sa-access",},
GroupPermissions={
["*"]={
["sa-access"]=false,
},
user={
["sa-access"]=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SecureAuth",
},
Secure_HTML={
name="Secure HTML",
version="3.0",
author="Ryan Finnie",
url="https://www.mediawiki.org/wiki/Extension:Secure_HTML",
descriptionmsg="securehtml-desc",
type="parserhook",
["license-name"]="GPL-2.0-or-later",
SpecialPages={
SecureHTML="SpecialSecureHTML",
},
ExtensionMessagesFiles={
SecureHTMLAlias="SecureHTML.alias.php",
},
Hooks={
ParserFirstCallInit="SecureHTML::parserInit",
},
config={
SecureHTMLSecrets={
},
SecureHTMLSpecialRight="edit",
SecureHTMLSpecialDropdown=true,
SecureHTMLTag="shtml",
},
requires={
MediaWiki="&gt;= 1.32.0",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SecureHTML",
},
SecureLinkFixer={
name="SecureLinkFixer",
["license-name"]="GPL-3.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:SecureLinkFixer",
author={
"Kunal Mehta",},
descriptionmsg="securelinkfixer-desc",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
HookHandlers={
main={
class="MediaWiki\\SecureLinkFixer\\Hooks",
services={
"HSTSPreloadLookup",},
},
},
Hooks={
LinkerMakeExternalLink="main",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SecureLinkFixer",
},
SecurePoll={
name="SecurePoll",
author={
"Tim Starling","...",},
url="https://www.mediawiki.org/wiki/Extension:SecurePoll",
descriptionmsg="securepoll-desc",
["license-name"]="GPL-2.0-or-later",
version="3.0.0",
type="other",
requires={
MediaWiki="&gt;= 1.43.0",
},
AvailableRights={
"securepoll-create-poll","securepoll-view-voter-pii",},
ContentHandlers={
SecurePoll="\\MediaWiki\\Extension\\SecurePoll\\SecurePollContentHandler",
},
SpecialPages={
SecurePoll={
class="\\MediaWiki\\Extension\\SecurePoll\\SpecialSecurePoll",
services={
"SecurePoll.ActionPageFactory",},
},
},
JobClasses={
securePollPopulateVoterList="\\MediaWiki\\Extension\\SecurePoll\\Jobs\\PopulateVoterListJob",
securePollTallyElection="\\MediaWiki\\Extension\\SecurePoll\\Jobs\\TallyElectionJob",
securePollLogAdminAction="\\MediaWiki\\Extension\\SecurePoll\\Jobs\\LogAdminActionJob",
securePollArchiveElection="\\MediaWiki\\Extension\\SecurePoll\\Jobs\\ArchiveElectionJob",
securePollUnarchiveElection="\\MediaWiki\\Extension\\SecurePoll\\Jobs\\UnarchiveElectionJob",
},
APIModules={
securepollauth={
class="\\MediaWiki\\Extension\\SecurePoll\\Api\\ApiSecurePollAuth",
services={
"UserFactory",},
},
strikevote={
class="\\MediaWiki\\Extension\\SecurePoll\\Api\\ApiStrikeVote",
services={
"SecurePoll.ActionPageFactory",},
},
},
RestRoutes={
{
path="/securepoll/set_translation/{entityid}/{language}",
method="POST",
class="\\MediaWiki\\Extension\\SecurePoll\\Rest\\SetTranslationHandler",
services={
"SecurePoll.TranslationRepo",},
},},
ExtensionMessagesFiles={
SecurePollAlias="SecurePoll.alias.php",
SecurePollNamespaces="SecurePoll.namespaces.php",
},
Hooks={
UserLogout="logout",
LoadExtensionSchemaUpdates="install",
CanonicalNamespaces="setup",
TitleQuickPermissions="setup",
SpecialPage_initList="setup",
},
HookHandlers={
install={
class="\\MediaWiki\\Extension\\SecurePoll\\HookHandler\\InstallHandler",
},
setup={
class="\\MediaWiki\\Extension\\SecurePoll\\HookHandler\\SetupHandler",
services={
"MainConfig",},
},
logout={
class="\\MediaWiki\\Extension\\SecurePoll\\HookHandler\\LogoutHandler",
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
namespaces={
{
id=830,
name="SecurePoll",
constant="NS_SECUREPOLL",
subpages=true,
defaultcontentmodel="SecurePoll",
conditional=true,
},{
id=831,
name="SecurePoll_talk",
constant="NS_SECUREPOLL_TALK",
subpages=true,
conditional=true,
},},
QUnitTestModule={
localBasePath="",
remoteExtPath="SecurePoll",
scripts={
"tests/qunit/TranslationParser.test.js","tests/qunit/TranslationFlattener.test.js","tests/qunit/highlightWarnings.test.js","tests/qunit/STVDragAndDropForm.test.js",},
dependencies={
"ext.securepoll.htmlform",},
},
config={
SecurePollGPGCommand={
value="gpg",
},
SecurePollTempDir={
value="/tmp",
},
SecurePollShowErrorDetail={
value=false,
},
SecurePollKeepPrivateInfoDays={
value=90,
description="Maximum number of days for which to store private information about voters.",
},
SecurePollCreateWikiGroupDir={
value="/../",
description="Directory containing files defining groups of wikis that can participate in an election. File names are defined in SecurePollCreateWikiGroups.",
},
SecurePollExcludedWikis={
value={
},
description="List of wikis to be excluded from SecurePoll processes",
},
SecurePollCreateWikiGroups={
value={
},
description="Array of $fileName =&gt; $messageKey for defining groups of wikis that can participate in an election, and the groups' labels in the Create form. Files should be stored in SecurePollCreateWikiGroupDir with the suffix .dblist, and contain a list of participating wikis. The suffix should be omitted from the file names given here.",
},
SecurePollCreateRemoteScriptPath={
value="https:$wgServer/w",
},
SecurePollUseNamespace={
value=false,
description="Make the SecurePoll namespace available, and record election details to pages in this namespace.",
},
SecurePollGpgSignKey={
value=nil,
},
SecurePollUseLogging={
value=false,
description="Whether to log admin actions to securepoll_log table.",
},
SecurePollSingleTransferableVoteEnabled={
value=false,
description="Enable or disable Single Transferable Vote on secure poll.",
},
SecurePollTranslationImportSourceUrl={
value="",
description="Source url pointing to api endpoint where pages for import should come from",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SecurePoll",
},
SecurityApi={
name="SecurityApi",
url="https://www.mediawiki.org/wiki/Extension:SecurityApi",
description="Provides a proxy to APIs such as ipoid",
version="1.0",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.33.0",
},
AvailableRights={
"securityapi-ipoid-feed",},
RestRoutes={
{
path="/securityapi/feed/v1/all",
method="GET",
services={
"MainConfig","HttpRequestFactory","PermissionManager","UserFactory",},
factory="MediaWiki\\SecurityApi\\Rest\\Feed\\AllHandler::factory",
},{
path="/securityapi/feed/v1/ip/{ip}",
method="GET",
services={
"MainConfig","HttpRequestFactory","PermissionManager","UserFactory",},
factory="MediaWiki\\SecurityApi\\Rest\\Feed\\IpHandler::factory",
},},
config={
wgSecurityApiIpoidUrl={
description="Base URL of ipoid to be called",
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SecurityApi",
},
SelectTag={
name="SelectTag",
version="1.2.0",
author="[http://www.expressprogs.com Khaled El Mansoury]",
url="https://www.mediawiki.org/wiki/Extension:SelectTag",
descriptionmsg="selecttag-desc",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
ParserFirstCallInit="SelectTagHooks::onSelectTagParserInit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SelectTag",
},
SemanticACL={
name="SemanticACL",
version="0.2b",
author={
"[https://wikimedi.ca/wiki/Utilisateur:Antoine_Mercier-Linteau Antoine Mercier-Linteau]","Andrew Garrett",},
url="https://www.mediawiki.org/wiki/Extension:SemanticACL",
descriptionmsg="sacl-desc",
["license-name"]="GPL-2.0-or-later",
type="semantic",
requires={
MediaWiki="&gt;= 1.38.0",
extensions={
SemanticMediaWiki="&gt; 3.0",
},
},
AvailableRights={
"sacl-exempt","view-non-categorized-media",},
GroupPermissions={
sysop={
["sacl-exempt"]=true,
},
},
config={
SemanticACLWhitelistIPs={
value=nil,
description="IPs listed in this array are granted full access.",
},
PublicImagesCategory={
value=nil,
description="Only files within this category are shown to unregistered users. This feature is useful for wikis that make use of copyrighted images that have not been cleared for public viewing.",
},
EnablePrivateLinks={
value=true,
description="If protected pages can be viewed by anyone using a private link with a key.",
},
},
Hooks={
["SMW::Property::initProperties"]="MediaWiki\\Extension\\SemanticACL\\SemanticACL::onSMWPropertyinitProperties",
["SMW::Store::AfterQueryResultLookupComplete"]="MediaWiki\\Extension\\SemanticACL\\SemanticACL::onSMWStoreAfterQueryResultLookupComplete",
BadImage="MediaWiki\\Extension\\SemanticACL\\SemanticACL::onBadImage",
ParserFetchTemplate="MediaWiki\\Extension\\SemanticACL\\SemanticACL::onParserFetchTemplate",
getUserPermissionsErrors="MediaWiki\\Extension\\SemanticACL\\SemanticACL::onGetUserPermissionsErrors",
ParserFirstCallInit="MediaWiki\\Extension\\SemanticACL\\SemanticACL::onParserFirstCallInit",
},
ExtensionMessagesFiles={
SemanticACLMagic="i18n/SemanticACL.magic.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SemanticACL",
},
Semantic_REST_API={
name="Semantic REST API",
version="2.0",
url="https://www.mediawiki.org/wiki/Extension:Semantic_REST_API",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",
descriptionmsg="semantic-rest-api-desc",
["license-name"]="GPL-3.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.34.0",
},
RestRoutes={
{
path="/v1/page/{title}/semantic",
method="GET",
class="SemanticRESTAPI",
},},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SemanticRESTAPI",
},
Semantic_Rating={
name="Semantic Rating",
version="4.0.1",
author={
"[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]","...",},
url="https://www.mediawiki.org/wiki/Extension:Semantic_Rating",
descriptionmsg="semanticrating-desc",
["license-name"]="MIT",
type="semantic",
requires={
MediaWiki="&gt;= 1.31.0",
},
ExtensionMessagesFiles={
SemanticRatingMagic="SemanticRating.i18n.magic.php",
},
Hooks={
ParserFirstCallInit={
"SemanticRating::setup",},
},
config={
SemanticRating_CSSSelector="#firstHeading",
SemanticRating_DefaultMax=5,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SemanticRating",
},
SendGrid={
name="SendGrid",
version="4.0",
author={
"Derick Alangi",},
url="https://www.mediawiki.org/wiki/Extension:SendGrid",
descriptionmsg="sendgrid-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.40.0",
},
HookHandlers={
SendGridHooks={
class="MediaWiki\\Extension\\SendGrid\\SGHooks",
},
},
Hooks={
AlternateUserMailer="SendGridHooks",
},
config={
SendGridAPIKey={
value="",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SendGrid",
},
Sentry={
name="Sentry",
version="0.1",
author="Gergő Tisza",
url="https://www.mediawiki.org/wiki/Extension:Sentry",
descriptionmsg="sentry-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.33.0",
},
QUnitTestModule={
remoteExtPath="Sentry/tests/qunit",
localBasePath="tests/qunit",
scripts={
"init.test.js",},
dependencies={
"sentry.init",},
},
Hooks={
ResourceLoaderGetConfigVars={
"SentryHooks::onResourceLoaderGetConfigVars",},
BeforePageDisplay={
"SentryHooks::onBeforePageDisplay",},
LogException={
"SentryHooks::onLogException",},
},
config={
SentryEventGateUri=nil,
SentryDsn=nil,
SentryWhitelist=false,
SentryLogOnError=true,
SentryLogPhpErrors=true,
},
composer="mediawiki/sentry",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Sentry",
},
Share={
name="Share",
version="2.0",
author={
"[https://meta.miraheze.org/wiki/User:Agent_Isai Agent Isai]","Alex",},
url="https://www.mediawiki.org/wiki/Extension:Share",
descriptionmsg="share-desc",
["license-name"]="GPL-3.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.38.0",
},
AvailableRights={
"viewsharelinks",},
config={
ShareEmail={
description="Enable 'Share via email' link in the sidebar?",
descriptionmsg="share-email-desc",
public=true,
value=false,
},
ShareFacebook={
description="Enable 'Share to Facebook' link in the sidebar?",
descriptionmsg="share-facebook-desc",
public=true,
value=true,
},
ShareLinkedIn={
description="Enable 'Share to LinkedIn' link in the sidebar?",
descriptionmsg="share-linkedin-desc",
public=true,
value=false,
},
SharePinterest={
description="Enable 'Share to Pinterest' link in the sidebar?",
descriptionmsg="share-pinterest-desc",
public=true,
value=false,
},
ShareReddit={
description="Enable share to Reddit link in the sidebar?",
descriptionmsg="share-reddit-desc",
public=true,
value=false,
},
ShareTelegram={
description="Enable 'Share to Telegram' link in the sidebar?",
descriptionmsg="share-telegram-desc",
public=true,
value=false,
},
ShareTumblr={
description="Enable 'Share to Tumblr' link in the sidebar?",
descriptionmsg="share-tumblr-desc",
public=true,
value=false,
},
ShareTwitter={
description="Enable 'Share to Twitter' link in the sidebar?",
descriptionmsg="share-twitter-desc",
public=true,
value=true,
},
ShareVK={
description="Enable 'Share to VK' link in the sidebar?",
descriptionmsg="share-vk-desc",
public=true,
value=false,
},
ShareWeibo={
description="Enable 'Share to Weibo' link in the sidebar?",
descriptionmsg="share-weibo-desc",
public=true,
value=false,
},
ShareWhatsApp={
description="Enable 'Share to WhatsApp' link in the sidebar?",
descriptionmsg="share-whatsapp-desc",
public=true,
value=false,
},
ShareUseButtons={
description="Use sidebar buttons instead of sidebar links?",
descriptionmsg="share-sidebar-basicbuttons",
public=true,
value=false,
},
},
ConfigRegistry={
Share="GlobalVarConfig::newInstance",
},
DefaultUserOptions={
sharesidebar=0,
},
GroupPermissions={
["*"]={
viewsharelinks=true,
},
user={
viewsharelinks=true,
},
},
Hooks={
GetPreferences="ShareHooks::onGetPreferences",
SidebarBeforeOutput="ShareHooks::onSidebarBeforeOutput",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Share",
},
SharedHelpPages={
name="SharedHelpPages",
version="0.7",
author={
"Kunal Mehta","Jack Phoenix",},
["license-name"]="Unlicense",
url="https://www.mediawiki.org/wiki/Extension:SharedHelpPages",
descriptionmsg="sharedhelppages-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
config={
SharedHelpPagesDevelopmentMode=false,
SharedHelpPagesCacheExpiry=604800,
SharedHelpPagesAPIUrl="http://www.shoutwiki.com/w/api.php",
SharedHelpPagesTimeout=10,
SharedHelpLanguages={
"en","fi","fr","nl",},
},
Hooks={
["EditPage::showEditForm:initial"]="SharedHelpPagesHooks::displayMessageOnEditPage",
BeforePageDisplay="SharedHelpPagesHooks::onBeforePageDisplay",
["SkinTemplateNavigation::Universal"]="SharedHelpPagesHooks::onSkinTemplateNavigationUniversal",
TitleIsAlwaysKnown="SharedHelpPagesHooks::onTitleIsAlwaysKnown",
ArticleFromTitle="SharedHelpPagesHooks::onArticleFromTitle",
LinksUpdateComplete="SharedHelpPagesHooks::onLinksUpdateComplete",
PageSaveComplete="SharedHelpPagesHooks::onPageSaveComplete",
ArticleDeleteComplete="SharedHelpPagesHooks::onArticleDeleteComplete",
WikiPageFactory="SharedHelpPagesHooks::onWikiPageFactory",
["WantedPages::getQueryInfo"]="SharedHelpPagesHooks::modifyWantedPagesSQL",
},
JobClasses={
SharedHelpPageLocalJobSubmitJob="SharedHelpPageLocalJobSubmitJob",
LocalSharedHelpPageCacheUpdateJob="LocalSharedHelpPageCacheUpdateJob",
},
ConfigRegistry={
sharedhelppages="GlobalVarConfig::newInstance",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SharedHelpPages",
},
Shibboleth={
name="Shibboleth",
version="1.0",
author={
"[https://niif.hu northway]",},
url="https://www.mediawiki.org/wiki/Extension:Shibboleth",
descriptionmsg="shibboleth-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
extensions={
PluggableAuth="&gt;= 5.1",
},
},
config={
ShibDisplayName="displayName",
ShibEmail="mail",
ShibUsername="eppn",
Shibboleth_GroupMap=nil,
PluggableAuth_Class="Shibboleth",
},
Hooks={
PluggableAuthPopulateGroups="Shibboleth::populateGroups",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Shibboleth",
},
ShortUrl={
name="ShortUrl",
version="1.2.0",
author="Yuvi Panda",
["license-name"]="BSD-3-Clause",
requires={
MediaWiki="&gt;= 1.42",
},
url="https://www.mediawiki.org/wiki/Extension:ShortUrl",
descriptionmsg="shorturl-desc",
type="specialpage",
SpecialPages={
ShortUrl="MediaWiki\\Extension\\ShortUrl\\Specials\\SpecialShortUrl",
},
ExtensionMessagesFiles={
ShortUrlAlias="ShortUrl.alias.php",
},
Hooks={
SidebarBeforeOutput="main",
LoadExtensionSchemaUpdates="schema",
BeforePageDisplay="main",
WebRequestPathInfoRouter="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\ShortUrl\\Hooks",
},
schema={
class="MediaWiki\\Extension\\ShortUrl\\SchemaHooks",
},
},
config={
ShortUrlTemplate={
value=false,
},
ShortUrlReadOnly={
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ShortUrl",
},
ShoutWiki_API={
name="ShoutWiki API",
version="0.7.0",
author={
"Jack Phoenix",},
["license-name"]="CC0-1.0",
url="https://www.mediawiki.org/wiki/Extension:ShoutWiki_API",
descriptionmsg="shoutwikiapi-desc",
type="api",
requires={
MediaWiki="&gt;= 1.35.0",
},
APIListModules={
listwikis="ShoutWikiListApi",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ShoutWikiAPI",
},
ShoutWiki_Ads={
name="ShoutWikiAds",
version="0.4.8",
author={
"Jack Phoenix",},
namemsg="shoutwikiads-extensionname",
descriptionmsg="shoutwikiads-desc",
type="other",
url="https://www.mediawiki.org/wiki/Extension:ShoutWiki_Ads",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
BeforePageDisplay="ShoutWikiAds::setupAdCSS",
SkinAfterBottomScripts="ShoutWikiAds::onSkinAfterBottomScripts",
AuroraLeftSidebar="ShoutWikiAds::onAuroraLeftSidebar",
SkinAfterContent="ShoutWikiAds::onSkinAfterContent",
SkinAfterPortlet="ShoutWikiAds::onSkinAfterPortlet",
DuskAfterToolbox="ShoutWikiAds::onDuskAfterToolbox",
HomeAfterEverything="ShoutWikiAds::onHomeAfterEverything",
GamesSideBox="ShoutWikiAds::onGamesSideBox",
MetrolookRightPanel="ShoutWikiAds::onMetrolookRightPanel",
MetrolookAfterToolbox="ShoutWikiAds::onMetrolookAfterToolbox",
MirageGetRightRailModules="ShoutWikiAds::onMirageGetRightRailModules",
MonacoSetupSkinUserCss="ShoutWikiAds::setupAdCSS",
MonacoSidebar="ShoutWikiAds::onMonacoSidebar",
MonacoFooter="ShoutWikiAds::onMonacoFooter",
NimbusLeftSide="ShoutWikiAds::onNimbusLeftSide",
QuartzSidebarWidgets="ShoutWikiAds::onQuartzSidebarWidgets",
QuartzSidebarWidgetAdvertiser="ShoutWikiAds::onQuartzSidebarWidgetAdvertiser",
RefreshedFooter="ShoutWikiAds::onRefreshedFooter",
RefreshedInSidebar="ShoutWikiAds::onRefreshedInSidebar",
TruglassInContent="ShoutWikiAds::renderTruglassAd",
SiteNoticeAfter="ShoutWikiAds::onSiteNoticeAfter",
},
config={
AdConfig={
enabled=true,
["adsense-client"]="",
namespaces={
0,1,},
mode="static",
debug=false,
["monaco-leaderboard-ad-slot"]="",
["monaco-small-square-ad-slot"]="",
["monaco-button-ad-slot"]="",
["monobook-skyscraper-ad-slot"]="",
["truglass-leaderboard-ad-slot"]="",
["vector-button-ad-slot"]="",
["vector-skyscraper-ad-slot"]="",
aurora={
leaderboard=true,
["leaderboard-bottom"]=true,
skyscraper=true,
},
cologneblue={
banner=true,
toolbox=true,
},
mirage={
leaderboard=true,
square=true,
},
modern={
leaderboard=true,
},
monobook={
sidebar=true,
leaderboard=true,
},
truglass={
leaderboard=true,
},
vector={
leaderboard=true,
skyscraper=true,
toolbox=true,
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ShoutWikiAds",
},
ShowMe={
name="ShowMe",
version="0.2.0",
author={
"Ike Hecht",},
url="https://www.mediawiki.org/wiki/Extension:ShowMe",
descriptionmsg="showme-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
ParserFirstCallInit={
"ShowMeHooks::onParserFirstCallInit",},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ShowMe",
},
ShowRealUsernames={
name="ShowRealUsernames",
version="1.4.0",
type="other",
author={
"Paul Lustgarten","John Erling Blad","[https://www.mediawiki.org/wiki/User:RV1971 RV1971]",},
descriptionmsg="sru-realname-desc",
url="https://www.mediawiki.org/wiki/Extension:ShowRealUsernames",
["license-name"]="GPL-3.0-or-later",
requires={
MediaWiki="&gt;= 1.30.0",
},
AvailableRights={
"showrealname",},
GroupPermissions={
user={
showrealname=true,
},
},
Hooks={
SpecialListusersFormatRow="ShowRealUsernames::onSpecialListusersFormatRow",
SpecialListusersQueryInfo="ShowRealUsernames::onSpecialListusersQueryInfo",
},
config={
ShowRealUsernamesInline={
description="Whether to replace the wiki name with the real name. By default, the user's real name is appended to the wiki name in Special:ListUsers.",
value=false,
},
ShowRealUsernamesFields={
description="List of extra fields to get from the database. These fields are obtained from the table &lt;code&gt;user&lt;/code&gt; and substituted for $1, $2 etc. in messages.",
value={
"user_real_name","user_name","user_email",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ShowRealUsernames",
},
SidebarDonateBox={
name="SidebarDonateBox",
version="1.2.0",
author="[http://danf.ca/mw/ Daniel Friesen]",
url="https://www.mediawiki.org/wiki/Extension:SidebarDonateBox",
descriptionmsg="sidebardonatebox-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
SkinBuildSidebar="SidebarDonateBoxHooks::onSkinBuildSidebar",
},
config_prefix="eg",
config={
SidebarDonateBoxContent={
description="Config variable holding the HTML content of the sidebar.",
value="",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SidebarDonateBox",
},
SimilarEditors={
name="SimilarEditors",
url="https://www.mediawiki.org/wiki/Extension:SimilarEditors",
version="0.0.0",
namemsg="similareditors-extensionname",
descriptionmsg="similareditors-desc",
["license-name"]="MIT",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42",
extensions={
QuickSurveys="&gt;= 1.4.0",
},
},
AvailableRights={
"similareditors",},
SpecialPages={
SimilarEditors={
class="MediaWiki\\Extension\\SimilarEditors\\SpecialSimilarEditors",
services={
"SimilarEditorsClient","SimilarEditorsResultsFormatterFactory",},
},
},
ExtensionMessagesFiles={
SimilarEditorsAliases="SimilarEditors.alias.php",
},
ServiceWiringFiles={
"src/ServiceWiring.php",},
config={
SimilarEditorsApiUrl={
value=false,
description="API domain",
},
SimilarEditorsApiUser={
value=false,
description="API user",
},
SimilarEditorsApiPassword={
value=false,
description="API password",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SimilarEditors",
},
SimpleCalendar={
name="SimpleCalendar",
version="1.4.0",
author={
"[https://organicdesign.nz/User:Nad Aran Dunkley]",},
url="https://www.mediawiki.org/wiki/Extension:SimpleCalendar",
description="A simple calendar extension",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
ExtensionMessagesFiles={
SimpleCalendarMagic="SimpleCalendar.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="MediaWiki\\Extension\\SimpleCalendar\\Setup::onParserFirstCallInit",
},
composer="mediawiki/simple-calendar",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SimpleCalendar",
},
SimpleChanges={
name="SimpleChanges",
version="1.1",
author={
"[https://www.mediawiki.org/wiki/User:Tosfos Ike Hecht]",},
type="specialpage",
url="https://www.mediawiki.org/wiki/Extension:SimpleChanges",
descriptionmsg="simplechanges-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.34.0",
},
ExtensionMessagesFiles={
SimpleChangesAlias="SimpleChanges.alias.php",
},
SpecialPages={
SimpleChanges="SpecialSimpleChanges",
},
config={
SimpleChangesOnlyContentNamespaces={
value=false,
description="Restrict list of changes to $wgContentNamespaces?",
},
SimpleChangesOnlyLatest={
value=true,
description="Show only the changes which are each page's most recent revisions. Avoids duplicate page titles.",
},
SimpleChangesShowUser={
value=false,
description="Show the user who made the change.",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SimpleChanges",
},
SimpleSAMLphp={
name="SimpleSAMLphp",
version="7.0.1",
author={
"[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]","[https://www.mediawiki.org/wiki/User:Osnard Robert Vogel]",},
url="https://www.mediawiki.org/wiki/Extension:SimpleSAMLphp",
descriptionmsg="simplesamlphp-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
PluggableAuth="&gt;= 7.0",
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
config={
SimpleSAMLphp_InstallDir={
value=nil,
},
SimpleSAMLphp_MandatoryUserInfoProviders={
value={
username={
class="MediaWiki\\Extension\\SimpleSAMLphp\\UserInfoProvider\\LowerCasedUsername",
},
rawusername={
class="MediaWiki\\Extension\\SimpleSAMLphp\\UserInfoProvider\\Username",
},
realname={
class="MediaWiki\\Extension\\SimpleSAMLphp\\UserInfoProvider\\Realname",
},
email={
class="MediaWiki\\Extension\\SimpleSAMLphp\\UserInfoProvider\\Email",
},
},
},
},
attributes={
PluggableAuth={
SimpleSAMLphp={
class="MediaWiki\\Extension\\SimpleSAMLphp\\SimpleSAMLphp",
services={
"TitleFactory","UserFactory","AuthManager","SimpleSAMLphpSAMLClientFactory","SimpleSAMLphpMandatoryUserInfoProviderFactory",},
},
},
},
composer="mediawiki/simple-s-a-m-lphp",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SimpleSAMLphp",
},
SimpleSort={
name="SimpleSort",
version="1.0.0",
author={
"Clark Verbrugge",},
url="https://www.mediawiki.org/wiki/Extension:SimpleSort",
descriptionmsg="simplesort-desc",
["license-name"]="CC0-1.0",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
ExtensionMessagesFiles={
SimpleSortMagic="SimpleSort.i18n.magic.php",
},
Hooks={
ParserFirstCallInit={
"SimpleSortHooks::onParserFirstCallInit",},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SimpleSort",
},
SimpleTasks={
name="SimpleTasks",
version="2.0.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://www.hallowelt.com",
descriptionmsg="simple-tasks-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
Checklists="&gt;= 1.0.0",
AtMentions="&gt;= 1.0.0",
DateTimeTools="&gt;= 1.0.0",
},
},
attributes={
Notifications={
Events={
["simple-tasks-task"]={
buckets={
"personal",},
},
},
},
BlueSpiceDiscovery={
AttentionIndicatorRegistry={
tasks="\\SimpleTasks\\AttentionIndicator\\Tasks::factory",
},
},
UnifiedTaskOverview={
AttentionIndicatorCollectionRegistry={
"tasks",},
},
VisualEditor={
PluginModules={
"ext.simpletasks.taskreport.nodes",},
},
ContentDroplets={
Droplets={
taskreport={
class="SimpleTasks\\ContentDroplets\\TaskReportDroplet",
},
},
},
MWStakeContentProvisioner={
ContentManifests={
DefaultContentProvisioner={
"extensions/SimpleTasks/data/Content/SemanticProperties/manifest.json",},
},
},
},
callback="mwsInitComponents",
Hooks={
ChecklistsItemsCreated="processTasks",
ChecklistsItemsUpdated="processTasks",
ChecklistsItemsDeleted="processTasks",
LoadExtensionSchemaUpdates="runDatabaseUpdates",
UnifiedTaskOverviewGetTaskDescriptors="integrateIntoUnifiedTaskOverview",
ParserFirstCallInit="taskReport",
["SMW::Store::BeforeDataUpdateComplete"]="SimpleTasks\\Hook\\AddSemanticSubobject::onBeforeDataUpdateComplete",
BlueSpiceEchoConnectorNotifyBeforeSend="abortMentionNotifications",
EchoAbortEmailNotification="abortMentionNotifications",
},
HookHandlers={
processTasks={
class="SimpleTasks\\Hook\\ProcessTasks",
services={
"SimpleTaskManager",},
},
runDatabaseUpdates={
class="SimpleTasks\\Hook\\RunDatabaseUpdates",
},
integrateIntoUnifiedTaskOverview={
class="SimpleTasks\\Hook\\IntegrateIntoUnifiedTaskOverview",
services={
"SimpleTaskManager","ContentLanguage",},
},
taskReport={
class="SimpleTasks\\Hook\\TaskReport",
},
abortMentionNotifications={
class="SimpleTasks\\Hook\\AbortMentionNotification",
services={
"UserFactory","SimpleTaskManager",},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
RestRoutes={
{
path="/simple_tasks",
class="SimpleTasks\\Rest\\RetrieveTasks",
services={
"SimpleTaskManager",},
},{
path="/simple_tasks/{id}",
class="SimpleTasks\\Rest\\RetrieveTask",
services={
"SimpleTaskManager",},
},{
method="POST",
path="/simple_tasks/{id}/set_status",
class="SimpleTasks\\Rest\\UpdateStatus",
services={
"SimpleTaskManager","ChecklistManager",},
},{
method="GET",
path="/simple_tasks/report/{count}",
class="SimpleTasks\\Rest\\RetrieveTasksFromFilter",
services={
"SimpleTaskManager","UserFactory","ContentLanguage","TitleFactory","PermissionManager",},
},},
composer="mediawiki/simpletasks",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SimpleTasks",
},
SiteMatrix={
name="SiteMatrix",
version="1.6.0",
author={
"Tim Starling","Brion Vibber","Victor Vasiliev","Alexandre Emsenhuber","Sam Reed",},
url="https://www.mediawiki.org/wiki/Extension:SiteMatrix",
descriptionmsg="sitematrix-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42",
},
SpecialPages={
SiteMatrix={
class="MediaWiki\\Extension\\SiteMatrix\\SpecialSiteMatrix",
services={
"LanguageNameUtils",},
},
},
APIModules={
sitematrix={
class="MediaWiki\\Extension\\SiteMatrix\\ApiSiteMatrix",
services={
"LanguageNameUtils","LanguageFactory",},
},
},
ExtensionMessagesFiles={
SiteMatrixAlias="SiteMatrix.alias.php",
SiteMatrixMagic="SiteMatrix.i18n.magic.php",
},
Hooks={
APIQuerySiteInfoGeneralInfo="main",
ParserGetVariableValueSwitch="main",
MagicWordwgVariableIDs="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\SiteMatrix\\Hooks",
},
},
config={
SiteMatrixFile={
description="A file with the list of language codes used by the wikifarm (one per line).",
value=nil,
},
SiteMatrixSites={
description="Configuration for project families (projects which are multilingual but each language is a separate wiki), in a &lt;family&gt; =&gt; [ 'name' =&gt; &lt;human-readable name&gt;, 'host' =&gt; &lt;domain name&gt;, 'prefix' =&gt; &lt;interwiki prefix&gt; ] format.",
value={
},
merge_strategy="array_plus_2d",
},
SiteMatrixPrivateSites={
description="dbname list of private wikis.",
value=nil,
},
SiteMatrixFishbowlSites={
description="dbname list of fishbowl wikis.",
value=nil,
},
SiteMatrixClosedSites={
description="dbname list of closed wikis.",
value=nil,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SiteMatrix",
},
SiteMetrics={
name="SiteMetrics",
version="1.6.0",
author={
"Aaron Wright","David Pean","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:SiteMetrics",
descriptionmsg="sitemetrics-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.34.0",
},
ExtensionMessagesFiles={
SiteMetricsAliases="includes/SiteMetrics.alias.php",
},
SpecialPages={
SiteMetrics="SiteMetrics",
},
AvailableRights={
"metricsview",},
GroupPermissions={
sysop={
metricsview=true,
},
staff={
metricsview=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SiteMetrics",
},
Site_Settings={
name="Site Settings",
version="0.8-alpha",
author="Yaron Koren",
url="https://www.mediawiki.org/wiki/Extension:Site_Settings",
descriptionmsg="sitesettings-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
AvailableRights={
"sitesettings",},
ExtensionFunctions={
"SSUtils::initializeSite",},
GroupPermissions={
sysop={
sitesettings=true,
},
},
SpecialPages={
SiteSettings="SpecialSiteSettings",
},
ExtensionMessagesFiles={
SiteSettingsAliases="SiteSettings.alias.php",
},
Hooks={
LoadExtensionSchemaUpdates="SSUtils::describeDBSchema",
["SkinTemplateNavigation::Universal"]="SSUtils::addTopSiteSettingsLink",
UserGetRights="SSUtils::blockFromReading",
},
config={
SiteSettingsScriptPath={
value="/extensions/SiteSettings",
},
SiteSettingsResourceTemplate={
value={
localBasePath="",
remoteExtPath="SiteSettings",
},
path=true,
},
SiteSettingsDB={
value=nil,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SiteSettings",
},
SkinPerNamespace={
name="SkinPerNamespace",
version="2018-01-26",
author="[https://www.mediawiki.org/wiki/User:IAlex Alexandre Emsenhuber]",
url="https://www.mediawiki.org/wiki/Extension:SkinPerNamespace",
descriptionmsg="skinpernamespace-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.34.0",
},
type="other",
Hooks={
RequestContextCreateSkin="SkinPerNamespaceHooks::onSkinPerPageRequestContextCreateSkin",
},
config={
SkinPerNamespace={
value={
},
merge_strategy="array_plus",
},
SkinPerSpecialPage={
value={
},
},
SkinPerNamespaceOverrideLoggedIn={
value=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SkinPerNamespace",
},
SkinPerPage={
name="Skin per page",
version="1.2.0",
author={
"Tim Starling","Calimonius the Estrange",},
requires={
MediaWiki="&gt;= 1.31.0",
},
url="https://www.mediawiki.org/wiki/Extension:SkinPerPage",
descriptionmsg="skinperpage-desc",
type="parserhook",
ExtensionMessagesFiles={
SkinPerPageMagic="SkinPerPage.i18n.magic.php",
},
Hooks={
ParserFirstCallInit={
"SkinPerPage::onParserFirstCallInit",},
OutputPageParserOutput={
"SkinPerPage::onOutputPageParserOutput",},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SkinPerPage",
},
SmiteSpam={
name="SmiteSpam",
namemsg="smitespam-extensionname",
version="0.5",
author="Vivek Ghaisas",
url="https://www.mediawiki.org/wiki/Extension:SmiteSpam",
descriptionmsg="smitespam-desc",
["license-name"]="GPL-2.0-only",
type="antispam",
requires={
MediaWiki="&gt;= 1.36.0",
},
APIModules={
smitespamanalyze="SmiteSpamApiQuery",
smitespamtrustuser="SmiteSpamApiTrustUser",
},
AvailableRights={
"smitespam",},
GroupPermissions={
sysop={
smitespam=true,
},
},
SpecialPages={
SmiteSpam="SpecialSmiteSpam",
SmiteSpamTrustedUsers="SpecialSmiteSpamTrustedUsers",
},
ExtensionMessagesFiles={
SmiteSpamAlias="SmiteSpam.alias.php",
},
Hooks={
LoadExtensionSchemaUpdates="SmiteSpamHooks::createTables",
AdminLinks="SmiteSpamHooks::addToAdminLinks",
},
config={
SmiteSpamCheckers={
value={
ExternalLinks=1,
RepeatedExternalLinks=1,
Wikitext=1,
},
description="List of enabled checkers and respective weights.",
},
SmiteSpamThreshold={
value=0.7,
description="Threshold (tolerance)\nPages analyzed as having a spam probability higher than this will be shown on special page.",
},
SmiteSpamIgnoreSmallPages={
value=true,
description="Ignore pages smaller than 500 characters?",
},
SmiteSpamIgnorePagesWithNoExternalLinks={
value=true,
description="Should SmiteSpam ignore all pages that don't have any external links outside of template calls?",
},
SmiteSpamQueryPageSize={
value=500,
description="Number of pages to analyze in one AJAX request.",
},
SmiteSpamDisplayPageSize={
value=250,
description="Number of pages to display in one paginated page.",
},
},
composer="mediawiki/smitespam",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SmiteSpam",
},
Sofa={
name="Sofa",
version="0.1",
author={
"Brian Wolff",},
url="https://www.mediawiki.org/wiki/Extension:Sofa",
descriptionmsg="sofa-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.3",
extensions={
Scribunto="*",
},
},
["license-name"]="GPL-2.0-or-later",
Hooks={
LoadExtensionSchemaUpdates={
"SofaHooks::onLoadExtensionSchemaUpdates",},
ParserFirstCallInit={
"SofaHooks::onParserFirstCallInit",},
RevisionDataUpdates={
"SofaHooks::onRevisionDataUpdates",},
PageDeletionDataUpdates={
"SofaHooks::onPageDeletionDataUpdates",},
BacklinkCacheGetPrefix={
"SofaDB::onBacklinkCacheGetPrefix",},
BacklinkCacheGetConditions={
"SofaDB::onBacklinkCacheGetConditions",},
ScribuntoExternalLibraries={
"SofaHooks::onScribuntoExternalLibraries",},
},
namespaces={
{
id=940,
constant="NS_SOFA",
name="Sofa",
defaultcontentmodel="Sofa",
protection="sofa-edit",
movable=false,
},{
id=941,
constant="NS_SOFA_TALK",
name="Sofa_talk",
},},
ContentHandlers={
Sofa="SofaContentHandler",
},
ExtensionMessagesFiles={
SofaMagic="Sofa.i18n.magic.php",
},
AvailableRights={
"sofa-edit",},
GroupPermissions={
sysop={
["sofa-edit"]=true,
},
},
config={
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Sofa",
},
SoftRedirector={
name="SoftRedirector",
version="0.138",
author={
"Ryan Kaldari","MJL",},
url="https://www.mediawiki.org/wiki/Extension:SoftRedirector",
descriptionmsg="softredir-desc",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.35.3",
},
type="other",
ExtensionMessagesFiles={
SoftRedirectorAlias="SoftRedirector.i18n.alias.php",
SoftRedirectorMagic="SoftRedirector.i18n.magic.php",
},
Hooks={
GetDoubleUnderscoreIDs={
"SoftRedirectorHooks::onGetDoubleUnderscoreIDs",},
wgQueryPages={
"SoftRedirectorHooks::onwgQueryPages",},
AncientPagesQuery={
"SoftRedirectorHooks::onAncientPagesQuery",},
LonelyPagesQuery={
"SoftRedirectorHooks::onLonelyPagesQuery",},
ShortPagesQuery={
"SoftRedirectorHooks::onShortPagesQuery",},
RandomPageQuery={
"SoftRedirectorHooks::onRandomPageQuery",},
GetLinkColours={
"SoftRedirectorHooks::onGetLinkColours",},
},
config={
SoftRedirectorIndicateLinks=true,
},
SpecialPages={
SoftRedirectPages="SpecialSoftRedirectPages",
SoftRedirectPageLinks={
class="SpecialSoftRedirectPageLinks",
services={
"NamespaceInfo",},
},
},
VisualEditorPluginModules={
"ext.softredirector.visualEditor",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SoftRedirector",
},
SoftwareVersion={
name="SoftwareVersion",
version="0.6.3",
author={
"Jack Phoenix","Samantha Nguyen",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:SoftwareVersion",
descriptionmsg="softwareversion-desc",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
config={
SoftwareVersionExecutablePath={
unix="/usr/bin/svn",
windows="C:/Program Files/TortoiseSVN\bin/svn.exe",
},
},
Hooks={
SoftwareInfo="SoftwareVersion::addSVNInfo",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SoftwareVersion",
},
SpamBlacklist={
name="SpamBlacklist",
author={
"Tim Starling","John Du Hart","Daniel Kinzler",},
url="https://www.mediawiki.org/wiki/Extension:SpamBlacklist",
descriptionmsg="spam-blacklist-desc",
type="antispam",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42",
},
GroupPermissions={
user={
spamblacklistlog=true,
},
bot={
sboverride=true,
},
},
AvailableRights={
"spamblacklistlog","sboverride",},
LogTypes={
"spamblacklist",},
LogRestrictions={
spamblacklist="spamblacklistlog",
},
LogActionsHandlers={
["spamblacklist/*"]="MediaWiki\\Extension\\SpamBlacklist\\SpamBlacklistLogFormatter",
},
GrantPermissions={
viewrestrictedlogs={
spamblacklistlog=true,
},
editprotected={
sboverride=true,
},
},
APIModules={
spamblacklist="MediaWiki\\Extension\\SpamBlacklist\\ApiSpamBlacklist",
},
attributes={
VisualEditor={
PluginModules={
"ext.spamBlacklist.visualEditor",},
},
},
Hooks={
EditFilterMergedContent="SpamBlacklistHookHandler",
EditFilter="SpamBlacklistHookHandler",
PageSaveComplete="SpamBlacklistHookHandler",
UserCanSendEmail="SpamBlacklistHookHandler",
ParserOutputStashForEdit="SpamBlacklistHookHandler",
UploadVerifyUpload="SpamBlacklistHookHandler",
},
HookHandlers={
SpamBlacklistHookHandler={
class="MediaWiki\\Extension\\SpamBlacklist\\Hooks",
services={
"PermissionManager","PageEditStash","ContentRenderer","ContentHandlerFactory",},
},
},
config={
BlacklistSettings={
value={
spam={
files={
"https://meta.wikimedia.org/w/index.php?title=Spam_blacklist&amp;action=raw&amp;sb_ver=1",},
},
},
merge_strategy="array_plus_2d",
},
LogSpamBlacklistHits={
value=false,
},
},
AuthManagerAutoConfig={
preauth={
SpamBlacklistPreAuthenticationProvider={
class="MediaWiki\\Extension\\SpamBlacklist\\SpamBlacklistPreAuthenticationProvider",
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SpamBlacklist",
},
SpamDiffTool={
name="SpamDiffTool",
version="1.6",
author={
"Travis Derouin","Alexandre Emsenhuber","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:SpamDiffTool",
descriptionmsg="spamdifftool-desc",
type="antispam",
requires={
MediaWiki="&gt;= 1.35.3",
extensions={
SpamBlacklist="*",
},
},
config={
SpamBlacklistArticle="Project:Spam_Blacklist",
},
ExtensionMessagesFiles={
SpamDiffToolAlias="SpamDiffTool.alias.php",
},
SpecialPages={
SpamDiffTool="SpamDiffTool",
},
Hooks={
DifferenceEngineViewHeader="SpamDiffToolHooks::onDifferenceEngineViewHeader",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SpamDiffTool",
},
SpamRegex={
name="Regular Expression Spam Block",
version="1.8",
author={
"Bartek Łapiński","Alexandre Emsenhuber","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:SpamRegex",
descriptionmsg="spamregex-desc",
type="antispam",
requires={
MediaWiki="&gt;= 1.34.0",
},
SpecialPages={
SpamRegex="SpecialSpamRegex",
},
ExtensionMessagesFiles={
SpamRegexAliases="SpamRegex.alias.php",
},
APIModules={
spamregex="ApiSpamRegex",
},
Hooks={
EditFilter="SpamRegexHooks::onEditFilter",
MovePageCheckPermissions="SpamRegexHooks::onMovePageCheckPermissions",
LoadExtensionSchemaUpdates="SpamRegexHooks::onLoadExtensionSchemaUpdates",
RenameUserComplete="SpamRegexHooks::onRenameUserComplete",
["Comments::isSpam"]="SpamRegexHooks::onCommentsIsSpam",
ProblemReportsContentCheck="SpamRegexHooks::onProblemReportsContentCheck",
},
AvailableRights={
"spamregex",},
GroupPermissions={
staff={
spamregex=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SpamRegex",
},
Spark={
name="Spark",
version="1.0.0",
author={
"[https://www.mediawiki.org/wiki/User:Jeroen_De_Dauw Jeroen De Dauw]",},
["license-name"]="GPL-3.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:Spark",
descriptionmsg="spark-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
config_prefix="eg",
config={
SparkQuery={
value="data-spark-query",
},
SparkFormat={
value="data-spark-format",
},
},
Hooks={
ParserFirstCallInit="SparkHooks::onParserFirstCallInit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Spark",
},
SparkPost={
name="SparkPost",
version="2.0",
author={
"[[mw:User:X-Savitar|Derick Alangi]]","[[mw:User:Zoglun|Zoglun]]",},
url="https://www.mediawiki.org/wiki/Extension:SparkPost",
descriptionmsg="sparkpost-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.41.0",
},
Hooks={
AlternateUserMailer={
"MediaWiki\\Extension\\SparkPost\\SPHooks::onAlternateUserMailer",},
},
config={
SparkPostAPIKey="",
SparkPostClickTracking=true,
SparkPostOpenTracking=true,
SparkPostTransactional=true,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SparkPost",
},
Special404={
name="Special404",
author="Daniel Friesen",
url="https://www.mediawiki.org/wiki/Extension:Special404",
descriptionmsg="special404-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.31.0",
},
SpecialPages={
Error404="Special404",
},
ExtensionMessagesFiles={
Special404Alias="Special404.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Special404",
},
SpecialNamespaces={
name="SpecialNamespaces",
author={
"Stephanie Amanda Stevens","SPQRobin","Stephen Kennedy","...",},
url="https://www.mediawiki.org/wiki/Extension:SpecialNamespaces",
descriptionmsg="namespaces-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
NamespacesAlias="SpecialNamespaces.alias.php",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\SpecialNamespaces\\Hooks",
},
},
Hooks={
CanonicalNamespaces="main",
LoadExtensionSchemaUpdates="main",
},
SpecialPages={
Namespaces="MediaWiki\\Extension\\SpecialNamespaces\\SpecialNamespaces",
},
AvailableRights={
"namespaces",},
GroupPermissions={
sysop={
namespaces=true,
},
},
LogTypes={
"namespaces",},
LogNames={
namespaces="namespaces_logpagename",
},
LogHeaders={
namespaces="namespaces_logpagetext",
},
LogActions={
["namespaces/namespaces"]="namespaces_logentry",
["namespaces/ns_add"]="namespaces_log_added",
["namespaces/ns_delete"]="namespaces_log_deleted",
["namespaces/ns_edit"]="namespaces_log_edited",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SpecialNamespaces",
},
SpellingApi={
name="SpellingApi",
version="0.3.0",
author={
"Amir E. Aharoni","Anish Patil","Niklas Laxström",},
url="https://www.mediawiki.org/wiki/Extension:SpellingApi",
descriptionmsg="spellingapi-desc",
["license-name"]="GPL-2.0-or-later",
type="api",
requires={
MediaWiki="&gt;= 1.33.0",
},
APIModules={
spellingapi="ApiQuerySpellcheck",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SpellingApi",
},
SpellingDictionary={
name="SpellingDictionary",
version="0.1.0",
author="Ankita Shukla",
url="https://www.mediawiki.org/wiki/Extension:SpellingDictionary",
descriptionmsg="desc",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
AvailableRights={
"spelladmin",},
GroupPermissions={
sysop={
spelladmin=true,
},
},
SpecialPages={
SpellingDictionary={
class="SpecialSpellingDictionary",
services={
"LanguageNameUtils",},
},
SpellingDictionaryAdmin="SpecialSpellingDictionaryAdmin",
ViewAll="SpecialViewAll",
ViewByLanguage={
class="SpecialViewByLanguage",
services={
"LanguageNameUtils",},
},
},
ExtensionMessagesFiles={
SpellingDictionaryAlias="SpellingDictionary.i18n.alias.php",
SpellingDictionaryMagic="SpellingDictionary.i18n.magic.php",
},
Hooks={
BeforePageDisplay={
"SpellingDictionaryHooks::onBeforePageDisplay",},
ResourceLoaderGetConfigVars={
"SpellingDictionaryHooks::onResourceLoaderGetConfigVars",},
ParserFirstCallInit={
"SpellingDictionaryHooks::onParserFirstCallInit",},
MagicWordwgVariableIDs={
"SpellingDictionaryHooks::onRegisterMagicWords",},
ParserGetVariableValueSwitch={
"SpellingDictionaryHooks::onParserGetVariableValueSwitch",},
LoadExtensionSchemaUpdates={
"SpellingDictionaryHooks::onLoadExtensionSchemaUpdates",},
},
config={
wgSpellingDictionaryDatabase={
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SpellingDictionary",
},
SphinxSearch={
name="SphinxSearch",
author={
"Svemir Brkic","Paul Grinberg",},
url="https://www.mediawiki.org/wiki/Extension:SphinxSearch",
descriptionmsg="sphinxsearch-desc",
["license-name"]="GPL-2.0",
type="other",
version="1.0.0",
requires={
MediaWiki="&gt;= 1.41.0",
},
ExtensionFunctions={
"SphinxMWSearch::initialize",},
config={
SphinxSearch_host="127.0.0.1",
SphinxSearch_port=9312,
SphinxSearch_index="wiki_main",
SphinxSearch_index_list="*",
SphinxSearch_index_weights="null",
SphinxSearch_mode=4,
SphinxSearch_sortmode=0,
SphinxSearch_sortby="",
SphinxSearch_maxmatches=1000,
SphinxSearch_cutoff=0,
SphinxSearch_weights={
old_text=1,
page_title=100,
},
SphinxSearchMWHighlighter=false,
SphinxSuggestMode="",
SphinxSearchAspellPath="aspell",
SphinxSearchPersonalDictionary="",
EnableSphinxInfixSearch=false,
EnableSphinxPrefixSearch=false,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SphinxSearch",
},
SplitPrivateWiki={
name="SplitPrivateWiki",
version="0.2",
author="Brian Wolff",
url="https://www.mediawiki.org/wiki/Extension:SplitPrivateWiki",
descriptionmsg="splitprivatewiki-desc",
["license-name"]="GPL-2.0+",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
JobClasses={
SyncArticleJob="SyncArticleJob",
},
callback="SplitPrivateWiki::registerExtension",
Hooks={
InitializeArticleMaybeRedirect="SplitPrivateWiki::onInitializeArticleMaybeRedirect",
LoadExtensionSchemaUpdates="SplitPrivateWiki::onLoadExtensionSchemaUpdates",
ArticleDeleteComplete="SplitPrivateWiki::onArticleDeleteComplete",
ArticleUndelete="SplitPrivateWiki::onArticleUndelete",
PageMoveComplete="SplitPrivateWiki::onPageMoveComplete",
LanguageGetNamespaces="SplitPrivateWiki::onLanguageGetNamespaces",
},
config={
ExclusiveNamespaces={
value={
},
},
BuiltinNamespacesToRename={
value={
-1,2,3,14,15,8,9,},
},
SplitWikiShowInRc={
value="bot",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SplitPrivateWiki",
},
SportsTeams={
name="SportsTeams",
version="3.7.0",
author={
"Aaron Wright","Ashish Datta","David Pean","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.34.0",
},
url="https://www.mediawiki.org/wiki/Extension:SportsTeams",
descriptionmsg="sportsteams-desc",
type="other",
GroupPermissions={
sysop={
sportsteamsmanager=true,
},
staff={
sportsteamsmanager=true,
},
},
AvailableRights={
"sportsteamsmanager",},
SpecialPages={
AddFan="AddFan",
FanHome="FanHome",
RemoveFan="RemoveFan",
SimilarFans="SimilarFans",
SportsManagerLogo="SportsManagerLogo",
SportsTeamsManager="SportsTeamsManager",
SportsTeamsManagerLogo="SportsTeamsManagerLogo",
TopNetworks="TopNetworks",
UpdateFavoriteTeams="UpdateFavoriteTeams",
ViewFans="ViewFans",
},
APIModules={
sportsteams="ApiSportsTeams",
},
ExtensionMessagesFiles={
SportsTeamsAlias="includes/SportsTeams.alias.php",
},
Hooks={
UserProfileBeginLeft={
"SportsTeamsUserProfile::showLatestThought","SportsTeamsUserProfile::showFavoriteTeams",},
LocalUserCreated="SportsTeamsHooks::addFavoriteTeam",
BeforePageDisplay="SportsTeamsHooks::addSportsTeamsToSignupPage",
LoadExtensionSchemaUpdates="SportsTeamsHooks::onLoadExtensionSchemaUpdates",
},
config={
SportsTeamsGoogleAPIKey="ABQIAAAAnfs7bKE82qgb3Zc2YyS-oBT2yXp_ZAY8_ufC3CFXhHIE1NvwkxSySz_REpPq-4WZA27OwgbtyR3VcA",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SportsTeams",
},
StaffEdits={
name="StaffEdits",
version="0.1.4",
author={
"Jack Phoenix",},
url="https://www.mediawiki.org/wiki/Extension:StaffEdits",
descriptionmsg="staffedit-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
config={
StaffEditsMessagePrefix="sw",
},
Hooks={
["EditPage::showEditForm:initial"]={
"StaffEdits::onEditPage",},
ListDefinedTags={
"StaffEdits::onListDefinedTags",},
RecentChange_save={
"StaffEdits::onRecentChange_save",},
ChangeTagsListActive={
"StaffEdits::onListDefinedAndActiveTags",},
},
AvailableRights={
"staffedit",},
GroupPermissions={
staff={
staffedit=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/StaffEdits",
},
StaffPowers={
name="StaffPowers",
version="1.4",
author={
"Łukasz Garczewski","Jack Phoenix","Mainframe98",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:StaffPowers",
descriptionmsg="staffpowers-desc",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
BlockIp={
"StaffPowers::makeUnblockable",},
},
AvailableRights={
"unblockable",},
GroupPermissions={
staff={
unblockable=true,
},
},
config={
StaffPowersStewardGroupName="steward",
StaffPowersShoutWikiMessages=true,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/StaffPowers",
},
StandardDialogs={
name="StandardDialogs",
version="3.0.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://en.wiki.bluespice.com/wiki/Reference:StandardDialogs",
descriptionmsg="standarddialogs-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
OOJSPlus="&gt;= 2.0.0",
},
},
attributes={
EnhancedStandardUIs={
AllPagesPluginModules={
"ext.standardDialogs.allpages",},
FilelistPluginModules={
"ext.standardDialogs.filelist",},
},
},
HookHandlers={
skin={
class="\\MediaWiki\\Extension\\StandardDialogs\\HookHandler\\Skin",
services={
"PermissionManager","NamespaceInfo",},
},
["discovery-skin"]={
class="\\MediaWiki\\Extension\\StandardDialogs\\HookHandler\\DiscoverySkin",
},
["bs-books-overview-page-actions"]={
class="\\MediaWiki\\Extension\\StandardDialogs\\HookHandler\\BookshelfDeleteAction",
},
},
Hooks={
["SkinTemplateNavigation::Universal"]="skin",
BlueSpiceDiscoveryTemplateDataProviderAfterInit="discovery-skin",
BSBookshelfBooksOverviewBeforeSetBookActions="bs-books-overview-page-actions",
},
composer="mediawiki/standard-dialogs",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/StandardDialogs",
},
StandardWikitext={
name="StandardWikitext",
version="2.5",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",
url="https://www.mediawiki.org/wiki/Extension:StandardWikitext",
descriptionmsg="standardwikitext-desc",
["license-name"]="GPL-3.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
},
ExtensionMessagesFiles={
StandardWikitextMagic="StandardWikitext.magic.php",
},
Hooks={
GetDoubleUnderscoreIDs="StandardWikitext::onGetDoubleUnderscoreIDs",
PageSaveComplete="StandardWikitext::onPageSaveComplete",
},
config={
StandardWikitextAccount={
value="StandardWikitext bot",
},
StandardWikitextNamespaces={
value={
0,},
merge_strategy="provide_default",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/StandardWikitext",
},
["StatCounter.com_Integration"]={
name="StatCounter.com Integration",
version="1.1",
author={
"Jack Phoenix",},
url="https://www.mediawiki.org/wiki/Extension:StatCounter.com_Integration",
descriptionmsg="statcounter-desc",
type="other",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
SkinBuildSidebar={
"StatCounterHooks::onSkinBuildSidebar",},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/StatCounter",
},
StickyTOC={
name="StickyTOC",
version="1.0.0",
author={
"WikiWorks Team",},
url="https://www.mediawiki.org/wiki/Extension:StickyTOC",
descriptionmsg="stickytoc-desc",
["license-name"]="LGPL-2.1-only",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
skins={
chameleon="&gt;= 2.0",
},
},
Hooks={
BeforePageDisplay={
"StickyTOC\\StickyTOCHooks::onBeforePageDisplay",},
ResourceLoaderGetConfigVars={
"StickyTOC\\StickyTOCHooks::onResourceLoaderGetConfigVars",},
},
config={
StickyTOCFloat={
description="To which side to float",
value="left",
},
StickyTOCNavbar={
description="Forces TOC to run in sticky navbar compatible mode",
value=false,
},
StickyTOCReplaceTitle={
description="Replaces TOC title with article title",
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/StickyTOC",
},
StopForumSpam={
name="StopForumSpam",
version="0.4.0",
author={
"Kunal Mehta","Ryan Schmidt","Scott Bassett",},
url="https://www.mediawiki.org/wiki/Extension:StopForumSpam",
descriptionmsg="stopforumspam-desc",
["license-name"]="GPL-2.0-or-later",
type="antispam",
requires={
MediaWiki="&gt;= 1.42",
},
AvailableRights={
"sfsblock-bypass",},
GroupPermissions={
sysop={
["sfsblock-bypass"]=true,
},
},
RawHtmlMessages={
"stopforumspam-is-blocked",},
HookHandlers={
abusefilter={
class="MediaWiki\\Extension\\StopForumSpam\\AbuseFilterHookHandler",
services={
"MainConfig",},
},
hooks={
class="MediaWiki\\Extension\\StopForumSpam\\Hooks",
services={
"MainConfig",},
},
},
Hooks={
["AbuseFilter-computeVariable"]="abusefilter",
["AbuseFilter-generateUserVars"]="abusefilter",
["AbuseFilter-builder"]="abusefilter",
getUserPermissionsErrorsExpensive="hooks",
OtherBlockLogLink="hooks",
},
config={
SFSReportOnly={
value=false,
},
SFSIPListLocation={
value="https://www.stopforumspam.com/downloads/listed_ip_1_ipv46_all.gz",
},
SFSValidateIPListLocationMD5={
value=false,
},
SFSIPThreshold={
value=5,
},
SFSDenyListCacheDuration={
value=432000,
},
SFSProxy={
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/StopForumSpam",
},
StructuredNavigation={
name="StructuredNavigation",
version="2.0.0",
author={
"Sam Nguyen",},
["license-name"]="MIT",
url="https://www.mediawiki.org/wiki/Extension:StructuredNavigation",
descriptionmsg="structurednav-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.34.0",
platform={
php="&gt;= 7.4",
},
},
callback="StructuredNavigation\\Hooks\\ExtensionCallback::onRegistrationCallback",
ExtensionMessagesFiles={
StructuredNavigationNamespaces="StructuredNavigation.i18n.namespaces.php",
StructuredNavigationAliases="StructuredNavigation.i18n.aliases.php",
},
ServiceWiringFiles={
"src/Services/ServiceWiring.php",},
Hooks={
BeforeDisplayNoArticleText="StructuredNavigation\\Hooks\\BeforeDisplayNoArticleTextHandler::onBeforeDisplayNoArticleText",
CodeEditorGetPageLanguage="StructuredNavigation\\Hooks\\HookHandler::onCodeEditorGetPageLanguage",
ParserFirstCallInit="StructuredNavigation\\Hooks\\ParserFirstCallInitHandler::onParserFirstCallInit",
UserGetReservedNames="StructuredNavigation\\Hooks\\HookHandler::onUserGetReservedNames",
},
SpecialPages={
NavigationSchema={
class="StructuredNavigation\\Specials\\SpecialNavigationSchema",
services={
"StructuredNavigation.DocumentationContent",},
},
TitlesUsedInNavigation={
class="StructuredNavigation\\Specials\\SpecialTitlesUsedInNavigation",
services={
"StructuredNavigation.NavigationFactory","StructuredNavigation.NamespacedTitleSearcher",},
},
},
ContentHandlers={
StructuredNavigation="StructuredNavigation\\Content\\NavigationContentHandler",
},
RestRoutes={
{
path="/structurednav/v0/examples",
method="GET",
class="StructuredNavigation\\Api\\Rest\\NavigationExamplesHandler",
services={
"StructuredNavigation.DocumentationContent",},
},{
path="/structurednav/v0/schema",
method="GET",
class="StructuredNavigation\\Api\\Rest\\NavigationSchemaHandler",
services={
"StructuredNavigation.DocumentationContent",},
},{
path="/structurednav/v0/{title}/data",
method="GET",
class="StructuredNavigation\\Api\\Rest\\NavigationDataHandler",
services={
"StructuredNavigation.NavigationFactory",},
},{
path="/structurednav/v0/{title}/html",
method="GET",
class="StructuredNavigation\\Api\\Rest\\NavigationHtmlHandler",
services={
"StructuredNavigation.NavigationViewPresenter",},
},{
path="/structurednav/v0/{title}/titles-used",
method="GET",
class="StructuredNavigation\\Api\\Rest\\NavigationTitlesUsedHandler",
services={
"StructuredNavigation.NavigationFactory",},
},},
ConfigRegistry={
structurednavigation="StructuredNavigation\\Hooks\\ExtensionCallback::getGlobalVarConfig",
},
config={
StructuredNavigationEnableExperimentalAPI={
value=false,
},
StructuredNavigationReservedUsername={
value="msg:structurednav-reserved-username",
},
},
namespaces={
{
id=2940,
constant="NS_NAVIGATION",
name="Navigation",
subpages=true,
defaultcontentmodel="StructuredNavigation",
protection={
"structurednav-edit","structurednav-create",},
},{
id=2941,
constant="NS_NAVIGATION_TALK",
name="Navigation_talk",
subpages=true,
content=false,
defaultcontentmodel="wikitext",
},},
GroupPermissions={
user={
["structurednav-create"]=true,
["structurednav-edit"]=true,
},
},
AvailableRights={
"structurednav-create","structurednav-edit",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/StructuredNavigation",
},
SubPageList3={
name="Subpage List 3",
version="1.4",
descriptionmsg="spl3-desc",
url="https://www.mediawiki.org/wiki/Extension:SubPageList3",
author={
"James McCormack","Martin Schallnahs","Rob Church",},
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42",
},
Hooks={
ParserFirstCallInit="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\SubPageList3\\Hooks",
},
},
ConfigRegistry={
SubPageList3="GlobalVarConfig::newInstance",
},
config={
SubPageListDescendantsLimit={
value=200,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SubPageList3",
},
SubnetCalc={
name="SubnetCalc",
version="4.1.1",
["license-name"]="GPL-3.0-only",
author={
"Oblivious",},
url="https://sourceforge.net/projects/subntcalc/",
descriptionmsg="subnetcalc-desc",
type="bluespice",
Hooks={
ParserFirstCallInit="setParserHook",
},
HookHandlers={
setParserHook={
class="SubnetCalc\\Hook\\ParserFirstCallInit\\SetParserHook",
},
},
composer="mediawiki/subnet-calc",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SubnetCalc",
},
Subpage_Fun={
name="Subpage Fun",
version="0.7.0",
author="[https://www.mediawiki.org/wiki/User:Danwe Daniel Werner]",
url="https://www.mediawiki.org/wiki/Extension:Subpage_Fun",
descriptionmsg="subpagefun-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.34.0",
},
ExtensionMessagesFiles={
SubpageFunMagic="SubpageFun.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="ExtSubpageFun::init",
MagicWordwgVariableIDs="ExtSubpageFun::onMagicWordwgVariableIDs",
ParserGetVariableValueSwitch="ExtSubpageFun::onParserGetVariableValueSwitch",
GetThisVariableValueSwitch="ExtSubpageFun::onGetThisVariableValueSwitch",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SubpageFun",
},
SubpageNavigation={
name="SubpageNavigation",
author="thomas-topway-it",
version="1.2.1",
url="https://www.mediawiki.org/wiki/Extension:SubpageNavigation",
descriptionmsg="subpagenavigation-extension-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.35.0",
},
callback="SubpageNavigationHooks::onRegistration",
ExtensionMessagesFiles={
SubpageNavigationAlias="SubpageNavigation.alias.php",
SubpageNavigationMagic="SubpageNavigationMagic.i18n.magic.php",
},
Hooks={
BeforeInitialize="SubpageNavigationHooks::onBeforeInitialize",
SidebarBeforeOutput="SubpageNavigationHooks::onSidebarBeforeOutput",
MediaWikiServices="SubpageNavigationHooks::onMediaWikiServices",
BeforePageDisplay="SubpageNavigationHooks::onBeforePageDisplay",
ArticleViewHeader="SubpageNavigationHooks::onArticleViewHeader",
SkinSubPageSubtitle="SubpageNavigationHooks::onSkinSubPageSubtitle",
SkinAfterPortlet="SubpageNavigationHooks::onSkinAfterPortlet",
SkinBuildSidebar="SubpageNavigationHooks::onSkinBuildSidebar",
},
ConfigRegistry={
subpagenavigation="GlobalVarConfig::newInstance",
},
SpecialPages={
SubpageNavigationBrowse="SpecialSubpageNavigationBrowse",
},
APIModules={
["subpagenavigation-tree"]={
class="MediaWiki\\Extension\\SubpageNavigation\\Api",
services={
"ConfigFactory",},
},
["subpagenavigation-check-latest-version"]="SubpageNavigationApiCheckLatestVersion",
},
config={
SubpageNavigationCacheStore={
value="SessionCache",
},
SubpageNavigationShowTree={
value=false,
},
SubpageNavigationShowBreadcrumbs={
value=true,
},
SubpageNavigationShowArticleHeader={
value=true,
},
SubpageNavigationTreeShowChildrenCount={
value=true,
},
SubpageNavigationTreeSubpagesLimit={
value=30,
},
SubpageNavigationArticleHeaderSubpagesLimit={
value=20,
},
SubpageNavigationDisableCache={
value=false,
},
SubpageNavigationDefaultOptions={
value={
showcount=true,
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SubpageNavigation",
},
SubpageSortkey={
name="Subpage Sortkey",
version="0.2.0",
author={
"Brian Wolff",},
url="https://www.mediawiki.org/wiki/Extension:SubpageSortkey",
descriptionmsg="subpagesortkey-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
Hooks={
GetDefaultSortkey="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\SubpageSortkey\\SubpageSortkey",
},
},
config={
SubpageSortkeyDefault={
value=false,
},
SubpageSortkeyByNamespace={
value={
},
merge_strategy="array_plus",
},
SubpageSortkeyIfNoSubpageUseFullName={
value=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SubpageSortkey",
},
SubpageWatchlist={
name="SubpageWatchlist",
version="2.1.0",
["license-name"]="GPL-3.0",
author={
"[https://mediawiki.org/wiki/User:Bawolff Brian Wolff]","[http://mwstake.org Mark A. Hershberger]",},
requires={
MediaWiki="&gt;= 1.39",
},
url="https://www.mediawiki.org/wiki/Extension:SubpageWatchlist",
descriptionmsg="subpagewatchlist-desc",
type="specialpage",
Hooks={
ChangesListSpecialPageStructuredFilters={
"main",},
ChangesListSpecialPageQuery={
"main",},
GetPreferences={
"main",},
AbortEmailNotification={
"enotif",},
PageViewUpdates={
"enotif",},
},
HookHandlers={
main={
class="MediaWiki\\Extensions\\SubpageWatchlist\\Hooks",
services={
"UserOptionsManager","DBLoadBalancer","MainConfig",},
},
enotif={
class="MediaWiki\\Extensions\\SubpageWatchlist\\Enotif",
services={
"DBLoadBalancer","MainConfig","UserOptionsManager","ContentLanguage","MessageCache","WatchlistManager","WatchedItemStore",},
},
},
DefaultUserOptions={
watchlisthidesubpages=false,
enotifwatchlistsubpages=true,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SubpageWatchlist",
},
Sudo={
name="Sudo",
version="0.6.0",
author={
"[https://www.mediawiki.org/wiki/User:Dantman Daniel Friesen]","...",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:Sudo",
descriptionmsg="sudo-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.0",
},
AvailableRights={
"sudo",},
SpecialPages={
Sudo="SpecialSudo",
},
LogTypes={
"sudo",},
LogNames={
sudo="sudo-logpagename",
},
LogHeaders={
sudo="sudo-logpagetext",
},
LogActions={
["sudo/sudo"]="sudo-logentry",
},
ExtensionMessagesFiles={
SudoAlias="Sudo.alias.php",
},
Hooks={
UserLogoutComplete="SudoHooks::onUserLogoutComplete",
["SkinTemplateNavigation::Universal"]="SudoHooks::onSkinTemplateNavigation__Universal",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Sudo",
},
Survey={
name="Survey",
version="0.4.0-alpha",
author={
"[http://www.mediawiki.org/wiki/User:Jeroen_De_Dauw Jeroen De Dauw] for [http://www.wikiworks.com WikiWorks]",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:Survey",
descriptionmsg="survey-desc",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
APIListModules={
surveys="ApiQuerySurveys",
surveyanswers="ApiQuerySurveyAnswers",
surveysubmissions="ApiQuerySurveySubmissions",
},
APIModules={
addsurvey="ApiAddSurvey",
deletesurvey="ApiDeleteSurvey",
editsurvey="ApiEditSurvey",
submitsurvey="ApiSubmitSurvey",
},
AvailableRights={
"surveyadmin","surveysubmit",},
GroupPermissions={
["*"]={
surveyadmin=false,
surveysubmit=true,
},
user={
surveyadmin=false,
surveysubmit=true,
},
autoconfirmed={
surveyadmin=false,
surveysubmit=true,
},
bot={
surveyadmin=false,
surveysubmit=false,
},
sysop={
surveyadmin=true,
surveysubmit=true,
},
},
SpecialPages={
EditSurvey="SpecialSurvey",
Surveys="SpecialSurveys",
SurveyStats="SpecialSurveyStats",
TakeSurvey="SpecialTakeSurvey",
},
ExtensionMessagesFiles={
SurveyAlias="Survey.alias.php",
},
Hooks={
LoadExtensionSchemaUpdates="SurveyHooks::onSchemaUpdate",
ParserFirstCallInit="SurveyHooks::onParserFirstCallInit",
ArticleViewHeader="SurveyHooks::onArticleViewHeader",
AdminLinks="SurveyHooks::addToAdminLinks",
},
config_prefix="eg",
config={
SurveySettings={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Survey",
},
SwiftMailer={
name="SwiftMailer",
version="1.1",
author={
"Tony Thomas",},
url="https://www.mediawiki.org/wiki/Extension:SwiftMailer",
descriptionmsg="swiftmailer-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
AlternateUserMailer="SwiftMailerHooks::onAlternateUserMailer",
},
config={
SMTPAuthenticationMethod={
value=false,
},
},
repository="https://github.com/wikimedia/mediawiki-extensions-SwiftMailer",
composer="mediawiki/swiftmailer",
},
SyntaxHighlight={
name="SyntaxHighlight",
version="2.0",
author={
"Brion Vibber","Tim Starling","Rob Church","Niklas Laxström","Ori Livneh","Ed Sanders",},
url="https://www.mediawiki.org/wiki/Extension:SyntaxHighlight",
descriptionmsg="syntaxhighlight-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
platform={
["ability-shell"]=true,
},
},
Hooks={
ParserFirstCallInit="main",
ContentGetParserOutput="main",
ApiFormatHighlight="main",
SoftwareInfo="main",
},
HookHandlers={
main={
class="MediaWiki\\SyntaxHighlight\\SyntaxHighlight",
},
},
ParsoidModules={
"MediaWiki\\SyntaxHighlight\\ParsoidExt",},
attributes={
SyntaxHighlight={
Models={
},
},
VisualEditor={
PluginModules={
"ext.geshi.visualEditor",},
},
},
config={
PygmentizePath={
value=false,
},
SyntaxHighlightMaxLines={
value=1000,
},
SyntaxHighlightMaxBytes={
value=102400,
},
},
TrackingCategories={
"syntaxhighlight-error-category","syntaxhighlight-enclose-category","syntaxhighlight-source-category",},
composer="mediawiki/syntax-highlight",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/SyntaxHighlight_GeSHi",
},
TEI={
name="TEI",
author={
"Thomas Pellissier Tanon",},
url="https://www.mediawiki.org/wiki/Extension:TEI",
descriptionmsg="tei-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.39.0",
},
ContentHandlers={
tei="MediaWiki\\Extension\\Tei\\TeiContentHandler",
},
APIModules={
teiconvert="MediaWiki\\Extension\\Tei\\Api\\ApiTeiConvert",
teivalidate="MediaWiki\\Extension\\Tei\\Api\\ApiTeiValidate",
},
Hooks={
BeforePageDisplay="MediaWiki\\Extension\\Tei\\HooksHandler::onBeforePageDisplay",
},
callback="MediaWiki\\Extension\\Tei\\HooksHandler::onRegister",
composer="mediawiki/tei",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TEI",
},
Tabs={
name="Tabs",
version="1.3.2",
author="Joeytje50",
url="https://www.mediawiki.org/wiki/Extension:Tabs",
descriptionmsg="tabs-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
ExtensionMessagesFiles={
TabsMagic="Tabs.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="Tabs::init",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Tabs",
},
TalkBelow={
name="TalkBelow",
version="4.0.1",
url="https://www.mediawiki.org/wiki/Extension:TalkBelow",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",
descriptionmsg="talkbelow-desc",
["license-name"]="GPL-3.0-or-later",
type="interface",
requires={
MediaWiki="&gt;= 1.39.0",
},
ExtensionMessagesFiles={
TalkBelowMagic="TalkBelow.magic.php",
},
Hooks={
BeforePageDisplay="TalkBelow::onBeforePageDisplay",
GetDoubleUnderscoreIDs="TalkBelow::onGetDoubleUnderscoreIDs",
ResourceLoaderGetConfigVars="TalkBelow::onResourceLoaderGetConfigVars",
SkinAfterContent="main",
["SkinTemplateNavigation::Universal"]="TalkBelow::onSkinTemplateNavigationUniversal",
},
HookHandlers={
main={
class="TalkBelow",
services={
"WikiPageFactory",},
},
},
config={
TalkBelowChangeTag={
value="",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TalkBelow",
},
TemplateData={
name="TemplateData",
version="0.1.2",
author={
"Timo Tijhof","Moriel Schottlender","James D. Forrester","Trevor Parscal","Bartosz Dziewoński","Marielle Volz","...",},
url="https://www.mediawiki.org/wiki/Extension:TemplateData",
descriptionmsg="templatedata-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
},
APIModules={
templatedata="MediaWiki\\Extension\\TemplateData\\Api\\ApiTemplateData",
},
Hooks={
["EditPage::showEditForm:fields"]="main",
ParserFirstCallInit="main",
MultiContentSave="main",
ResourceLoaderRegisterModules="main",
["EditPage::showEditForm:initial"]="main",
ParserFetchTemplateData="main",
OutputPageBeforeHTML="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\TemplateData\\Hooks",
services={
"MainConfig",},
},
},
QUnitTestModule={
localBasePath="tests/qunit",
remoteExtPath="TemplateData/tests/qunit",
scripts={
"ext.templateData.tests.js",},
dependencies={
"ext.templateDataGenerator.data",},
},
attributes={
VisualEditor={
PluginModules={
"ext.templateDataGenerator.editPage",},
},
},
config={
TemplateDataUseGUI={
value=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TemplateData",
},
TemplateSandbox={
name="TemplateSandbox",
version="1.1.0",
author="Brad Jorsch",
url="https://www.mediawiki.org/wiki/Extension:TemplateSandbox",
descriptionmsg="templatesandbox-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42",
},
SpecialPages={
TemplateSandbox={
class="MediaWiki\\Extension\\TemplateSandbox\\SpecialTemplateSandbox",
services={
"RevisionLookup","ContentHandlerFactory","WikiPageFactory","ContentRenderer",},
},
},
ExtensionMessagesFiles={
TemplateSandboxAlias="TemplateSandbox.alias.php",
},
Hooks={
["EditPage::importFormData"]="main",
["EditPage::showStandardInputs:options"]="main",
AlternateEditPreview="main",
APIGetAllowedParams="main",
ApiMakeParserOptions="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\TemplateSandbox\\Hooks",
},
},
attributes={
VisualEditor={
PluginModules={
"ext.TemplateSandbox.visualeditor",},
},
},
config={
TemplateSandboxEditNamespaces={
description="Namespaces to show a page preview box for in edit mode",
value={
10,},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TemplateSandbox",
},
TemplateStyles={
name="TemplateStyles",
version="1.0",
author={
"Brad Jorsch","Marc A. Pelletier",},
url="https://www.mediawiki.org/wiki/Extension:TemplateStyles",
namemsg="templatestyles",
descriptionmsg="templatestyles-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
},
ContentHandlers={
["sanitized-css"]="MediaWiki\\Extension\\TemplateStyles\\TemplateStylesContentHandler",
},
TrackingCategories={
"templatestyles-stylesheet-error-category","templatestyles-page-error-category",},
attributes={
SyntaxHighlight={
Models={
["sanitized-css"]="css",
},
},
TemplateStyles={
Namespaces={
},
},
TemplateSandbox={
EditContentModels={
"sanitized-css",},
},
},
callback="MediaWiki\\Extension\\TemplateStyles\\Hooks::onRegistration",
Hooks={
ParserFirstCallInit="main",
ParserClearState="main",
ContentHandlerDefaultModelFor="main",
CodeEditorGetPageLanguage="codeeditor",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\TemplateStyles\\Hooks",
},
codeeditor={
class="MediaWiki\\Extension\\TemplateStyles\\CodeEditorHooks",
},
},
config={
TemplateStylesDisable={
description="When set to true, no styles are output. This flag is for development and will be removed.",
value=false,
},
TemplateStylesAllowedUrls={
description="PCRE regexes to match allowed URLs for various types of external references. Known types are:\n; audio: Sound files\n; image: Images\n; svg: SVGs for the Filter and Masking modules\n; font: External fonts\n; namespace: @namespace declarations\n; css: @import declarations\nIf you want to allow an entire domain, be sure to include a trailing '/', e.g. \"&lt;^https://allowed\\.example\\.org/&gt;\" rather than \"&lt;^https://allowed\\.example\\.org&gt;\", so people can't bypass your filter by creating a subdomain like \"https://allowed.example.org.evil.com\".",
value={
audio={
"&lt;^https://upload\\.wikimedia\\.org/wikipedia/commons/&gt;",},
image={
"&lt;^https://upload\\.wikimedia\\.org/wikipedia/commons/&gt;",},
svg={
"&lt;^https://upload\\.wikimedia\\.org/wikipedia/commons/[^?#]*\\.svg(?:[?#]|$)&gt;",},
font={
},
namespace={
"&lt;.&gt;",},
css={
},
},
},
TemplateStylesNamespaces={
description="Namespaces to default the content model to CSS on .css subpages.",
value={
[11]=true,
},
merge_strategy="array_plus",
},
TemplateStylesDisallowedProperties={
description="Disallowed style properties that would otherwise be allowed. See also the TemplateStylesPropertySanitizer hook, which allows for finer-grained control.",
value={
},
},
TemplateStylesDisallowedAtRules={
description="Disallowed at-rules that would otherwise be allowed. Include the '@' in the name. See also the TemplateStylesStylesheetSanitizer hook, which allows for finer-grained control.",
value={
},
},
TemplateStylesUseCodeEditor={
description="Use CodeEditor when editing TemplateStyles CSS pages.",
value=true,
},
TemplateStylesAutoParseContent={
description="Set this false if you want to manage an entry for 'sanitized-css' in $wgTextModelsToParse manually. If true, an entry will be added to $wgTextModelsToParse automatically if CONTENT_MODEL_CSS is in the array.",
value=true,
},
TemplateStylesMaxStylesheetSize={
description="The maximum size of a stylesheet, in bytes. Set null if you don't want to impose a limit.",
value=102400,
},
TemplateStylesDefaultNamespace={
description="The default namespace for the src attribute of the &lt;templatestyles&gt; tag. The value 10 corresponds to NS_TEMPLATE.",
value=10,
},
},
ConfigRegistry={
templatestyles="GlobalVarConfig::newInstance",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TemplateStyles",
},
TemplateWizard={
name="TemplateWizard",
version="0.1.0",
author={
"Sam Wilson",},
url="https://www.mediawiki.org/wiki/Extension:TemplateWizard",
descriptionmsg="templatewizard-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.42",
extensions={
TemplateData="*",
WikiEditor="&gt;= 0.5.3",
},
},
Hooks={
["EditPage::showEditForm:initial"]="main",
ResourceLoaderGetConfigVars="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\TemplateWizard\\Hooks",
},
},
ConfigRegistry={
templatewizard="GlobalVarConfig::newInstance",
},
attributes={
EventLogging={
Schemas={
TemplateWizard="/analytics/legacy/templatewizard/1.2.0",
},
},
},
QUnitTestModule={
localBasePath="tests/qunit",
remoteExtPath="TemplateWizard/tests/qunit",
scripts={
"ext.TemplateWizard.test.js","ext.TemplateWizard.Model.Parameters.test.js","ext.TemplateWizard.SearchField.test.js",},
dependencies={
"ext.TemplateWizard",},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TemplateWizard",
},
TestLanguageNameGrammar={
name="TestLanguageNameGrammar",
version="20150704WeThePeople",
author={
"Amir E. Aharoni",},
url="https://www.mediawiki.org/wiki/Extension:TestLanguageNameGrammar",
descriptionmsg="testlanguagenamegrammar-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.0",
},
SpecialPages={
TestLanguageNameGrammar={
class="SpecialTestLanguageNameGrammar",
services={
"LanguageFactory","LanguageNameUtils",},
},
},
ExtensionMessagesFiles={
TestLanguageNameGrammarAlias="TestLanguageNameGrammar.alias.php",
},
composer="mediawiki/test-language-name-grammar",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TestLanguageNameGrammar",
},
TextExtracts={
name="TextExtracts",
author={
"Max Semenik",},
requires={
MediaWiki="&gt;= 1.42",
},
url="https://www.mediawiki.org/wiki/Extension:TextExtracts",
descriptionmsg="textextracts-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
ConfigRegistry={
textextracts="GlobalVarConfig::newInstance",
},
APIPropModules={
extracts={
class="TextExtracts\\ApiQueryExtracts",
services={
"ConfigFactory","MainWANObjectCache","LanguageConverterFactory","WikiPageFactory",},
},
},
Hooks={
ApiOpenSearchSuggest="main",
},
HookHandlers={
main={
class="TextExtracts\\Hooks",
},
},
config={
ExtractsRemoveClasses={
value={
"table","div","figure","script","input","style","ul.gallery",".mw-editsection","sup.reference","ol.references",".error",".nomobile",".noprint",".noexcerpt",".sortkey",},
},
ExtractsExtendOpenSearchXml={
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TextExtracts",
},
TextScroller={
name="txtscrl",
version="1.1",
author={
"Jordan Small",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:TextScroller",
descriptionmsg="textscroller-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.34.0",
},
ExtensionMessagesFiles={
TextScrollerMagic="TextScroller.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="TextScroller::setParserFunction",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TextScroller",
},
Thanks={
name="Thanks",
version="1.2.0",
author={
"Ryan Kaldari","Benjamin Chen","Wctaiwan",},
url="https://www.mediawiki.org/wiki/Extension:Thanks",
descriptionmsg="thanks-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.42",
extensions={
Echo="*",
},
},
DefaultUserOptions={
["echo-subscriptions-web-edit-thank"]=true,
["echo-subscriptions-email-edit-thank"]=false,
},
RateLimits={
["thanks-notification"]={
user={
10,60,},
},
},
SpecialPages={
Thanks={
class="MediaWiki\\Extension\\Thanks\\SpecialThanks",
services={
"UserFactory",},
},
},
LogTypes={
"thanks",},
FilterLogTypes={
thanks=true,
},
LogActionsHandlers={
["thanks/*"]="MediaWiki\\Extension\\Thanks\\ThanksLogFormatter",
},
APIModules={
thank={
class="MediaWiki\\Extension\\Thanks\\Api\\ApiCoreThank",
services={
"PermissionManager","RevisionStore","UserFactory","ThanksLogStore",},
},
},
ExtensionMessagesFiles={
ThanksAlias="Thanks.alias.php",
},
QUnitTestModule={
localBasePath="tests/qunit",
remoteExtPath="Thanks/tests/qunit",
scripts={
"test_ext.thanks.thank.js",},
dependencies={
"ext.thanks",},
},
Hooks={
["ApiMain::moduleManager"]="main",
BeforeCreateEchoEvent="echo",
BeforePageDisplay="main",
DiffTools="main",
DifferenceEngineViewHeader="main",
EchoGetBundleRules="echo",
GetAllBlockActions="main",
GetLogTypesOnUser="main",
HistoryTools="main",
LocalUserCreated="main",
LogEventsListLineEnding="main",
PageHistoryBeforeList="main",
["PageHistoryPager::doBatchLookups"]="main",
ChangesListInitRows="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Thanks\\Hooks",
services={
"MainConfig","GenderCache","PermissionManager","RevisionLookup","UserFactory","UserOptionsManager",},
},
echo={
class="MediaWiki\\Extension\\Thanks\\EchoHooks",
},
},
ServiceWiringFiles={
"ServiceWiring.php",},
config={
ThanksSendToBots={
value=false,
},
ThanksLogging={
value=true,
},
ThanksConfirmationRequired={
value=true,
},
ThanksAllowedLogTypes={
value={
"contentmodel","create","delete","import","merge","move","pagelang","patrol","protect","tag","upload","managetags","rights/rights","lock",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Thanks",
},
TheWikipediaLibrary={
name="TheWikipediaLibrary",
version="1.0.1",
author={
"Kavitha Muthu","Roan Kattouw",},
url="https://www.mediawiki.org/wiki/Extension:TheWikipediaLibrary",
namemsg="thewikipedialibrary",
descriptionmsg="thewikipedialibrary-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.42",
extensions={
CentralAuth="*",
GlobalPreferences="*",
},
},
DefaultUserOptions={
["twl-notified"]=nil,
},
Hooks={
PageSaveComplete="main",
BeforeCreateEchoEvent="echo",
GetPreferences="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\TheWikipediaLibrary\\Hooks",
},
echo={
class="MediaWiki\\Extension\\TheWikipediaLibrary\\EchoHooks",
},
},
config={
TwlUserPrimaryUrl={
description="URL for the notification's primary link",
value="https://wikipedialibrary.wmflabs.org/",
},
TwlUserSecondaryUrl={
description="URL for the notification's secondary link",
value="https://wikipedialibrary.wmflabs.org/",
},
TwlSendNotifications={
description="Whether to send Wikipedia Library notifications. If set to false, no notifications will be sent.",
value=true,
},
TwlRegistrationDays={
description="Minimum account age (in days) for a user to be eligible for the Wikipedia Library",
value=182,
},
TwlEditCount={
description="Minimum (global) edit count for a user to be eligible for the Wikipedia Library",
value=50000,
},
},
ConfigRegistry={
TheWikipediaLibrary="GlobalVarConfig::newInstance",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TheWikipediaLibrary",
},
Theme={
name="Theme",
namemsg="theme-extensionname",
version="2.5",
author={
"Ryan Schmidt","Jack Phoenix","Samantha Nguyen",},
url="https://www.mediawiki.org/wiki/Extension:Theme",
descriptionmsg="theme-desc",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
config={
DefaultTheme="default",
SkipThemes={
},
},
ThemeModules={
monobook={
"dark","pink","stellarbook",},
vector={
"dark","dark-grey",},
},
APIModules={
themelist={
class="MediaWiki\\Extension\\Theme\\ApiThemeList",
services={
"SkinFactory",},
},
},
Hooks={
BeforePageDisplay="ThemeHooks",
GetPreferences="ThemeHooks",
OutputPageBodyAttributes="ThemeHooks",
ResourceLoaderGetConfigVars="ThemeHooks",
},
HookHandlers={
ThemeHooks={
class="MediaWiki\\Extension\\Theme\\Hooks",
services={
"SkinFactory","UserOptionsLookup",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Theme",
},
ThrottleOverride={
name="ThrottleOverride",
version="0.6.0",
author="Tyler Romeo",
url="https://www.mediawiki.org/wiki/Extension:ThrottleOverride",
descriptionmsg="throttleoverride-desc",
["license-name"]="GPL-3.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
},
AvailableRights={
"throttleoverride",},
LogTypes={
"throttleoverride",},
LogActionsHandlers={
["throttleoverride/*"]="ThrottleOverrideLogFormatter",
},
Hooks={
PingLimiter="main",
ExemptFromAccountCreationThrottle="main",
LoadExtensionSchemaUpdates="schema",
SetupAfterCache="main",
SpecialPage_initList="main",
},
HookHandlers={
main={
class="ThrottleOverrideHooks",
},
schema={
class="ThrottleOverrideSchemaHooks",
},
},
JobClasses={
ThrottleOverridePurge="ThrottleOverridePurgeJob",
},
ExtensionMessagesFiles={
OverrideThrottleAlias="ThrottleOverride.i18n.alias.php",
},
config={
ThrottleOverrideCentralWiki={
value=false,
},
ThrottleOverrideCIDRLimit={
value={
IPv4=16,
IPv6=19,
},
},
ThrottleOverrideTypes={
value={
actcreate=true,
edit=true,
move=true,
mailpassword=false,
emailuser=false,
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/ThrottleOverride",
},
TimeMachine={
name="TimeMachine",
version="0.4",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Felipe Schenone]",
url="https://www.mediawiki.org/wiki/Extension:TimeMachine",
["license-name"]="GPL-3.0-only",
descriptionmsg="timemachine-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.31.0",
},
SpecialPages={
TimeMachine="MediaWiki\\Extension\\TimeMachine\\SpecialTimeMachine",
},
ExtensionMessagesFiles={
TimeMachineAlias="TimeMachine.alias.php",
},
Hooks={
BeforeInitialize="MediaWiki\\Extension\\TimeMachine\\Hooks::onBeforeInitialize",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TimeMachine",
},
TimedMediaHandler={
name="TimedMediaHandler",
namemsg="timedmediahandler-extensionname",
version="0.6.0",
author={
"Michael Dale","Jan Gerber","Derk-Jan Hartman","Brooke Vibber","Tim Starling","...",},
url="https://www.mediawiki.org/wiki/Extension:TimedMediaHandler",
descriptionmsg="timedmediahandler-desc",
["license-name"]="GPL-2.0-or-later",
type="media",
requires={
MediaWiki="&gt;= 1.42",
},
APIModules={
timedtext={
class="MediaWiki\\TimedMediaHandler\\ApiTimedText",
services={
"LanguageNameUtils","RepoGroup","MainWANObjectCache","WikiPageFactory",},
},
transcodereset={
class="MediaWiki\\TimedMediaHandler\\ApiTranscodeReset",
services={
"DBLoadBalancerFactory","RepoGroup",},
},
},
APIPropModules={
videoinfo="MediaWiki\\TimedMediaHandler\\ApiQueryVideoInfo",
transcodestatus={
class="MediaWiki\\TimedMediaHandler\\ApiTranscodeStatus",
services={
"RepoGroup",},
},
},
AvailableRights={
"transcode-reset","transcode-status",},
ExtensionFunctions={
"MediaWiki\\TimedMediaHandler\\Hooks::register",},
GroupPermissions={
sysop={
["transcode-reset"]=true,
["transcode-status"]=true,
},
autoconfirmed={
["transcode-reset"]=true,
["transcode-status"]=true,
},
},
GrantPermissions={
uploadeditmovefile={
["transcode-reset"]=true,
},
},
LogActionsHandlers={
["timedmediahandler/resettranscode"]="LogFormatter",
},
LogTypes={
"timedmediahandler",},
SpecialPages={
OrphanedTimedText={
class="MediaWiki\\TimedMediaHandler\\SpecialOrphanedTimedText",
services={
"DBLoadBalancerFactory","LanguageConverterFactory","RepoGroup",},
},
TranscodeStatistics={
class="MediaWiki\\TimedMediaHandler\\SpecialTranscodeStatistics",
services={
"DBLoadBalancerFactory","MainWANObjectCache",},
},
},
ExtensionMessagesFiles={
TimedMediaHandlerMagic="i18n/TimedMediaHandler.i18n.magic.php",
TimedMediaHandlerAliases="i18n/TimedMediaHandler.i18n.alias.php",
},
Hooks={
ArticleContentOnDiff="main",
ArticleFromTitle="main",
ArticlePurge="main",
BeforePageDisplay="main",
CanonicalNamespaces="main",
FileDeleteComplete="main",
FileUndeleteComplete="main",
FileUpload="main",
ImageOpenShowImageInlineBefore="main",
ImagePageAfterImageLinks="main",
ImagePageFileHistoryLine="main",
LoadExtensionSchemaUpdates="installer",
MediaWikiPerformAction="iframe",
RevisionFromEditComplete="main",
PageMoveComplete={
"main","timedtext",},
ParserTestGlobals="main",
["SkinTemplateNavigation::Universal"]="main",
TitleMove="main",
wgQueryPages="main",
PageSaveComplete="timedtext",
PageDeleteComplete="timedtext",
},
HookHandlers={
main={
class="MediaWiki\\TimedMediaHandler\\Hooks",
services={
"MainConfig","LinkRenderer","RepoGroup","SpecialPageFactory",},
},
timedtext={
class="MediaWiki\\TimedMediaHandler\\TimedTextHooks",
services={
"JobQueueGroup",},
},
iframe={
class="MediaWiki\\TimedMediaHandler\\TimedMediaIframeOutput",
services={
"MainConfig","RepoGroup",},
},
installer={
class="MediaWiki\\TimedMediaHandler\\InstallerHooks",
},
},
config={
WaitTimeForTranscodeReset={
description="How long you have to wait between transcode resets for non-error transcodes",
public=true,
value=3600,
},
MinimumVideoPlayerSize={
description="The minimum size for an embed video player (smaller than this size, it uses a pop-up player)",
public=true,
value=200,
},
MediaVideoTypes={
description="Set the supported ogg codecs for video",
public=true,
value={
"Theora","VP8",},
},
MediaAudioTypes={
description="Set the supported ogg codecs for audio",
public=true,
value={
"Vorbis","Speex","FLAC","Opus",},
},
EnableIframeEmbed={
description="Support iframe for remote embedding",
public=true,
value=true,
},
EnableTranscode={
description="If transcoding is enabled for this wiki (if disabled, no transcode jobs are added and no transcode status is displayed). Note if remote embedding an asset we will still check if the remote repo has transcoding enabled and associated flavors for that media embed.",
public=true,
value=true,
},
TranscodeBackgroundTimeLimit={
description="The total amount of time a transcoding shell command can take",
public=true,
value=28800,
},
TranscodeBackgroundMemoryLimit={
description="Maximum amount of virtual memory available to transcoding processes in KiB. 2GiB. ffmpeg mmap resources, so virtual memory needs to be high enough",
public=true,
value=2097152,
},
TranscodeBackgroundSizeLimit={
description="Maximum file size transcoding processes can create, in KiB. 3GiB.",
public=true,
value=3145728,
},
TranscodeSoftSizeLimit={
description="Maximum estimated file size for transcodes without admin approval, in KiB. Larger files must be manually re-enqueued by an admin via web or CLI interfaces. 2GiB.",
public=true,
value=2097152,
},
FFmpegThreads={
description="Number of threads to use in ffmpeg for transcoding",
public=true,
value=1,
},
FFmpegVP9RowMT={
description="Whether to enable macroblock row multithreading for VP9 (-row-mt 1)\n\nThis allows increasing $wgFFmpegThreads to a larger number for VP9  transcodes; without it encoding will be limited to 4 threads for HD, or less for low resolution.\n\nThis requires libvpx 1.7 and a matching build of ffmpeg 3.3 or higher or it will fail with an unrecognized option error.",
public=true,
value=false,
},
FFmpegLocation={
description="Location of the ffmpeg binary (used to encode WebM and for thumbnails)",
public=false,
value="/usr/bin/ffmpeg",
},
UseFFmpeg2={
description="Compatible with ffmpeg 2",
value=false,
},
TimedTextNS={
description="The NS for TimedText (registered on MediaWiki.org) https://www.mediawiki.org/wiki/Extension_namespace_registration Note that Wikimedia Commons pre-dates TimedMediaHandler, and sets this to 102.",
public=true,
value=710,
},
TimedTextForeignNamespaces={
description="Set TimedText namespace for ForeignDBViaLBRepo on a per wikiID basis like `$wgTimedTextForeignNamespaces = [ 'commonswiki' =&gt; 102 ];`.",
public=true,
value={
},
},
EnabledTranscodeSet={
description="Default enabled video transcodes\n\n- If set to empty array, no derivatives will be created\n- These transcodes are *in addition to* the source file.\n- Only derivatives with smaller width than the source asset size will be created\n- Regardless of source size at least one WebM and Ogg source will be created from the $wgEnabledTranscodeSet\n- Derivative jobs are added to the MediaWiki JobQueue the first time the asset is displayed\n- Derivative should be listed min to max\n\nAllowed values:\n* Values for WebM VP8/Vorbis, our primary free/open video format supported by Chrome/Firefox/Opera natively, and plays back in Safari/IE/Edge via ogv.js:\n** 160p.webm – Very low-bitrate web streamable WebM video\n** 240p.webm – Low-bitrate web streamable WebM video\n** 360p.webm – Medium-bitrate web streamable WebM video\n** 480p.webm – Moderate-bitrate web streamable WebM video\n** 720p.webm – A high quality WebM stream\n** 1080p.webm – A full-HD high quality WebM stream\n** 1440p.webm – A 2K full high quality WebM stream\n** 2160p.webm – A 4K full high quality WebM stream\n* Values for WebM VP9, our future free/open video format:\n** 160p.vp9.webm – Very low\n** 240p.vp9.webm – Low\n** 360p.vp9.webm – A least common denominator h.264 stream; first gen iPhone, iPods, early Android etc.\n** 480p.vp9.webm – A mid range h.264 stream; mid range phones and low end tablets\n** 720p.vp9.webm – An high quality HD stream; higher end phones, tablets, smart tvs\n** 1080p.vp9.webm – A full-HD high quality stream; higher end phones, tablets, smart tvs\n** 1440p.vp9.webm – A 2K high quality stream; higher end phones, tablets, smart tvs\n** 2160p.vp9.webm – A 4K high quality stream; higher end phones, tablets, smart tvs\n* Values for MP4 H.264/AAC, the primary format for the Apple/Microsoft world. Check patent licensing issues in your country before use! Similar to WebM in quality/bitrate:\n** 160p.mp4 – Very low\n** 240p.mp4 – Low\n** 320p.mp4 – Pretty low\n** 360p.mp4 – A least common denominator h.264 stream; first gen iPhone, iPods, early Android etc.\n** 480p.mp4 – A mid range h.264 stream; mid range phones and low end tablets\n** 720p.mp4 – An high quality HD stream; higher end phones, tablets, smart tvs\n** 1080p.mp4 – A full-HD high quality stream; higher end phones, tablets, smart tvs\n** 1440p.mp4 – A 2K high quality stream; higher end phones, tablets, smart tvs\n** 2160p.mp4 – A 4K high quality stream; higher end phones, tablets, smart tvs\n* Note: Ogg video profiles have been removed as of January 2018. Use WebM or HLS output for royalty-free codec output.",
public=true,
value={
["160p.webm"]=false,
["240p.webm"]=false,
["360p.webm"]=false,
["480p.webm"]=false,
["720p.webm"]=false,
["1080p.webm"]=false,
["1440p.webm"]=false,
["2160p.webm"]=false,
["120p.vp9.webm"]=false,
["180p.vp9.webm"]=false,
["240p.vp9.webm"]=true,
["360p.vp9.webm"]=true,
["480p.vp9.webm"]=true,
["720p.vp9.webm"]=true,
["1080p.vp9.webm"]=true,
["1440p.vp9.webm"]=true,
["2160p.vp9.webm"]=true,
["160p.mp4"]=false,
["240p.mp4"]=false,
["320p.mp4"]=false,
["360p.mp4"]=false,
["480p.mp4"]=false,
["720p.mp4"]=false,
["1080p.mp4"]=false,
["1440p.mp4"]=false,
["2160p.mp4"]=false,
["stereo.audio.mp3"]=false,
["stereo.audio.opus.mp4"]=false,
["144p.video.mjpeg.mov"]=false,
["240p.video.vp9.mp4"]=false,
["360p.video.vp9.mp4"]=false,
["480p.video.vp9.mp4"]=false,
["720p.video.vp9.mp4"]=false,
["1080p.video.vp9.mp4"]=false,
["1440p.video.vp9.mp4"]=false,
["2160p.video.vp9.mp4"]=false,
},
},
EnabledAudioTranscodeSet={
description="Default enabled audio transcodes\n\n If set to empty array, no derivatives will be created\n- These transcodes are *in addition to* the source file.\n- Derivative should be listed min to max\n\nllowed values:\n* ogg – Ogg Vorbis\n* opus – Note that Opus support must be available in ffmpeg\n* mp3 – Note that fmpeg needs libmp3lame support\n* m4a – Note that ffmpeg needs libvo_aacenc support",
public=true,
value={
ogg=true,
opus=false,
mp3=true,
m4a=false,
},
},
TmhEnableMp4Uploads={
description="If MP4 source assets can be ingested",
public=true,
value=false,
},
TmhFileExtensions={
description="List of extensions handled by Timed Media Handler since its referenced in a few places. You should not modify this variable.",
public=true,
value={
"ogg","ogv","oga","flac","opus","wav","webm","mp4","mp3","midi","mid","mpg","mpeg",},
},
TmhPriorityResolutionThreshold={
description="Transcode resolutions higher than this will run in the low-priority queue. This'll give us SD transcodes as fast as possible, then do HD later.",
public=true,
value=480,
},
TmhPriorityLengthThreshold={
description="Transcodes of files longer than this (seconds) will run in the low-priority queue; defaults to 15 minutes. This'll mean long videos won't flood the high-priority queue.",
public=true,
value=900,
},
ParserTestMediaHandlers={
description="MockOggHandler::class",
public=true,
value={
["application/ogg"]="MockOggHandler",
},
},
TmhFluidsynthLocation={
description="Path of a Fluidsynth executable for MIDI conversion to audio formats",
public=true,
value=nil,
},
TmhSoundfontLocation={
description="Path of a soundfont to use for MIDI-converted audio",
public=true,
value=nil,
},
},
ForeignResourcesDir="resources/lib",
MediaHandlers={
["application/ogg"]="MediaWiki\\TimedMediaHandler\\Handlers\\OggHandler\\OggHandler",
["audio/flac"]="MediaWiki\\TimedMediaHandler\\Handlers\\FLACHandler\\FLACHandler",
["audio/midi"]="MediaWiki\\TimedMediaHandler\\Handlers\\MIDIHandler\\MIDIHandler",
["audio/mp4"]="MediaWiki\\TimedMediaHandler\\Handlers\\MP4Handler\\MP4Handler",
["audio/mpeg"]="MediaWiki\\TimedMediaHandler\\Handlers\\MP3Handler\\MP3Handler",
["audio/wav"]="MediaWiki\\TimedMediaHandler\\Handlers\\WAVHandler\\WAVHandler",
["audio/webm"]="MediaWiki\\TimedMediaHandler\\Handlers\\WebMHandler\\WebMHandler",
["audio/x-flac"]="MediaWiki\\TimedMediaHandler\\Handlers\\FLACHandler\\FLACHandler",
["video/mp4"]="MediaWiki\\TimedMediaHandler\\Handlers\\MP4Handler\\MP4Handler",
["video/mpeg"]="MediaWiki\\TimedMediaHandler\\Handlers\\MPEGHandler\\MPEGHandler",
["video/webm"]="MediaWiki\\TimedMediaHandler\\Handlers\\WebMHandler\\WebMHandler",
},
JobClasses={
webVideoTranscode={
class="MediaWiki\\TimedMediaHandler\\WebVideoTranscode\\WebVideoTranscodeJob",
services={
"ShellCommandFactory","MainConfig","DBLoadBalancerFactory","RepoGroup",},
},
webVideoTranscodePrioritized={
class="MediaWiki\\TimedMediaHandler\\WebVideoTranscode\\WebVideoTranscodeJob",
services={
"ShellCommandFactory","MainConfig","DBLoadBalancerFactory","RepoGroup",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TimedMediaHandler",
},
TimelineTable={
name="TimelineTable",
version="2.1",
author="Thibault Marin",
url="https://www.mediawiki.org/wiki/Extension:TimelineTable",
descriptionmsg="timelinetable-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="TimelineTableHooks::efTimelineTableParserInit",
ParserAfterTidy="TimelineTableHooks::efTimelineTableAfterTidy",
},
config={
TimelineTableLineSeparator={
value="\n",
},
TimelineTableFieldSeparator={
value="|",
},
TimelineTableEventSeparator={
value="#",
},
TimelineTableDateSeparator={
value="-",
},
TimelineTableAbbrMonth={
value=false,
},
TimelineTableShortMonthLen={
value=1,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TimelineTable",
},
TinyMCE={
name="TinyMCE",
version="1.1.2",
author={
"Ephox","Hallo Welt","Duncan Crane","Yaron Koren",},
url="https://www.mediawiki.org/wiki/Extension:TinyMCE",
descriptionmsg="tinymce-desc",
["license-name"]="GPL-2.0+",
type="editor",
callback="TinyMCEHooks::registerExtension",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
TinyMCEMagic="TinyMCE.i18n.magic.php",
TinyMCEAlias="TinyMCE.i18n.alias.php",
},
Hooks={
MakeGlobalVariablesScript="TinyMCEHooks::setGlobalJSVariables",
MagicWordwgVariableIDs="TinyMCEHooks::addMagicWordVariableIDs",
ParserAfterTidy="TinyMCEHooks::handleMagicWords",
["SkinTemplateNavigation::Universal"]="TinyMCEAction::displayTabAndModifyAddTopicLink",
SkinEditSectionLinks="TinyMCEHooks::addEditSectionLink",
AlternateEdit="TinyMCEHooks::determineIfTinyMCEIsEnabled",
HtmlPageLinkRendererEnd="TinyMCEHooks::changeRedLink",
EditPageBeforeEditToolbar="TinyMCEHooks::removeDefaultToolbar",
["EditPage::showEditForm:initial"]="TinyMCEHooks::addToEditPage",
WikiEditorDisable="TinyMCEHooks::disableWikiEditor",
GetPreferences="TinyMCEHooks::addPreference",
["PageForms::addRLModules"]="TinyMCEHooks::addRLModules",
OutputPageParserOutput="TinyMCEHooks::addToViewPage",
ParserFirstCallInit="TinyMCEHooks::onParserFirstCallInit",
},
Actions={
tinymceedit="TinyMCEAction",
},
DefaultUserOptions={
["tinymce-use"]=1,
},
config={
TinyMCETemplates={
},
TinyMCEDefaultTags={
},
TinyMCEExtensionTags={
},
TinyMCEPreservedTags={
},
TinyMCEEnabled=false,
TinyMCEDisabledNamespaces={
8,10,},
TinyMCEUnhandledStrings={
},
TinyMCELoadOnView=false,
wgTinyMCESettings={
},
},
composer="mediawiki/tinymce",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TinyMCE",
},
TitleBlacklist={
name="TitleBlacklist",
version="1.5.0",
author={
"Victor Vasiliev","Fran Rogers",},
url="https://www.mediawiki.org/wiki/Extension:TitleBlacklist",
descriptionmsg="titleblacklist-desc",
["license-name"]="GPL-2.0-or-later",
type="antispam",
requires={
MediaWiki="&gt;= 1.42",
},
GroupPermissions={
sysop={
tboverride=true,
titleblacklistlog=true,
},
},
AvailableRights={
"tboverride","tboverride-account","titleblacklistlog",},
LogTypes={
"titleblacklist",},
LogRestrictions={
titleblacklist="titleblacklistlog",
},
LogActionsHandlers={
["titleblacklist/*"]="LogFormatter",
},
GrantPermissions={
createaccount={
["tboverride-account"]=true,
},
editprotected={
tboverride=true,
},
viewrestrictedlogs={
titleblacklistlog=true,
},
},
APIModules={
titleblacklist="MediaWiki\\Extension\\TitleBlacklist\\Api\\ApiTitleBlacklist",
},
attributes={
VisualEditor={
PluginModules={
"ext.titleblacklist.visualEditor",},
},
},
callback="MediaWiki\\Extension\\TitleBlacklist\\Hooks::onRegistration",
Hooks={
getUserPermissionsErrorsExpensive="TitleBlacklistHookHandler",
TitleGetEditNotices="TitleBlacklistHookHandler",
MovePageCheckPermissions="TitleBlacklistHookHandler",
EditFilter="TitleBlacklistHookHandler",
PageSaveComplete="TitleBlacklistHookHandler",
ScribuntoExternalLibraries="TitleBlacklistScribuntoHookHandler",
},
HookHandlers={
TitleBlacklistHookHandler={
class="MediaWiki\\Extension\\TitleBlacklist\\Hooks",
},
TitleBlacklistScribuntoHookHandler={
class="MediaWiki\\Extension\\TitleBlacklist\\ScribuntoHooks",
},
},
config={
TitleBlacklistSources={
value={
},
},
TitleBlacklistUsernameSources={
value="*",
},
TitleBlacklistLogHits={
value=false,
},
TitleBlacklistCaching={
value={
warningchance=100,
expiry=900,
warningexpiry=600,
},
},
TitleBlacklistBlockAutoAccountCreation={
value=true,
},
},
AuthManagerAutoConfig={
preauth={
TitleBlacklistPreAuthenticationProvider={
class="MediaWiki\\Extension\\TitleBlacklist\\TitleBlacklistPreAuthenticationProvider",
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TitleBlacklist",
},
Title_Icon={
name="Title Icon",
version="6.1",
author={
"[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]",},
url="https://www.mediawiki.org/wiki/Extension:Title_Icon",
descriptionmsg="titleicon-desc",
["license-name"]="MIT",
type="parserhook",
requires={
MediaWiki="&gt;= 1.38.0",
},
ExtensionMessagesFiles={
TitleIconMagic="i18n/TitleIconMagic.i18n.php",
},
Hooks={
ParserFirstCallInit="init",
BeforePageDisplay="main",
ShowSearchHitTitle="main",
ParserAfterParse="main",
},
HookHandlers={
init={
class="MediaWiki\\Extension\\TitleIcon\\InitHookHandler",
},
main={
class="MediaWiki\\Extension\\TitleIcon\\MainHookHandler",
services={
"TitleIcon:IconManager","MainConfig","LinkRenderer",},
},
},
APIPropModules={
titleicons={
class="MediaWiki\\Extension\\TitleIcon\\ApiQueryTitleIcons",
services={
"TitleIcon:IconManager","JsonCodec",},
},
},
ServiceWiringFiles={
"src/ServiceWiring.php",},
config={
TitleIcon_EnableIconInPageTitle={
value=true,
},
TitleIcon_EnableIconInSearchTitle={
value=true,
},
TitleIcon_CSSSelector={
value="#firstHeading",
},
TitleIcon_UseFileNameAsToolTip={
value=true,
},
TitleIcon_TitleIconPropertyName={
value="Title Icon",
},
TitleIcon_HideTitleIconPropertyName={
value="Hide Title Icon",
},
},
composer="mediawiki/title-icon",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TitleIcon",
},
TitleKey={
name="TitleKey",
version="1.0",
author={
"Brion Vibber","...",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:TitleKey",
descriptionmsg="titlekey-desc",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
ExtensionFunctions={
"MediaWiki\\Extension\\TitleKey\\TitleKey::setup",},
HookHandlers={
TitleKeyHooks={
class="MediaWiki\\Extension\\TitleKey\\TitleKey",
},
},
Hooks={
PageDeleteComplete={
handler="TitleKeyHooks",
},
PageSaveComplete={
handler="TitleKeyHooks",
},
PageUndeleteComplete={
handler="TitleKeyHooks",
},
PageMoveCompleting={
handler="TitleKeyHooks",
},
LoadExtensionSchemaUpdates={
handler="TitleKeyHooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TitleKey",
},
TocTree={
name="TocTree",
version="1.12.0",
author={
"Roland Unger","Matthias Mullie",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:TocTree",
descriptionmsg="toctree-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
},
DefaultUserOptions={
["toc-floated"]=false,
["toc-expand"]=false,
},
Hooks={
ApiParseMakeOutputPage="TocTreeHooks",
BeforePageDisplay="TocTreeHooks",
GetPreferences="TocTreeHooks",
},
HookHandlers={
TocTreeHooks={
class="MediaWiki\\Extension\\TocTree\\Hooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TocTree",
},
Toolhub={
name="Toolhub",
author={
"Bryan Davis",},
url="https://www.mediawiki.org/wiki/Extension:Toolhub",
descriptionmsg="toolhubbridge-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.38.0",
extensions={
Scribunto="*",
},
},
config={
ToolhubBaseUrl={
description="Base URL for Toolhub instance",
value="https://toolhub.wikimedia.org",
},
},
ServiceWiringFiles={
"src/ServiceWiring.php",},
Hooks={
ScribuntoExternalLibraries="ToolhubHooks",
},
HookHandlers={
ToolhubHooks={
class="MediaWiki\\Extension\\Toolhub\\Hooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Toolhub",
},
Tooltip={
name="Tooltip",
version="0.7.0",
author={
"Paul Grinberg",},
url="https://www.mediawiki.org/wiki/Extension:Tooltip",
descriptionmsg="tooltip-desc",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
TooltipMagic="Tooltip.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="TooltipHooks::wfToolTipRegisterParserHooks",
BeforePageDisplay="TooltipHooks::wfTooltipBeforePageDisplay",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Tooltip",
},
TopTenPages={
name="TopTenPages",
namemsg="toptenpages-extensionname",
version="0.4.0",
author={
"Timo Tijhof","Sascha",},
url="https://www.mediawiki.org/wiki/Extension:TopTenPages",
descriptionmsg="toptenpages-desc",
["license-name"]="MIT",
type="specialpage",
requires={
MediaWiki="&gt;= 1.31.0",
extensions={
HitCounters="*",
},
},
ExtensionMessagesFiles={
TopTenPagesAliases="TopTenPages.alias.php",
},
Hooks={
ParserFirstCallInit={
"TopTenPagesHooks::onParserFirstCallInit",},
},
SpecialPages={
TopTenPages="SpecialTopTenPages",
},
config={
TopTenPagesStartAtOne=false,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TopTenPages",
},
TorBlock={
name="TorBlock",
author="Andrew Garrett",
url="https://www.mediawiki.org/wiki/Extension:TorBlock",
descriptionmsg="torblock-desc",
["license-name"]="GPL-2.0-or-later",
type="antispam",
version="1.1.0",
requires={
MediaWiki="&gt;= 1.42",
},
callback="MediaWiki\\Extension\\TorBlock\\Hooks::registerExtension",
GroupPermissions={
user={
torunblocked=true,
},
},
GrantPermissions={
basic={
torunblocked=true,
},
},
AvailableRights={
"torunblocked",},
APIModules={
torblock={
class="MediaWiki\\Extension\\TorBlock\\ApiTorBlock",
},
},
HookHandlers={
TorBlockHooks={
class="MediaWiki\\Extension\\TorBlock\\Hooks",
services={
"HookContainer",},
},
TorBlockAbuseFilterHooks={
class="MediaWiki\\Extension\\TorBlock\\TorBlockAbuseFilterHooks",
},
},
Hooks={
getUserPermissionsErrorsExpensive={
handler="TorBlockHooks",
},
AbortAutoblock={
handler="TorBlockHooks",
},
GetAutoPromoteGroups={
handler="TorBlockHooks",
},
GetUserBlock={
handler="TorBlockHooks",
},
AutopromoteCondition={
handler="TorBlockHooks",
},
RecentChange_save={
handler="TorBlockHooks",
},
ListDefinedTags={
handler="TorBlockHooks",
},
ChangeTagsListActive={
handler="TorBlockHooks",
},
AbuseFilterAlterVariables={
handler="TorBlockAbuseFilterHooks",
},
["AbuseFilter-builder"]={
handler="TorBlockAbuseFilterHooks",
},
UserCanSendEmail={
handler="TorBlockHooks",
},
OtherBlockLogLink={
handler="TorBlockHooks",
},
},
config={
TorBypassPermissions={
value={
"torunblocked",},
},
TorAllowedActions={
value={
"read",},
},
TorAutoConfirmAge={
value=0,
},
TorAutoConfirmCount={
value=0,
},
TorIPs={
value={
"208.80.152.2",},
},
TorOnionooServer={
value="https://onionoo.torproject.org",
},
TorDisableAdminBlocks={
value=true,
},
TorTagChanges={
value=true,
},
TorBlockProxy={
value=false,
},
TorOnionooCA={
value="torproject.crt",
path=true,
},
TorProjectCA={
value="torproject.crt",
path=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TorBlock",
},
Translate={
name="Translate",
type="specialpage",
author={
"Niklas Laxström","Siebrand Mazeland","Santhosh Thottingal","Amir E. Aharoni","Abijeet Patro","...",},
version="2024-07-16",
url="https://www.mediawiki.org/wiki/Extension:Translate",
descriptionmsg="translate-desc",
namemsg="translate-extensionname",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.41",
extensions={
UniversalLanguageSelector="*",
},
},
callback="MediaWiki\\Extension\\Translate\\HookHandler::setupTranslate",
ServiceWiringFiles={
"src/ServiceWiring.php",},
namespaces={
{
id=1198,
constant="NS_TRANSLATIONS",
name="Translations",
},{
id=1199,
constant="NS_TRANSLATIONS_TALK",
name="Translations_talk",
},},
ExtensionMessagesFiles={
TranslateAlias="Translate.alias.php",
TranslateMagic="Translate.i18n.magic.php",
},
ContentHandlers={
["translate-messagebundle"]="\\MediaWiki\\Extension\\Translate\\MessageBundleTranslation\\MessageBundleContentHandler",
},
Hooks={
LoadExtensionSchemaUpdates="schema",
PageContentLanguage="MediaWiki\\Extension\\Translate\\HookHandler::onPageContentLanguage",
["EditPage::showEditForm:initial"]="legacyInterface",
TitleGetEditNotices="legacyInterface",
AlternateEdit="legacyInterface",
ApiCheckCanExecute="translateSandbox",
getUserPermissionsErrorsExpensive="MediaWiki\\Extension\\Translate\\TranslatorInterface\\TranslateEditAddons::disallowLangTranslations",
LanguageGetTranslatedLanguageNames="MediaWiki\\Extension\\Translate\\HookHandler::translateMessageDocumentationLanguage",
TranslateSupportedLanguages="MediaWiki\\Extension\\Translate\\HookHandler::translateMessageDocumentationLanguage",
ArticlePrepareTextForEdit="MediaWiki\\Extension\\Translate\\TranslatorInterface\\TranslateEditAddons::disablePreSaveTransform",
ParserFirstCallInit="main",
UserGetReservedNames="main",
ParserAfterTidy="MediaWiki\\Extension\\Translate\\HookHandler::preventCategorization",
OutputPageParserOutput="MediaWiki\\Extension\\Translate\\HookHandler::showFakeCategories",
["Translate:newTranslation"]="MediaWiki\\Extension\\Translate\\TranslatorInterface\\TranslateEditAddons::updateTransverTag",
["SkinTemplateNavigation::Universal"]={
"MediaWiki\\Extension\\Translate\\TranslatorInterface\\TranslateSpecialPage::tabify","MediaWiki\\Extension\\Translate\\Synchronization\\ManageGroupsSpecialPage::tabify",},
GetPreferences={
"MediaWiki\\Extension\\Translate\\TranslatorInterface\\TranslateInterfacePreferences::translationAssistLanguages","translateSandbox",},
ChangesListSpecialPageQuery="recentChangesTranslationFilter",
SpecialRecentChangesPanel="recentChangesTranslationFilter",
ChangesListSpecialPageStructuredFilters="recentChangesTranslationFilter",
AbortEmailNotification="MediaWiki\\Extension\\Translate\\HookHandler::onAbortEmailNotificationReview",
ArticleDeleteComplete="TTMServer::onDelete",
TranslateEventMessageMembershipChange="TTMServer::onGroupChange",
ArticleContentOnDiff="legacyInterface",
SpecialSearchProfiles="MediaWiki\\Extension\\Translate\\HookHandler::searchProfile",
SpecialSearchProfileForm="MediaWiki\\Extension\\Translate\\HookHandler::searchProfileForm",
SpecialSearchSetupEngine="MediaWiki\\Extension\\Translate\\HookHandler::searchProfileSetupEngine",
TitleIsAlwaysKnown="MediaWiki\\Extension\\Translate\\HookHandler::onTitleIsAlwaysKnown",
MakeGlobalVariablesScript="MediaWiki\\Extension\\Translate\\HookHandler::addConfig",
SidebarBeforeOutput="legacyInterface",
TranslateEventTranslationReview={
"MediaWiki\\Extension\\Translate\\Statistics\\MessageGroupStats::clear","MessageGroupStatesUpdaterJob::onChange",},
TranslateInitGroupLoaders={
"WorkflowStatesMessageGroupLoader::registerLoader",},
AdminLinks="MediaWiki\\Extension\\Translate\\HookHandler::onAdminLinks",
MergeAccountFromTo="MediaWiki\\Extension\\Translate\\HookHandler::onMergeAccountFromTo",
DeleteAccount="MediaWiki\\Extension\\Translate\\HookHandler::onDeleteAccount",
AbuseFilterAlterVariables="MediaWiki\\Extension\\Translate\\HookHandler::onAbuseFilterAlterVariables",
["AbuseFilter-computeVariable"]="MediaWiki\\Extension\\Translate\\HookHandler::onAbuseFilterComputeVariable",
["AbuseFilter-builder"]="MediaWiki\\Extension\\Translate\\HookHandler::onAbuseFilterBuilder",
EditFilterMergedContent={
"MediaWiki\\Extension\\Translate\\HookHandler::validateMessage","messageBundle",},
PageSaveComplete="messageBundle",
CodeEditorGetPageLanguage="MediaWiki\\Extension\\Translate\\MessageBundleTranslation\\Hooks::onCodeEditorGetPageLanguage",
RevisionRecordInserted="main",
ListDefinedTags="main",
ChangeTagsListActive="main",
SpecialPrefixIndexGetFormFilters="pageTranslation",
SpecialPrefixIndexQuery="pageTranslation",
UserGetRights="translateSandbox",
AfterImportPage="translatableBundleImporter",
LonelyPagesQuery="pageTranslation",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Translate\\HookHandler",
services={
"RevisionLookup","DBLoadBalancer","MainConfig","LanguageNameUtils",},
},
legacyInterface={
class="MediaWiki\\Extension\\Translate\\TranslatorInterface\\LegacyInterfaceHookHandler",
services={
"LanguageFactory",},
},
messageBundle={
factory="MediaWiki\\Extension\\Translate\\MessageBundleTranslation\\Hooks::getInstance",
},
messageGroupSubscription={
class="MediaWiki\\Extension\\Translate\\MessageGroupProcessing\\MessageGroupSubscriptionHookHandler",
services={
"Translate:MessageGroupSubscription",},
},
pageTranslation={
class="MediaWiki\\Extension\\Translate\\PageTranslation\\PageTranslationHookHandler",
services={
"MainConfig",},
},
recentChangesTranslationFilter={
class="MediaWiki\\Extension\\Translate\\RecentChangesTranslationFilterHookHandler",
services={
"DBLoadBalancer","MainConfig",},
},
translateSandbox={
class="MediaWiki\\Extension\\Translate\\TranslatorSandbox\\TranslateSandboxHookHandler",
services={
"MainConfig",},
},
schema={
class="MediaWiki\\Extension\\Translate\\SchemaHookHandler",
},
translatableBundleImporter={
factory="MediaWiki\\Extension\\Translate\\MessageGroupProcessing\\TranslatableBundleImporter::getInstance",
},
},
DeprecatedHooks={
["Translate:GettextFFS:headerFields"]={
deprecatedVersion="2024.01",
component="Translate",
},
},
SpecialPages={
Translate={
class="\\MediaWiki\\Extension\\Translate\\TranslatorInterface\\TranslateSpecialPage",
services={
"ContentLanguage","LanguageFactory","LanguageNameUtils","Translate:HookRunner","MainConfig",},
},
Translations={
class="\\MediaWiki\\Extension\\Translate\\TranslatorInterface\\TranslationsSpecialPage",
services={
"ContentLanguage","LanguageNameUtils","DBLoadBalancer",},
},
TranslationStats={
class="\\MediaWiki\\Extension\\Translate\\Statistics\\TranslationStatsSpecialPage",
services={
"Translate:TranslationStatsDataProvider",},
},
LanguageStats={
class="\\MediaWiki\\Extension\\Translate\\Statistics\\LanguageStatsSpecialPage",
services={
"LinkBatchFactory","Translate:ProgressStatsTableFactory","LanguageNameUtils","JobQueueGroup","DBLoadBalancer","Translate:MessageGroupReviewStore",},
},
MessageGroupStats={
class="\\MediaWiki\\Extension\\Translate\\Statistics\\MessageGroupStatsSpecialPage",
services={
"MainConfig","JobQueueGroup","Translate:MessageGroupStatsTableFactory","Translate:EntitySearch","Translate:MessagePrefixStats","LanguageNameUtils","Translate:MessageGroupMetadata",},
},
ImportTranslations={
class="\\MediaWiki\\Extension\\Translate\\Synchronization\\ImportTranslationsSpecialPage",
services={
"MainObjectStash",},
},
ExportTranslations={
class="\\MediaWiki\\Extension\\Translate\\Synchronization\\ExportTranslationsSpecialPage",
services={
"TitleFormatter","ParserFactory",},
},
ManageMessageGroups={
class="\\MediaWiki\\Extension\\Translate\\Synchronization\\ManageGroupsSpecialPage",
services={
"ContentLanguage","NamespaceInfo","RevisionLookup","Translate:GroupSynchronizationCache","JobQueueGroup","Translate:MessageIndex","LinkBatchFactory",},
},
SupportedLanguages={
class="\\MediaWiki\\Extension\\Translate\\Statistics\\ActiveLanguagesSpecialPage",
services={
"MainConfig","Translate:TranslatorActivity","LanguageNameUtils","DBLoadBalancer","Translate:ConfigHelper","ContentLanguage","Translate:ProgressStatsTableFactory","LinkBatchFactory","LanguageFactory",},
},
AggregateGroups={
class="\\MediaWiki\\Extension\\Translate\\MessageGroupProcessing\\AggregateGroupsSpecialPage",
services={
"LinkBatchFactory","Translate:MessageGroupMetadata","Translate:AggregateGroupManager",},
},
SearchTranslations={
class="\\MediaWiki\\Extension\\Translate\\TtmServer\\SearchTranslationsSpecialPage",
services={
"Translate:TtmServerFactory","LanguageFactory","UrlUtils",},
},
},
APIListModules={
messagecollection={
class="MediaWiki\\Extension\\Translate\\MessageLoading\\QueryMessageCollectionActionApi",
services={
"Translate:ConfigHelper","LanguageNameUtils","DBLoadBalancer","Translate:MessageGroupReviewStore",},
},
messagegroupsubscription={
class="\\MediaWiki\\Extension\\Translate\\MessageGroupProcessing\\QueryMessageGroupSubscriptionApi",
services={
"Translate:MessageGroupSubscription",},
},
},
APIMetaModules={
languagestats={
class="\\MediaWiki\\Extension\\Translate\\Statistics\\QueryLanguageStatsActionApi",
services={
"JobQueueGroup",},
},
managemessagegroups="MediaWiki\\Extension\\Translate\\MessageGroupProcessing\\QueryManageMessageGroupsActionApi",
messagegroups={
class="MediaWiki\\Extension\\Translate\\MessageGroupProcessing\\QueryMessageGroupsActionApi",
services={
"Translate:HookRunner","Translate:MessageGroupMetadata","Translate:MessageGroupSubscription",},
},
messagegroupstats={
class="\\MediaWiki\\Extension\\Translate\\Statistics\\QueryMessageGroupStatsActionApi",
services={
"JobQueueGroup",},
},
messagetranslations="MediaWiki\\Extension\\Translate\\MessageLoading\\QueryMessageTranslationsActionApi",
},
APIModules={
aggregategroups={
class="MediaWiki\\Extension\\Translate\\MessageGroupProcessing\\AggregateGroupsActionApi",
services={
"JobQueueGroup","Translate:MessageGroupMetadata","Translate:AggregateGroupManager",},
},
groupreview={
class="MediaWiki\\Extension\\Translate\\MessageGroupProcessing\\GroupReviewActionApi",
services={
"LanguageNameUtils","Translate:MessageGroupReviewStore",},
},
managemessagegroups="\\MediaWiki\\Extension\\Translate\\MessageGroupProcessing\\ManageMessageGroupsActionApi",
messagegroupsubscription={
class="\\MediaWiki\\Extension\\Translate\\MessageGroupProcessing\\MessageGroupSubscriptionActionApi",
services={
"Translate:MessageGroupSubscription",},
},
translationaids="\\MediaWiki\\Extension\\Translate\\TranslatorInterface\\Aid\\TranslationAidsActionApi",
translationentitysearch={
class="\\MediaWiki\\Extension\\Translate\\TranslatorInterface\\TranslationEntitySearchActionApi",
services={
"Translate:EntitySearch",},
},
translationreview={
class="\\MediaWiki\\Extension\\Translate\\TranslatorInterface\\ReviewTranslationActionApi",
services={
"RevisionLookup","TitleFormatter","DBLoadBalancer","Translate:HookRunner",},
},
translationcheck="\\MediaWiki\\Extension\\Translate\\Validation\\CheckTranslationActionApi",
translationstats={
class="\\MediaWiki\\Extension\\Translate\\Statistics\\QueryTranslationStatsActionApi",
services={
"Translate:TranslationStatsDataProvider",},
},
managegroupsynchronizationcache={
class="\\MediaWiki\\Extension\\Translate\\Synchronization\\ManageGroupSynchronizationCacheActionApi",
services={
"Translate:GroupSynchronizationCache",},
},
ttmserver={
class="\\MediaWiki\\Extension\\Translate\\TtmServer\\TtmServerActionApi",
services={
"Translate:TtmServerFactory","MainConfig",},
},
searchtranslations={
class="\\MediaWiki\\Extension\\Translate\\TtmServer\\SearchTranslationsActionApi",
services={
"MainConfig","Translate:TtmServerFactory",},
},
},
JobClasses={
MessageGroupStatesUpdaterJob="\\MediaWiki\\Extension\\Translate\\MessageGroupProcessing\\MessageGroupStatesUpdaterJob",
MessageIndexRebuildJob="MessageIndexRebuildJob",
MessageUpdateJob="\\MediaWiki\\Extension\\Translate\\Synchronization\\UpdateMessageJob",
RebuildMessageGroupStatsJob="\\MediaWiki\\Extension\\Translate\\Statistics\\RebuildMessageGroupStatsJob",
TTMServerMessageUpdateJob="TTMServerMessageUpdateJob",
UpdateMessageBundle="\\MediaWiki\\Extension\\Translate\\MessageBundleTranslation\\UpdateMessageBundleJob",
UpdateMessageJob="\\MediaWiki\\Extension\\Translate\\Synchronization\\UpdateMessageJob",
UpdateTranslatorActivity="\\MediaWiki\\Extension\\Translate\\Statistics\\UpdateTranslatorActivityJob",
},
LogTypes={
"translationreview",},
LogActionsHandlers={
["translationreview/message"]="\\MediaWiki\\Extension\\Translate\\LogFormatter",
["translationreview/group"]="\\MediaWiki\\Extension\\Translate\\LogFormatter",
["translationreview/unfuzzy"]="\\MediaWiki\\Extension\\Translate\\LogFormatter",
},
ActionFilteredLogs={
translationreview={
message={
"message",},
group={
"group",},
unfuzzy={
"unfuzzy",},
},
import={
["translatable-bundle"]={
"translatable-bundle",},
},
},
QUnitTestModule={
localBasePath="",
remoteExtPath="Translate",
scripts={
"tests/qunit/ext.translate.parsers.test.js","tests/qunit/ext.translate.special.pagemigration.test.js",},
dependencies={
"ext.translate.parsers","ext.translate.special.pagemigration",},
},
config={
PageTranslationLanguageList={
value="tag-only",
description="How language list for translatable pages is shown. Allowed values:\n * tag-only: Only display languages with the &lt;languages /&gt; tag.\n * sidebar-only: Display languages as interlanguage links only and ignore the tag even if present on the page.\n * sidebar-fallback: Display languages as interlanguage links if no tag is on the page.\n * sidebar-always: Display languages as interlanguage links and also in tag if it is present on the page.\n @since 2018.07",
public=true,
},
TranslateDocumentationLanguageCode={
value=false,
description="Language code for message documentation. Suggested values are qqq or info. If set to false (default), message documentation feature is disabled.",
public=true,
},
TranslateEnableLuaIntegration={
value=false,
description="Enable integration with Lua modules using Scribunto extension.",
public=true,
},
TranslateEnableMessageGroupSubscription={
value=false,
description="Enable translators to watch message groups and receive notifications when messages in the group are added, removed or updated.",
public=true,
},
TranslateUserManagerName={
value="TranslateUserManager",
description="Name of the system user that will be used to create the sandbox users in the system.",
public=true,
},
TranslateFuzzyBotName={
value="FuzzyBot",
description="Name of the bot which will invalidate translations and do maintenance for page translation feature. Also used for importing messages from external sources.",
public=true,
},
TranslateLanguageFallbacks={
value={
},
description="Default values for list of languages to show translators as an aid when translating. Each user can override this setting in their preferences.\n\nExample: LanguageFallbacks['fi'] = 'sv' or LanguageFallbacks['sv'] = [ 'da', 'no', 'nn' ].",
public=true,
},
TranslateSupportUrl={
value=false,
description="Experimental support since 2011-03-11 for an 'Ask' help button. Might change into a hook later on. This is an array with keys page, url and params: page is a title of a local wiki page; url is an URL to use as is (e.g. an issue tracker submission form) which will override the page if set; params is an array of key-value pairs of request params -- each param value can contain the variable %MESSAGE% which will be replaced with the full page name.",
public=true,
},
TranslateSupportUrlNamespace={
value={
},
description="Like $wgTranslateSupportUrl, but for a specific namespace. Each $wgTranslateSupportUrl-like array needs to be the value assigned to the numerical ID of a namespace of the wiki. Since 2015-09.",
public=true,
merge_strategy="array_plus",
},
TranslatePageTranslationBannerNamespaces={
value={
},
description="List of namespace numbers for which the call to action banner to mark the page for translation will be displayed to editors who have recently updated the page. Since 2024.05",
public=true,
},
TranslatePermissionUrl={
value="Project:Translator",
description="When unprivileged users open a translation editor, they will see a message stating that a special permission is needed for translating messages. If this variable is defined, there is a button which will take the user to that page to ask for permission. The target needs to be reiterated with the second variable to have the same result with sandbox enabled where users can't enter the sandbox.",
public=true,
},
EnablePageTranslation={
value=true,
description="Enable page translation feature.\n\nPage translation feature allows structured translation of wiki pages with simple markup and automatic tracking of changes. See https://www.mediawiki.org/wiki/Help:Extension:Translate/Page_translation_administration",
public=true,
},
TranslatePageTranslationULS={
value=false,
description="If set to true, when a user selects an interface language via ULS (Universal Language Selector), if the current page is a translatable page or a translation page then the user is also redirected to the corresponding translation page in the selected language.\n\n The language of the translation pages visited afterwards will still depend on the links followed (it will be the interface language only if the links use the Special:MyLanguage syntax).\n\nSince 2013-03-10.",
public=true,
},
TranslateKeepOutdatedTranslations={
value=true,
description="If set to true, when a translated page has some units marked as outdated, the outdated translation will be shown. If set to false, the original updated unit in the original language will be shown.\n\nChanging this setting requires the following script to be run to take effect on existing changes: scripts/refresh-translatable-pages.php\n\n Since 2016.12.",
public=true,
},
TranslateDisabledTargetLanguages={
value={
},
description="Two-dimensional array of languages that cannot be translated. Input can be exact group name, first part before '-' or '*' for all. Second dimension should be language code mapped to reason for disabling. Reason is parsed as wikitext.\n\nExample:\n'TranslateDisabledTargetLanguages': { '*': { 'en': 'English is the source language.' }, 'core': { 'mul': 'Not a real language.' }, 'ext': { 'mul': 'Not a real language.'} }",
public=true,
},
TranslateMessagePrefixStatsLimit={
value=300,
description="Represents the number of messages that can be queried via Special:MessageGroupStats when fetching message prefixes.",
public=true,
},
TranslateValidationExclusionFile={
value=false,
description="File containing validations that are to be skipped. See https://gerrit.wikimedia.org/g/translatewiki/+/master/groups/validation-exclusion-list.php for example.",
public=true,
},
TranslateAuthorExclusionList={
value={
},
description="Two-dimensional array of rules that exclude certain authors from appearing in the exports. This is useful for keeping bots and people doing maintenance work in translations not to appear besides real translators everywhere.\n\nRules are arrays, where first element is type: included or excluded. The inclusion list always overrules the exclusion list. Second element should be a valid pattern that can be given a preg_match(). It will be matched against string of format 'group-id;language;author name', without quotes.\n\nAs an example, this rule would ignore all authors whose name ends in a bot for all languages and all groups:\n'TranslateAuthorExclusionList': [ [ 'black', '/^.*;.*;.*Bot$/Ui' ] ]",
public=true,
},
TranslateMessageNamespaces={
value={
},
description="List of namespace that contain messages. No talk namespaces. See https://www.mediawiki.org/wiki/Help:Extension:Translate/Group_configuration",
public=true,
},
TranslateGroupRoot={
value="/var/www/externals",
description="Location in the filesystem to which paths are relative in custom groups.",
public=true,
},
TranslateGroupFiles={
value={
},
description="The newest and recommended way of adding custom groups is YAML files.",
public=true,
},
TranslateWorkflowStates={
value=false,
description="List of possible message group review workflow states and properties for each state. The currently supported properties are 'color', the color that is used for displaying the state in the tables, and 'right', the additional right that is needed to set the state. Users who have the translate-groupreview right can set this in Special:Translate. The state is visible in Special:Translate, Special:MessageGroupStats and Special:LanguageStats. If the value is false, the workflow states feature is disabled. State name can be up to 32 characters maximum.\n\nExample:\n'TranslateWorkflowStates': {\n\n'new': { 'color': 'FF0000' },\n'needs_proofreading': { 'color': '0000FF' },\n'ready': { 'color': 'FFFF00'},\n'published': { 'color': '00FF00', 'right': 'centralnotice-admin' }\n}",
public=true,
},
TranslateGroupAliases={
value={
},
description="Map from deprecated group IDs to their current ID. Example value: { 'core': 'mediawiki-core' }",
public=true,
},
TranslateCacheDirectory={
value=false,
description="Set location of cache files. Defaults to $wgCacheDirectory.",
public=true,
},
TranslateMessageIndex={
value="database",
description="Configures how the message index is stored. Possible values are 'cdb' and 'database'. The first backend needs $wgCacheDirectory to be functional.",
public=true,
},
TranslateUseSandbox={
value=false,
description="Whether to allow users to sign up via a sandbox. Sandboxed users cannot do much until approved and thus they can be get rid of easily. This only works with MediaWiki 1.27 and newer, and only if registration is configured to not use account creation providers which give REDIRECT or UI responses or require any other field than the default username/password/email.",
public=true,
},
TranslateSandboxPromotedGroup={
value=false,
description="To which group the translators are promoted. If left at false, they will just be removed from sandbox and become normal users.",
public=true,
},
TranslateSandboxLimit={
value=20,
description="Maximum number of translations a user can make in the sandbox.",
public=true,
},
TranslateUsePreSaveTransform={
value=false,
description="Pre-save transform for message pages. MediaWiki does this by default (including for pages in the MediaWiki-namespace). By setting this to false it allows users to put untransformed syntax such as '~~~~' into a page without having them be transformed upon save.",
public=true,
},
TranslateRcFilterDefault={
value="filter",
description="Default action for the RecentChanges filter, which makes it possible to filter translations away or show them only. Possible values: 'noaction', 'only', 'filter', 'site'.",
public=true,
},
TranslateYamlLibrary={
value=nil,
description="Currently supported YAML drivers are phpyaml or spyc.\n\nFor phpyaml see https://secure.php.net/manual/en/book.yaml.php.\n\nphpyaml is the fastest and based on libyaml so the output should be most compatible. spyc output format is least compatible. spyc needs to be installed using composer. See https://www.mediawiki.org/wiki/Composer",
public=true,
},
TranslateTranslationDefaultService={
value=true,
description="Name of the default translation memory service. This service must accept updates.\n\nIf left as the default `true`, the extension will fallback to TTMServer. If `$wgTranslateTranslationServices` is also unconfigured, built-in values will be used to configure the TTMServer.\n\nIf set to `false`, no translation memory will be used.",
public=true,
},
TranslateTranslationServices={
value={
},
description="Define various web services that provide translation suggestions.\n\nTranslation memories are documented in our main documentation. See https://www.mediawiki.org/wiki/Help:Extension:Translate/Translation_memories\n\nFor Apertium, you should get an API key. See http://wiki.apertium.org/wiki/Apertium_web_service\n\nYandex translation helper also provides langlimit option to limit total number of suggestions (set to 0 to get all possible translations) and langorder array to sort languages. Yandex translate engine is based on wordnet, generated from search index, so number of indexed websites should be a good heuristic to define the default language order.\n\nThe machine translation services are provided with the following information: server ip address; versions of MediaWiki and Translate extension; source text to translate; private API key if provided",
public=true,
},
TranslateStatsProviders={
value={
edits="MediaWiki\\Extension\\Translate\\Statistics\\TranslatePerLanguageStats",
users="MediaWiki\\Extension\\Translate\\Statistics\\TranslatePerLanguageStats",
reviews="MediaWiki\\Extension\\Translate\\Statistics\\ReviewPerLanguageStats",
reviewers="MediaWiki\\Extension\\Translate\\Statistics\\ReviewPerLanguageStats",
registrations="MediaWiki\\Extension\\Translate\\Statistics\\TranslateRegistrationStats",
},
description="Add, disable or overwrite default stats type providers.",
public=true,
},
TranslateGroupSynchronizationCache={
value=false,
description="If true, enables the group synchronization cache that keeps track of FileBasedMessageGroups messages currently being processed via UpdateMessageJob",
public=true,
},
TranslatePageMoveLimit={
value=500,
description="If set, displays a warning and does not allow user to move translatable pages having more subpages than this value",
public=true,
},
TranslateEnableMessageBundleIntegration={
value=false,
description="Enable experiment message bundle integration",
public=true,
},
},
attributes={
CodeMirror={
TagModes={
translate="text/mediawiki",
tvar="text/mediawiki",
},
PluginModules={
"ext.translate.codemirror",},
},
VisualEditor={
PluginModules={
"ext.translate.ve",},
},
},
DefaultUserOptions={
translate=0,
["translate-editlangs"]="default",
["translate-recent-groups"]="",
},
AvailableRights={
"translate","translate-import","translate-manage","translate-messagereview","translate-groupreview","unfuzzy",},
GrantPermissions={
editpage={
translate=true,
unfuzzy=true,
["translate-manage"]=true,
},
},
GroupPermissions={
["*"]={
unfuzzy=true,
},
},
ParsoidModules={
"MediaWiki\\Extension\\Translate\\PageTranslation\\TranslateExt",},
composer="mediawiki/translate",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Translate",
},
TranslationNotifications={
name="TranslationNotifications",
version="2018-08-05",
author={
"Niklas Laxström","Amir E. Aharoni","Santhosh Thottingal","Siebrand Mazeland","Jon Harald Søby",},
url="https://www.mediawiki.org/wiki/Extension:TranslationNotifications",
descriptionmsg="translationnotifications-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42.0",
extensions={
MassMessage="*",
Translate="*",
},
},
DefaultUserOptions={
["translationnotifications-lang-1"]="",
["translationnotifications-lang-2"]="",
["translationnotifications-lang-3"]="",
},
SpecialPages={
TranslatorSignup={
class="MediaWiki\\Extension\\TranslationNotifications\\SpecialTranslatorSignup",
services={
"UserOptionsManager","LanguageNameUtils",},
},
NotifyTranslators={
class="MediaWiki\\Extension\\TranslationNotifications\\SpecialNotifyTranslators",
services={
"LanguageNameUtils","JobQueueGroup",},
},
},
JobClasses={
TranslationNotificationsEmailJob="MediaWiki\\Extension\\TranslationNotifications\\Jobs\\TranslationNotificationsEmailJob",
TranslationNotificationsSubmitJob="MediaWiki\\Extension\\TranslationNotifications\\Jobs\\TranslationNotificationsSubmitJob",
},
LogTypes={
"notifytranslators",},
LogActionsHandlers={
["notifytranslators/sent"]="MediaWiki\\Extension\\TranslationNotifications\\TranslationNotificationsLogFormatter",
},
TranslationAliasesDirs={
TranslationNotificationsAlias="i18n/aliases/",
},
Hooks={
GetPreferences="main",
BeforeCreateEchoEvent={
"MediaWiki\\Extension\\TranslationNotifications\\Hooks::onBeforeCreateEchoEvent",},
},
HookHandlers={
main={
class="MediaWiki\\Extension\\TranslationNotifications\\Hooks",
},
},
config={
TranslationNotificationsContactMethods={
value={
email=true,
talkpage=true,
["talkpage-elsewhere"]=false,
feed=false,
},
},
TranslationNotificationsSignupLegalMessage={
value="translationnotifications-signup-legal",
},
TranslationNotificationsAlwaysHttpsInEmail={
value=false,
},
},
composer="mediawiki/translation-notifications",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TranslationNotifications",
},
TrustedXFF={
name="TrustedXFF",
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:TrustedXFF",
descriptionmsg="trustedxff-desc",
version="2.0.0",
author={
"Tim Starling","Sam Reed",},
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
HookHandlers={
main={
factory={
"MediaWiki\\Extension\\TrustedXFF\\TrustedXFF","getInstance",},
},
},
Hooks={
IsTrustedProxy="main",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TrustedXFF",
},
TuleapIntegration={
name="TuleapIntegration",
version="2.0.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://www.hallowelt.com",
descriptionmsg="tuleapintegration-desc",
requires={
MediaWiki="&gt;= 1.39.0",
},
ExtensionMessagesFiles={
TuleapIntegrationAlias="includes/TuleapIntegration.alias.php",
},
config={
TuleapUrl={
value="https://tuleap-web.tuleap-aio-dev.docker",
},
TuleapOAuth2Config={
value={
clientId="",
clientSecret="",
redirectUri="",
},
},
TuleapProjectId={
value=0,
},
TuleapData={
value={
},
},
TuleapEnableLocalLogin={
value=true,
description="If true, no Oauth auto-login will be executed",
},
},
Hooks={
BeforeInitialize="setUpOauthLogin",
["SkinTemplateNavigation::Universal"]={
"setUpOauthLogin","replaceUserLinks",},
HtmlPageLinkRendererEnd="replaceUserLinks",
SpecialPage_initList="setUpOauthLogin",
OutputPageBeforeHTML="replaceLinks",
BeforePageDisplay="replaceLinks",
getUserPermissionsErrors="setUpOauthLogin",
},
HookHandlers={
setUpOauthLogin={
class="TuleapIntegration\\Hook\\SetUpOauthLogin",
services={
"MainConfig",},
},
replaceUserLinks={
class="TuleapIntegration\\Hook\\ReplaceUserLinks",
services={
"UserFactory",},
},
replaceLinks={
class="TuleapIntegration\\ReferenceManager",
services={
"TuleapConnection","MainConfig",},
},
},
SpecialPages={
TuleapLogin={
class="TuleapIntegration\\Special\\TuleapLogin",
services={
"TuleapConnection","TitleFactory","UserFactory","UserOptionsManager","UserGroupManager","TuleapUserMappingProvider",},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
composer="mediawiki/tuleap-integration",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TuleapIntegration",
},
TuleapWikiFarm={
name="TuleapWikiFarm",
version="2.0.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://www.hallowelt.com",
descriptionmsg="tuleapwikifarm-desc",
requires={
MediaWiki="&gt;= 1.39.0",
},
attributes={
TuleapWikiFarm={
MaintenanceScripts={
runjobs={
class="TuleapWikiFarm\\ProcessStep\\Maintenance\\RunJobs",
services={
"InstanceManager","MainConfig",},
},
update={
class="TuleapWikiFarm\\ProcessStep\\Maintenance\\Update",
services={
"InstanceManager","MainConfig",},
},
["set-user-groups"]={
class="TuleapWikiFarm\\ProcessStep\\Maintenance\\SetGroups",
services={
"InstanceManager","MainConfig",},
},
["refresh-links"]={
class="TuleapWikiFarm\\ProcessStep\\Maintenance\\RefreshLinks",
services={
"InstanceManager","MainConfig",},
},
["terminate-sessions"]={
class="TuleapWikiFarm\\ProcessStep\\Maintenance\\TerminateSessions",
services={
"InstanceManager","MainConfig",},
},
},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
Hooks={
LoadExtensionSchemaUpdates="registerTable",
},
HookHandlers={
registerTable={
class="TuleapWikiFarm\\Hook\\RegisterTable",
},
},
AvailableRights={
"tuleap-farm-manage",},
GroupPermissions={
sysop={
["tuleap-farm-manage"]=true,
},
user={
["tuleap-farm-manage"]=false,
},
},
RestRoutes={
{
method="PUT",
path="/tuleap/instance/{name}",
class="TuleapWikiFarm\\Rest\\CreateInstanceHandler",
services={
"InstanceManager","MainConfig","LanguageNameUtils",},
},{
method="POST",
path="/tuleap/instance/rename/{name}/{newname}",
class="TuleapWikiFarm\\Rest\\RenameInstanceHandler",
services={
"InstanceManager",},
},{
method="POST",
path="/tuleap/instance/suspend/{name}",
class="TuleapWikiFarm\\Rest\\SetInstanceStatusHandler",
args={
"suspended","ready",},
services={
"InstanceManager",},
},{
method="POST",
path="/tuleap/instance/resume/{name}",
class="TuleapWikiFarm\\Rest\\SetInstanceStatusHandler",
args={
"ready","suspended",},
services={
"InstanceManager",},
},{
method="POST",
path="/tuleap/maintenance/{instance}/{script}",
class="TuleapWikiFarm\\Rest\\MaintenanceHandler",
services={
"InstanceManager",},
},{
path="/tuleap/instance/{name}",
class="TuleapWikiFarm\\Rest\\InstanceStatusHandler",
services={
"InstanceManager",},
},{
method="DELETE",
path="/tuleap/instance/{name}",
class="TuleapWikiFarm\\Rest\\DeleteInstanceHandler",
services={
"InstanceManager","MainConfig",},
},{
method="POST",
path="/tuleap/instance/register/{name}",
class="TuleapWikiFarm\\Rest\\RegisterInstanceHandler",
services={
"InstanceManager","LanguageNameUtils",},
},},
config={
TuleapPreSharedKey={
value=nil,
},
TuleapFarmConfig={
value={
instanceDir=nil,
centralDb=nil,
},
},
},
SessionProviders={
["TuleapWikiFarm\\PreSharedKeySessionProvider"]={
factory="TuleapWikiFarm\\PreSharedKeySessionProvider::factory",
},
},
GrantPermissions={
["farm-management"]={
["tuleap-farm-manage"]=true,
},
},
GrantPermissionGroups={
["farm-management"]="administration",
},
composer="mediawiki/tuleap-wiki-farm",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TuleapWikiFarm",
},
TweetANew={
name="TweetANew",
version="1.2.12052020",
author={
"[https://www.mediawiki.org/wiki/User:Varnent Gregory Varnum]","[https://github.com/mooeypoo Moriel Schottlender] after merging extensions by [https://www.mediawiki.org/wiki/User:Joa_ds Joachim De Schrijver]","Andrew Fitzgerald","Wendell Gaudencio","Rohit Keshwani",},
url="https://www.mediawiki.org/wiki/Extension:TweetANew",
descriptionmsg="tweetanew-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
ExtensionMessagesFiles={
TweetANewMagic="TweetANew.i18n.magic.php",
},
requires={
MediaWiki="&gt;= 1.34.0",
},
callback="TweetANew::registerExtension",
Hooks={
EditPageGetCheckboxesDefinition="TweetANew::TweetANewEditCheckBox",
ParserFirstCallInit="TweetANew::onParserFirstCallInit",
},
config={
TweetANewTweet={
description="'New': Automatically tweet about new articles. Default is true. 'Edit': Automatically tweet about articles when edited. Default is true. 'LessMinutesOld': Minutes since last edit to wait before tweeting about a new edit. Default is 5. 'SkipMinor': Skip minor edits. Default is true.",
value={
New=true,
Edit=true,
LessMinutesOld=5,
SkipMinor=true,
SkipRedirect=true,
TwitterAsTitle=false,
UserGroup="autoconfirmed",
},
},
TweetANewText={
description="'Minor': Indicate in tweet if edit is marked as minor. Only applies if $wgTweetANewTweet['SkipMinor'] = false. Default is false. 'MinorSpace': Include a space after minor edit indicator. Only applies if $wgTweetANewTweet['SkipMinor'] = false and'Minor'] = true. Default is true. 'NewRandom': Use a mix of random messages in body of tweets about new articles. Default is true. 'NewRandomMax': Maximum number of random messages to use. Set any additional (beyond 3) using [[MediaWiki:Tweetanew-new4]], [[MediaWiki:Tweetanew-new5]], etc. Default is 3. 'NewAuthor': Display the author of the new article. Default is false. 'NewSummary': Display content entered into new article's summary box. Default is false. 'EditRandom': Use a mix of random messages in body of tweets about article edits. Default is true. 'EditRandomMax': Maximum number of random messages to use. Set any additional (beyond 3) using [[MediaWiki:Tweetanew-edit4]], [[MediaWiki:Tweetanew-edit5]], etc. Default is 3. 'EditAuthor': Display the author of the edit. Default is false. 'EditSummary': Display content entered into edit's summary box. Default is false. 'RealName': Determine if user's real name will be displayed instead of their username. Default is false.",
value={
Minor=false,
MinorSpace=true,
NewRandom=true,
NewRandomMax=3,
NewAuthor=false,
NewSummary=false,
EditRandom=true,
EditRandomMax=3,
EditAuthor=false,
EditSummary=false,
RealName=false,
},
},
TweetANewEditpage={
description="'Enable': Determine if checkbox to tweet from edit page if $wgTweetANewTweet['New'] = false or $wgTweetANewTweet['Edit'] = false. Default is false. 'Checked': Determine if checkbox to tweet from edit page is automatically checked.",
value={
Enable=false,
Checked=false,
},
},
TweetANewTwitter={
description="'ConsumerKey': Consumer key provided at https://dev.twitter.com/apps - be sure to have write and read permissions. 'ConsumerSecret': Consumer secret provided at https://dev.twitter.com/apps - be sure to have write and read permissions. 'AccessToken': Access token provided by the OAuth tool at https://dev.twitter.com/apps - be sure to have write and read permissions. 'AccessTokenSecret': Access token secret provided by the OAuth tool at https://dev.twitter.com/apps. Be sure to have write and read permissions.",
value={
ConsumerKey="",
ConsumerSecret="",
AccessToken="",
AccessTokenSecret="",
},
},
TweetANewBitly={
description="'Enable': Display URL as bitly link - allowing you to track usage via your bitly account. Default is false. 'Login': If bitly link display is enabled, enter your bitly user account - signup at: http://bitly.com/a/sign_up. 'API': If bitly link display is enabled, enter your bitly API key - find your API key at: http://bitly.com/a/your_api_key",
value={
Enable=false,
Login="",
API="",
},
},
TweetANewGoogl={
description="'Enable': Display URL as goo.gl link - allowing you to track usage via your Google Account. Default is false. 'API': If goo.gl link display is enabled, enter your goo.gl API key. Enable the URL shortener API and find your API key at: http://code.google.com/apis/console/",
value={
Enable=false,
API="",
},
},
TweetANewBlacklist={
description="Array of pages blacklisted. Example: $wgTweetANewBlacklist = array('BadPage1','BadPage2');",
value={
value="",
},
},
TweetANewBlocklist={
value={
value="",
},
},
TweetANewCatBlocklist={
value={
value="",
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TweetANew",
},
TwitterCards={
name="TwitterCards",
version="0.2",
author={
"Harsh Kothari","Kunal Mehta",},
url="https://www.mediawiki.org/wiki/Extension:TwitterCards",
descriptionmsg="twittercards-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
extensions={
TextExtracts="*",
},
},
ExtensionMessagesFiles={
TwitterCardsMagic="TwitterCards.magic.php",
},
Hooks={
BeforePageDisplay="TwitterCardsHooks::onBeforePageDisplay",
},
config={
TwitterCardsPreferOG={
value=true,
},
TwitterCardsHandle={
value="",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TwitterCards",
},
TwitterTag={
name="Twitter Tag",
version="1.2.1",
author={
"TyA","sactage","X-Wing Team @ Wikia","Mikko Miettinen",},
url="https://www.mediawiki.org/wiki/Extension:TwitterTag",
descriptionmsg="twitter-tag-desc",
["license-name"]="GPL-3.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.27.0",
},
Hooks={
ParserFirstCallInit="TwitterTagController::onParserFirstCallInit",
},
TrackingCategories={
"twitter-tag-likes-category",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TwitterTag",
},
["Translatewiki.net main page"]={
name="Translatewiki.net main page",
version="2016-02-21",
author={
"Niklas Laxström","Santhosh Thottingal",},
descriptionmsg="twnmp-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
Translate="*",
},
},
ExtensionFunctions={
"TwnMainPageHooks::setup",},
ExtensionMessagesFiles={
TranslatewikiMagic="i18n/magic.php",
},
JobClasses={
CachedStatJob="CachedStatJob",
},
config={
MainPageImages={
},
},
TranslationAliasesDirs={
TwnMainPageAliases="i18n/special-page-aliases",
},
HookHandlers={
location={
class="Translatewiki\\Location\\HookHandler",
services={
"DBLoadBalancerFactory","TitleParser",},
},
},
Hooks={
ParserFirstCallInit="location",
},
SpecialPages={
TwnMainPage="SpecialTwnMainPage",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TwnMainPage",
},
TwoColConflict={
name="TwoColConflict",
author={
"[https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes Wikimedia Deutschland Technical Wishes Team]","Christoph Jauera","Addshore","Andrew Kostka","Thiemo Kreuz","Adam Wight",},
url="https://www.mediawiki.org/wiki/Extension:TwoColConflict",
descriptionmsg="twocolconflict-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
},
config={
TwoColConflictBetaFeature={
description="Make the TwoColConflict feature a BetaFeature. Setting this requires the BetaFeature extension and requires each user to enable the BetaFeature.",
public=true,
value=true,
},
TwoColConflictTrackingOversample={
description="100% sampling for EditStepAttempt events whenever a user is in the conflict workflow.  FIXME: This should be disabled everywhere unless we're explicitly collecting data and planning to analyze the results.",
public=true,
value=false,
},
TwoColConflictSuggestResolution={
description="Suggest an easy resolution for edit conflicts on talk pages when two users replied at the same time.",
public=true,
value=true,
},
},
Hooks={
GetBetaFeaturePreferences="TwoColConflict\\Hooks\\TwoColConflictHooks::onGetBetaFeaturePreferences",
GetPreferences="main",
LoadUserOptions="main",
AlternateEdit="main",
["EditPage::importFormData"]="editpageformdata",
EditPageBeforeConflictDiff="main",
EditPageBeforeEditButtons="main",
["EditPage::showEditForm:initial"]="main",
["EditPage::showEditForm:fields"]="main",
},
HookHandlers={
main={
class="TwoColConflict\\Hooks\\TwoColConflictHooks",
services={
"TwoColConflictContext",},
},
editpageformdata={
class="TwoColConflict\\Hooks\\EditPageImportFormDataHookHandler",
},
},
DefaultUserOptions={
["twocolconflict-enabled"]=1,
},
ExtensionMessagesFiles={
TwoColConflictAlias="TwoColConflict.alias.php",
},
SpecialPages={
TwoColConflictProvideSubmittedText={
class="TwoColConflict\\ProvideSubmittedText\\SpecialProvideSubmittedText",
services={
"TwoColConflictContext","MainObjectStash","StatsdDataFactory",},
},
},
QUnitTestModule={
localBasePath="tests/qunit",
remoteExtPath="TwoColConflict/tests/qunit",
scripts={
"SplitTwoColConflict/TwoColConflict.Merger.test.js","SplitTwoColConflict/TwoColConflict.Split.tracking.test.js",},
dependencies={
"ext.TwoColConflict.SplitJs",},
},
attributes={
EventLogging={
Schemas={
TwoColConflictConflict="/analytics/legacy/twocolconflictconflict/1.0.0",
TwoColConflictExit="/analytics/legacy/twocolconflictexit/1.0.0",
},
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/TwoColConflict",
},
UIFeedback={
name="UiFeedback",
version="0.5.0",
author={
"lbenedix",},
url="https://www.mediawiki.org/wiki/Extension:UIFeedback",
descriptionmsg="ui-feedback-desc",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
APIModules={
uifeedback="UIFeedbackAPI",
},
AvailableRights={
"read_uifeedback","write_uifeedback",},
GroupPermissions={
["*"]={
read_uifeedback=true,
upload=true,
},
UIFeedback_Administator={
write_uifeedback=true,
},
},
SpecialPages={
UiFeedback="SpecialUiFeedback",
},
ExtensionMessagesFiles={
UIFeedbackAlias="UIFeedback.alias.php",
},
Hooks={
LoadExtensionSchemaUpdates="UIFeedbackHooks::createUIFeedbackTable",
BeforePageDisplay="UIFeedbackHooks::uifeedbackBeforePageDisplay",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UIFeedback",
},
UILangCode={
name="UILangCode",
version="1.0.0",
author="Niklas Laxström",
url="https://www.mediawiki.org/wiki/Extension:UILangCode",
descriptionmsg="uilangcode-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
MagicWordwgVariableIDs="MediaWiki\\Extension\\UILangCode\\Hooks::onMagicWordwgVariableIDs",
ParserGetVariableValueSwitch="MediaWiki\\Extension\\UILangCode\\Hooks::onParserGetVariableValueSwitch",
},
ExtensionMessagesFiles={
UILangCodeMagic="UILangCode.i18n.magic.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UILangCode",
},
UnCaptcha={
name="UnCaptcha",
author="Kunal Mehta",
["license-name"]="GPL-3.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:UnCaptcha",
type="antispam",
descriptionmsg="uncaptcha-desc",
requires={
MediaWiki="&gt;= 1.29.0",
},
AuthManagerAutoConfig={
preauth={
UnCaptchaPreAuthenticationProvider={
class="MediaWiki\\UnCaptcha\\RobotPreAuthenticationProvider",
sort=50,
},
},
},
Hooks={
AuthChangeFormFields="MediaWiki\\UnCaptcha\\Hooks::onAuthChangeFormFields",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UnCaptcha",
},
UnicodeConverter={
name="UnicodeConverter",
author="Tim Starling",
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:UnicodeConverter",
descriptionmsg="unicodeconverter-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.31.0",
},
SpecialPages={
UnicodeConverter="SpecialUnicodeConverter",
},
ExtensionMessagesFiles={
UnicodeConverterAlias="UnicodeConverter.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UnicodeConverter",
},
UnifiedTaskOverview={
name="UnifiedTaskOverview",
version="1.1.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://en.wiki.bluespice.com/wiki/Reference:UnifiedTaskOverview",
descriptionmsg="unifiedtaskoverview-desc",
requires={
MediaWiki="&gt;= 1.39.0",
},
attributes={
UnifiedTaskOverview={
AttentionIndicatorCollectionRegistry={
},
},
BlueSpiceDiscovery={
AttentionIndicatorRegistry={
taskoverview="\\MediaWiki\\Extension\\UnifiedTaskOverview\\AttentionIndicator\\TaskOverview::factory",
},
},
},
callback="mwsInitComponents",
ExtensionMessagesFiles={
UnifiedTaskOverviewAlias="languages/UnifiedTaskOverview.i18n.alias.php",
},
SpecialPages={
UnifiedTaskOverview="MediaWiki\\Extension\\UnifiedTaskOverview\\Special\\UnifiedTaskOverview",
},
HookHandlers={
setup={
class="\\MediaWiki\\Extension\\UnifiedTaskOverview\\HookHandler\\SkinTemplateNavigation\\Setup",
},
},
Hooks={
["SkinTemplateNavigation::Universal"]="setup",
},
RestRoutes={
{
path="/unifiedtaskoverview/list",
method="GET",
class="MediaWiki\\Extension\\UnifiedTaskOverview\\Rest\\ListHandler",
services={
"HookContainer",},
},},
composer="mediawiki/unified-task-overview",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UnifiedTaskOverview",
},
UniversalLanguageSelector={
name="UniversalLanguageSelector",
namemsg="uls-extensionname",
version="2024-07-16",
author={
"Alolita Sharma","Amir Aharoni","Arun Ganesh","Brandon Harris","Kartik Mistry","Niharika Kohli","Niklas Laxström","Pau Giner","Santhosh Thottingal","Siebrand Mazeland",},
url="https://www.mediawiki.org/wiki/Extension:UniversalLanguageSelector",
descriptionmsg="uls-desc",
["license-name"]="GPL-2.0-or-later OR MIT",
requires={
MediaWiki="&gt;= 1.41.0",
},
Hooks={
BeforePageDisplay="main",
GetBetaFeaturePreferences="main",
GetPreferences="main",
MakeGlobalVariablesScript="main",
ResourceLoaderGetConfigVars="main",
SkinAfterPortlet="main",
["SkinTemplateNavigation::Universal"]="main",
UserGetLanguageObject="main",
},
HookHandlers={
main={
class="UniversalLanguageSelector\\Hooks",
services={
"MainConfig","UserOptionsLookup","StatsdDataFactory","LanguageNameUtils",},
},
},
APIModules={
languagesearch="UniversalLanguageSelector\\Api\\ApiLanguageSearch",
ulslocalization={
class="UniversalLanguageSelector\\Api\\ApiULSLocalization",
services={
"LanguageNameUtils",},
},
ulssetlang={
class="UniversalLanguageSelector\\Api\\ApiULSSetLanguage",
services={
"UserOptionsManager","LanguageNameUtils",},
},
},
DefaultUserOptions={
["uls-preferences"]="",
["compact-language-links"]=true,
},
config={
ULSGeoService={
description="ULS can use a geolocation service to suggest languages based on the country the user is vising from. If set to an URL it will query that service which must return an object which has key \"country_code\" or \"country\". For example https://api.ipstack.com/check?access_key=yourkey&amp;fields=country_code. Setting this to false will prevent built-in geolocation from being used. You can also provide your own geolocation by assigning such object to window.Geo.",
value=false,
},
ULSEnable={
description="Enable language selection, compact language links, input methods and webfonts for everyone, unless the behavior is overridden by the configuration variables below. Even if false the classes and resource loader modules are registered for the use of other extensions. Language changing via cookie or setlang query parameter is not possible.",
value=true,
},
ULSAnonCanChangeLanguage={
description="Allow anonymous users to change language with cookie and setlang query parameter. Do not use if you are caching anonymous page views without taking cookies into account. Does not have any effect if $wgULSEnable is set to false. @since 2013.04",
value=true,
},
ULSLanguageDetection={
description="Try to use preferred interface language for anonymous users. Do not use if you are caching anonymous page views without taking Accept-Language into account. Does not have any effect if $wgULSEnable is set to false.",
value=true,
},
ULSIMEEnabled={
description="Enable the input methods feature for all users by default. Can be controlled by the user.",
value=true,
},
ULSWebfontsEnabled={
description="Enable the webfonts feature for all users by default. Can be controlled by the user. @since 2014.02",
value=true,
},
ULSPosition={
description="The location and the form of the language selection trigger.  The possible values are: (a) \"personal\"- as a link near the username or the log in link in the personal toolbar (default). (b) \"interlanguage\": as an icon near the header of the list of interlanguage  links in the sidebar.",
value="personal",
},
ULSImeSelectors={
description="Array of jQuery selectors of elements on which IME should be enabled. @since 2013.11",
value={
"input:not([type])","input[type=text]","input[type=search]","textarea","[contenteditable]",},
},
ULSNoImeSelectors={
description="Array of jQuery selectors of elements on which IME must not be enabled. @since 2013.07",
value={
"#wpCaptchaWord",".ace_text-input",".ve-ce-surface-paste",".ve-ce-surface-readOnly [contenteditable]",},
},
ULSNoWebfontsSelectors={
description="Array of jQuery selectors of elements on which webfonts must not be applied. By default exclude elements with .autonym because that style set font as Autonym @since 2013.09",
value={
"#p-lang li.interlanguage-link &gt; a",},
},
ULSFontRepositoryBasePath={
description="Base path of ULS font repository. If not set, will be set to 'UniversalLanguageSelector/data/fontrepo/fonts/', relative to $wgExtensionAssetsPath. @since 2013.10",
value=false,
},
ULSCompactLanguageLinksBetaFeature={
description="Set compact interlanguage links as beta feature or not. If set false, compact interlanguage links will be available by default to all users.",
value=false,
},
},
callback="UniversalLanguageSelector\\Hooks::setVersionConstant",
QUnitTestModule={
localBasePath="tests/qunit",
remoteExtPath="UniversalLanguageSelector/tests/qunit",
scripts={
"ext.uls.tests.js",},
dependencies={
"jquery.uls","ext.uls.common","ext.uls.preferences",},
},
composer="mediawiki/universal-language-selector",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UniversalLanguageSelector",
},
UnlinkedWikibase={
name="UnlinkedWikibase",
author={
"[https://samwilson.id.au/ Sam Wilson]",},
["license-name"]="GPL-2.0-or-later",
namemsg="unlinkedwikibase",
descriptionmsg="unlinkedwikibase-desc",
version="3.0.0",
url="https://www.mediawiki.org/wiki/Extension:UnlinkedWikibase",
type="other",
requires={
MediaWiki="&gt;= 1.38",
},
ExtensionMessagesFiles={
UnlinkedWikibaseMagicWords="UnlinkedWikibase.i18n.magic.php",
},
Hooks={
ScribuntoExternalLibraries="MediaWiki\\Extension\\UnlinkedWikibase\\Hooks::onScribuntoExternalLibraries",
ParserFirstCallInit="main",
InfoAction="main",
OutputPageParserOutput="main",
SidebarBeforeOutput="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\UnlinkedWikibase\\Hooks",
services={
"MainConfig","DBLoadBalancerFactory","JobQueueGroupFactory",},
},
},
JobClasses={
UnlinkedWikibaseFetch={
class="MediaWiki\\Extension\\UnlinkedWikibase\\FetchJob",
services={
"MainWANObjectCache","MainConfig",},
},
},
config={
UnlinkedWikibaseBaseUrl={
description="The base URL of the Wikibase site to use.",
value="https://www.wikidata.org/wiki/",
},
UnlinkedWikibaseBaseQueryEndpoint={
description="The query service Sparql endpoint.",
value="https://query.wikidata.org/bigdata/namespace/wdq/sparql",
},
UnlinkedWikibaseEntityTTL={
description="The cache lifetime (in seconds) for individual entities. Set to null when the UnlinkedWikibaseUpdateEntities script is used to update the data.",
value="60",
},
UnlinkedWikibaseQueryTTL={
description="The cache lifetime (in seconds) for Sparql queries.",
value="3600",
},
UnlinkedWikibaseStatementsParserFunc={
description="Whether to enable the {{#statements:}} parser function.",
value=false,
},
UnlinkedWikibaseSitelinkSuffix={
description="What sitelink suffix to turn into language links (e.g. 'wiki') or false to disable using language links",
value=false,
},
UnlinkedWikibaseSitelinkSkippedLangs={
description="List of language codes to skip",
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UnlinkedWikibase",
composer="samwilson/unlinked-wikibase",
},
UnusedRedirects={
name="UnusedRedirects",
version="1.5",
author="Jack Phoenix",
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:UnusedRedirects",
descriptionmsg="unusedredirects-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.34.0",
},
SpecialPages={
UnusedRedirects="UnusedRedirectsPage",
},
ExtensionMessagesFiles={
UnusedRedirectsAlias="UnusedRedirects.alias.php",
},
Hooks={
wgQueryPages="UnusedRedirectsPage::onwgQueryPages",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UnusedRedirects",
},
UpdateMediaWiki={
name="UpdateMediaWiki",
version="0.5.0",
author={
"[https://www.mediawiki.org/wiki/User:KernelFreeze Miguel Peláez]",},
url="https://www.mediawiki.org/wiki/Extension:UpdateMediaWiki",
descriptionmsg="updatemediawiki-desc",
["license-name"]="GPL-2.0-or-later",
type="extensions",
requires={
MediaWiki="&gt;= 1.32.0",
},
SpecialPages={
UpdateMediaWiki="SpecialUpdateMediaWiki",
},
ExtensionMessagesFiles={
UpdateMediaWikiAlias="UpdateMediaWiki.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UpdateMediaWiki",
},
UploadWizard={
name="Upload Wizard",
version="1.5.0",
author={
"Neil Kandalgaonkar","Jeroen De Dauw","Mark Holmquist","Ryan Kaldari","Michael Dale","Ankur Anand","Ian Baker","Nischay Nahata","Yuvi Panda","Bartosz Dziewoński","Matthias Mullie",},
url="https://www.mediawiki.org/wiki/Extension:UploadWizard",
descriptionmsg="uploadwizard-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
},
DefaultUserOptions={
upwiz_deflicense="default",
upwiz_maxsimultaneous="default",
upwiz_mv_cta_dismissed=0,
},
GroupPermissions={
["*"]={
upwizcampaigns=false,
},
user={
upwizcampaigns=false,
},
autoconfirmed={
upwizcampaigns=false,
},
bot={
upwizcampaigns=false,
},
sysop={
upwizcampaigns=true,
["mass-upload"]=true,
},
upwizcampeditors={
upwizcampaigns=true,
},
},
AddGroups={
sysop={
"upwizcampeditors",},
},
RemoveGroups={
sysop={
"upwizcampeditors",},
},
AvailableRights={
"upwizcampaigns","mass-upload",},
ContentHandlers={
Campaign="MediaWiki\\Extension\\UploadWizard\\CampaignContentHandler",
},
SpecialPages={
UploadWizard={
class="MediaWiki\\Extension\\UploadWizard\\Specials\\SpecialUploadWizard",
services={
"UserOptionsLookup",},
},
Campaigns={
class="MediaWiki\\Extension\\UploadWizard\\Specials\\SpecialCampaigns",
services={
"DBLoadBalancerFactory",},
},
},
APIModules={
flickrblacklist="MediaWiki\\Extension\\UploadWizard\\ApiFlickrBlacklist",
mediadetection={
class="MediaWiki\\Extension\\UploadWizard\\ApiMediaDetection",
services={
"DBLoadBalancerFactory","RepoGroup","HttpRequestFactory",},
},
},
APIListModules={
allcampaigns="MediaWiki\\Extension\\UploadWizard\\ApiQueryAllCampaigns",
},
ExtensionMessagesFiles={
UploadWizardAlias="UploadWizard.alias.php",
},
QUnitTestModule={
localBasePath="tests/qunit",
remoteExtPath="UploadWizard/tests/qunit",
scripts={
"controller/uw.controller.Deed.test.js","controller/uw.controller.Details.test.js","controller/uw.controller.Step.test.js","controller/uw.controller.Thanks.test.js","controller/uw.controller.Tutorial.test.js","controller/uw.controller.Upload.test.js","details/uw.LocationDetailsWidget.test.js","transports/mw.FormDataTransport.test.js","uw.ConcurrentQueue.test.js","mw.UploadWizardUpload.test.js","mw.UploadWizardLicenseInput.test.js","mw.FlickrChecker.test.js","uw.TitleDetailsWidget.test.js","mw.fileApi.test.js",},
dependencies={
"ext.uploadWizard",},
},
Hooks={
BeforePageDisplay="main",
LoadExtensionSchemaUpdates="schema",
GetPreferences="main",
IsUploadAllowedFromUrl="main",
ListDefinedTags="main",
ChangeTagsListActive="main",
ChangeTagsAllowedAdd="main",
ContentModelCanBeUsedOn="campaign",
EditFilterMergedContent="campaign",
CodeEditorGetPageLanguage="codeeditor",
PageSaveComplete="campaign",
ArticleDeleteComplete="campaign",
PageMoveComplete="campaign",
LinksUpdateComplete="campaign",
PreferencesGetIcon="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\UploadWizard\\Hooks",
},
campaign={
class="MediaWiki\\Extension\\UploadWizard\\CampaignHooks",
services={
"DBLoadBalancerFactory",},
},
codeeditor={
class="MediaWiki\\Extension\\UploadWizard\\CodeEditorHooks",
},
schema={
class="MediaWiki\\Extension\\UploadWizard\\SchemaHooks",
},
},
namespaces={
{
id=460,
constant="NS_CAMPAIGN",
name="Campaign",
defaultcontentmodel="Campaign",
protection="upwizcampaigns",
capitallinkoverride=false,
},{
id=461,
constant="NS_CAMPAIGN_TALK",
name="Campaign_talk",
capitallinkoverride=false,
},},
config={
UploadWizardConfig={
value={
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UploadWizard",
},
UploadsLink={
name="UploadsLink",
author={
"Bartosz Dziewoński","Rainer Rillke",},
url="https://www.mediawiki.org/wiki/Extension:UploadsLink",
descriptionmsg="uploadslink-desc",
["license-name"]="MIT",
type="other",
Hooks={
["SkinTemplateNavigation::Universal"]="main",
SidebarBeforeOutput="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\UploadsLink\\Hooks",
},
},
config={
UploadsLinkDisableAnon={
value=true,
},
UploadsLinkEnablePersonalLink={
value=true,
},
UploadsLinkEnableRelevantUserLink={
value=true,
},
},
requires={
MediaWiki="&gt;= 1.42",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UploadsLink",
},
UrlGetParameters={
name="UrlGetParameters",
version="1.6.0",
author={
"S.O.E. Ansems","...",},
url="https://www.mediawiki.org/wiki/Extension:UrlGetParameters",
descriptionmsg="urlgetparameters-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
UrlGetParametersMagic="UrlGetParameters.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="UrlGetParametersHooks::onParserFirstCallInit",
},
config={
UrlGetParametersSeparator={
value=",",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UrlGetParameters",
},
UrlShortener={
name="UrlShortener",
version="1.2.0",
author={
"Yuvi Panda","Prateek Saxena","Tim Starling","Kunal Mehta","MusikAnimal","Susana Molinar",},
url="https://www.mediawiki.org/wiki/Extension:UrlShortener",
descriptionmsg="urlshortener-desc",
["license-name"]="Apache-2.0",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42",
},
APIModules={
shortenurl={
class="MediaWiki\\Extension\\UrlShortener\\ApiShortenUrl",
services={
"PermissionManager","StatsdDataFactory",},
},
},
ExtensionMessagesFiles={
UrlShortenerAlias="UrlShortener.alias.php",
UrlShortenerNoTranslateAlias="UrlShortener.notranslate-alias.php",
},
callback="MediaWiki\\Extension\\UrlShortener\\Hooks::onRegistration",
Hooks={
LoadExtensionSchemaUpdates="schema",
WebRequestPathInfoRouter="main",
BeforePageDisplay="main",
SidebarBeforeOutput="main",
["SkinTemplateNavigation::Universal"]="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\UrlShortener\\Hooks",
services={
"ConfigFactory",},
optional_services={
"MobileFrontend.Context",},
},
schema={
class="MediaWiki\\Extension\\UrlShortener\\SchemaHooks",
},
},
LogTypes={
"urlshortener",},
LogActionsHandlers={
["urlshortener/*"]="LogFormatter",
},
ActionFilteredLogs={
urlshortener={
delete={
"delete",},
restore={
"restore",},
},
},
LogRestrictions={
urlshortener="urlshortener-view-log",
},
RateLimits={
urlshortcode={
ip={
10,120,},
["user-global"]={
50,300,},
["&amp;can-bypass"]=false,
},
},
SpecialPages={
UrlShortener="MediaWiki\\Extension\\UrlShortener\\SpecialUrlShortener",
UrlRedirector="MediaWiki\\Extension\\UrlShortener\\SpecialUrlRedirector",
ManageShortUrls="MediaWiki\\Extension\\UrlShortener\\SpecialManageShortUrls",
QrCode={
class="MediaWiki\\Extension\\UrlShortener\\SpecialQrCode",
services={
"ConfigFactory",},
},
},
AvailableRights={
"urlshortener-manage-url","urlshortener-create-url","urlshortener-view-log",},
GroupPermissions={
["*"]={
["urlshortener-manage-url"]=false,
["urlshortener-view-log"]=false,
["urlshortener-create-url"]=true,
},
sysop={
["urlshortener-manage-url"]=true,
["urlshortener-view-log"]=true,
["urlshortener-create-url"]=true,
},
},
GrantPermissions={
shortenurls={
["urlshortener-create-url"]=true,
},
},
GrantPermissionGroups={
shortenurls="administration",
},
GrantRiskGroups={
shortenurls="low",
},
config={
UrlShortenerApprovedDomains={
value=false,
},
UrlShortenerAllowedDomains={
value=false,
},
UrlShortenerIdSet={
value="23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz$",
},
UrlShortenerIdMapping={
value={
[1]="o",
O="o",
I="i",
l="i",
[2]="i",
},
},
UrlShortenerAltPrefix={
value="_",
},
UrlShortenerServer={
value=false,
},
UrlShortenerTemplate={
value=false,
},
UrlShortenerAllowArbitraryPorts={
value=false,
},
UrlShortenerReadOnly={
value=false,
},
UrlShortenerEnableSidebar={
value=true,
},
UrlShortenerUrlSizeLimit={
value=2000,
},
UrlShortenerEnableQrCode={
value=false,
description="Enables the QR Code sharing functionality.",
},
UrlShortenerQrCodeShortenLimit={
value=200,
description="If a URL is greater than this length (in bytes), it is first shortened before generating a QR code.",
},
},
ConfigRegistry={
urlshortener="GlobalVarConfig::newInstance",
},
DatabaseVirtualDomains={
"virtual-urlshortener",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UrlShortener",
},
UseResource={
name="UseResource",
version="1.0.0",
author="Brandon Fowler",
url="https://www.mediawiki.org/wiki/Extension:UseResource",
descriptionmsg="useresource-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
ParserFirstCallInit="main",
OutputPageParserOutput="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\UseResource\\Hooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UseResource",
},
UserAgreement={
name="UserAgreement",
version="2.0.0",
author={
"[https://www.mediawiki.org/wiki/User:Kevin.ji Kevin Ji]","[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]",},
url="https://www.mediawiki.org/wiki/Extension:UserAgreement",
descriptionmsg="useragreement-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
APIModules={
uaAcceptAgreement={
class="MediaWiki\\Extension\\UserAgreement\\ApiUAAcceptAgreement",
services={
"UserAgreementStore",},
},
},
HookHandlers={
schema={
class="MediaWiki\\Extension\\UserAgreement\\SchemaHooks",
},
main={
class="MediaWiki\\Extension\\UserAgreement\\MainHooks",
services={
"MainConfig","UserAgreementStore",},
},
},
Hooks={
LoadExtensionSchemaUpdates="schema",
BeforePageDisplay="main",
},
config={
UserAgreement_DaysToReaccept={
value=0,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UserAgreement",
},
UserExport={
name="UserExport",
version="2.1.1",
author={
"Rodrigo Sampaio Primo","Mark A. Hershberger","Karsten Hoffmeyer","...",},
url="https://www.mediawiki.org/wiki/Extension:UserExport",
descriptionmsg="userexport-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.3",
},
AvailableRights={
"userexport",},
GroupPermissions={
bureaucrat={
userexport=true,
},
},
SpecialPages={
UserExport="MediaWiki\\Extension\\UserExport\\Special",
},
ExtensionMessagesFiles={
UserExportAlias="UserExport.alias.php",
},
composer="mediawiki/user-export",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UserExport",
},
UserFunctions={
name="UserFunctions",
version="2.8.1",
author={
"Ross McClure","Toni Hermoso Pulido","Universal Omega","...",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:UserFunctions",
descriptionmsg="userfunctions-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
ExtensionMessagesFiles={
UserFunctionsMagic="UserFunctions.i18n.magic.php",
},
config={
UFEnabledPersonalDataFunctions={
value={
},
description="Set this to an array of personal data functions to enable or empty ([]) to disable all of them. Allowed values: realname, username, useremail, nickname, ip.",
},
UFEnableSpecialContexts={
value=true,
description="Allow to be used in places such as SF form.",
},
UFAllowedNamespaces={
value={
[9]=true,
},
merge_strategy="array_plus",
description="Restricts to certain namespaces.",
},
},
Hooks={
ParserFirstCallInit="ExtUserFunctions::onParserFirstCallInit",
},
composer="mediawiki/user-functions",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UserFunctions",
},
UserGroups={
name="UserGroups",
version="1.0.0",
author="Withoutaname",
url="https://www.mediawiki.org/wiki/Extension:UserGroups",
descriptionmsg="usergroups-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
},
AvailableRights={
"modifygroups",},
GroupPermissions={
bureaucrat={
modifygroups=true,
},
},
LogActionsHandlers={
["usergroups/*"]="LogFormatter",
},
LogHeaders={
usergroups="usergroups-log-header",
},
LogNames={
usergroups="usergroups-log-name",
},
LogTypes={
"usergroups",},
SpecialPages={
UserGroups="SpecialUserGroups",
},
ExtensionMessagesFiles={
SpecialUserGroupsAliases="UserGroups.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UserGroups",
},
UserMerge={
name="UserMerge",
version="1.10.2",
author={
"Tim Laqua","Thomas Gries","Matthew April",},
url="https://www.mediawiki.org/wiki/Extension:UserMerge",
descriptionmsg="usermerge-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42.0",
},
type="specialpage",
AvailableRights={
"usermerge",},
SpecialPages={
UserMerge={
class="SpecialUserMerge",
services={
"UserFactory","UserGroupManager","DatabaseBlockStore",},
},
},
LogTypes={
"usermerge",},
LogNames={
usermerge="usermerge-logpage",
},
LogHeaders={
usermerge="usermerge-logpagetext",
},
ActionFilteredLogs={
usermerge={
mergeuser={
"mergeuser",},
deleteuser={
"deleteuser",},
},
},
LogActionsHandlers={
["usermerge/*"]="UserMergeLogFormatter",
},
Hooks={
UserGetReservedNames="main",
ContributionsToolLinks="main",
},
HookHandlers={
main={
class="UserMergeHooks",
services={
"ConfigFactory","UserFactory","UserGroupManager",},
},
},
ExtensionMessagesFiles={
UserMergeAlias="UserMerge.alias.php",
},
ConfigRegistry={
usermerge="GlobalVarConfig::newInstance",
},
config={
UserMergeEnableDelete={
value=true,
},
UserMergeProtectedGroups={
value={
"sysop",},
merge_strategy="provide_default",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UserMerge",
},
UserOptionStats={
name="User Option Statistics",
version="3.0.1",
author="Niklas Laxström",
url="https://www.mediawiki.org/wiki/Extension:UserOptionStats",
descriptionmsg="useroptionstats-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.40.0",
},
ExtensionMessagesFiles={
UserOptionStatsAlias="UserOptionStats.alias.php",
},
SpecialPages={
UserOptionStats="SpecialUserOptionStats",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UserOptionStats",
},
UserPageEditProtection={
name="UserPageEditProtection",
version="4.1.0",
author={
"Lisa Ridley","Eric Gingell","Karsten Hoffmeyer","...",},
url="https://www.mediawiki.org/wiki/Extension:UserPageEditProtection",
descriptionmsg="userpageeditprotection-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
AvailableRights={
"editalluserpages",},
GroupPermissions={
sysop={
editalluserpages=true,
},
},
Hooks={
getUserPermissionsErrors="UserPageEditProtection::onGetUserPermissionsErrors",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UserPageEditProtection",
},
UserPageViewTracker={
name="UserPageViewTracker",
version="0.8",
author={
"[https://www.mediawiki.org/wiki/User:Kimon Kimon Andreou]","[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",},
url="https://www.mediawiki.org/wiki/Extension:UserPageViewTracker",
["license-name"]="GPL-3.0-only",
descriptionmsg="userpageviewtracker-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.29.0",
},
SpecialPages={
UserPageViewTracker="SpecialUserPageViewTracker",
},
ExtensionMessagesFiles={
UserPageViewTrackerAlias="UserPageViewTracker.alias.php",
},
Hooks={
BeforePageDisplay="SpecialUserPageViewTracker::onBeforePageDisplay",
LoadExtensionSchemaUpdates="SpecialUserPageViewTracker::onLoadExtensionSchemaUpdates",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UserPageViewTracker",
},
UserProtect={
name="UserProtect",
version="1.0",
author={
"[https://www.mediawiki.org/wiki/User:Pastakhov Pavel Astakhov]",},
url="https://www.mediawiki.org/wiki/Extension:UserProtect",
descriptionmsg="userprotect-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.38.0",
},
GroupPermissions={
sysop={
userprotect=true,
},
},
AvailableRights={
"userprotect",},
Actions={
userprotect="UserProtectAction",
},
Hooks={
ArticleDeleteComplete="UserProtectHooks::onArticleDeleteComplete",
PageSaveComplete="UserProtectHooks::onPageContentInsertComplete",
["SkinTemplateNavigation::Universal"]="UserProtectHooks::onSkinTemplateNavigation",
MediaWikiServices="UserProtectHooks::onMediaWikiServices",
LoadExtensionSchemaUpdates="UserProtectHooks::onLoadExtensionSchemaUpdates",
},
config={
UserProtectRestrictionTypes={
value={
edit=true,
move=true,
delete=true,
},
description="The list of permissions used for per-user per-page access control",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UserProtect",
},
UserStatus={
name="UserStatus",
version="3.6.0",
author={
"Aaron Wright","David Pean","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:UserStatus",
descriptionmsg="userstatus-desc",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
SpecialPages={
FanUpdates="SpecialViewFanUpdates",
UserStatus="SpecialViewUserStatus",
ViewThought="SpecialViewThought",
},
ExtensionMessagesFiles={
UserStatusAlias="includes/UserStatus.alias.php",
},
APIModules={
userstatus="ApiUserStatus",
},
Hooks={
LoadExtensionSchemaUpdates="UserStatusHooks::onLoadExtensionSchemaUpdates",
},
AvailableRights={
"delete-status-updates",},
GroupPermissions={
staff={
["delete-status-updates"]=true,
},
sysop={
["delete-status-updates"]=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/UserStatus",
},
VECancelButton={
name="VECancelButton",
version="1.0",
author={
"[https://wikiteq.com/ WikiTeq]",},
url="https://www.mediawiki.org/wiki/Extension:VECancelButton",
descriptionmsg="vecancelbutton-desc",
["license-name"]="MIT",
type="editor",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
VisualEditor="*",
},
},
attributes={
VisualEditor={
PluginModules={
"ext.vecancelbutton",},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/VECancelButton",
},
VEForAll={
name="VEForAll",
version="0.5.2",
author={
"Pierre Boutet","Clément Flipo","Ike Hecht","Yaron Koren","Cindy Cicalese",},
url="https://www.mediawiki.org/wiki/Extension:VEForAll",
descriptionmsg="veforall-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.35.0",
extensions={
VisualEditor="*",
},
},
callback="VEForAll\\VEForAllHooks::registerClasses",
Hooks={
BeforePageDisplay="VEForAll\\VEForAllHooks::onBeforePageDisplay",
MakeGlobalVariablesScript="VEForAll\\VEForAllHooks::onMakeGlobalVariablesScript",
},
composer="mediawiki/v-e-for-all",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/VEForAll",
},
VIKI={
name="VIKI",
version="1.6.0",
author={
"[https://www.mediawiki.org/wiki/User:Jji Jason Ji]","[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]",},
url="https://www.mediawiki.org/wiki/Extension:VIKI",
["license-name"]="MIT",
descriptionmsg="viki-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.34.0",
},
APIModules={
getContentNamespaces="ApiGetContentNamespaces",
},
ExtensionMessagesFiles={
VIKIMagic="VIKI.i18n.magic.php",
},
Hooks={
ParserFirstCallInit={
"VikiJS::efVIKIParserFunction_Setup",},
},
config={
VIKI_Hidden_Categories={
},
VIKI_Second_Order_Links=false,
VIKI_Function_Hooks={
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/VIKI",
},
Variables={
name="Variables",
version="2.6.0-beta",
author={
"Rob Adams","Tom Hempel","Xiloynaha","[https://www.mediawiki.org/wiki/User:Danwe Daniel Werner]","[https://www.mediawiki.org/wiki/User:MGChecker MGChecker]","...",},
url="https://www.mediawiki.org/wiki/Extension:Variables",
descriptionmsg="variables-desc",
["license-name"]="ISC",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
config_prefix="eg",
config={
VariablesDisabledFunctions={
value={
},
path=false,
descriptionmsg="variables-config-disabledfunctions",
public=true,
},
VariablesAreVolatile={
value=true,
path=false,
descriptionmsg="variables-config-arevolatile",
public=true,
},
},
Hooks={
ParserFirstCallInit="VariablesHooks::onParserFirstCallInit",
ParserClearState="VariablesHooks::onParserClearState",
},
ExtensionMessagesFiles={
VariablesMagic="Variables.i18n.magic.php",
},
repository="https://phabricator.wikimedia.org/diffusion/EVAR/",
composer="mediawiki/variables",
},
VersionCompare={
name="VersionCompare",
version="2.0.0",
author={
"[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]",},
url="https://www.mediawiki.org/wiki/Extension:VersionCompare",
descriptionmsg="version-compare-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
platform={
php="&gt;=7.4",
},
},
SpecialPages={
VersionCompare="SpecialVersionCompare",
},
ExtensionMessagesFiles={
VersionCompareAlias="i18n/VersionCompare.i18n.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/VersionCompare",
},
Video={
name="Video",
version="1.9.3",
author={
"David Pean","Jack Phoenix","John Du Hart","Mainframe98","Universal Omega",},
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.39.0",
},
url="https://www.mediawiki.org/wiki/Extension:Video",
descriptionmsg="video-desc",
type="other",
SpecialPages={
AddVideo={
class="AddVideo",
services={
"UserOptionsManager",},
},
NewVideos="NewVideos",
UnusedVideos="SpecialUnusedVideos",
Undelete={
class="SpecialUndeleteWithVideoSupport",
services={
"PermissionManager","RevisionStore","RevisionRenderer","ContentHandlerFactory","ChangeTagDefStore","LinkBatchFactory","RepoGroup","DBLoadBalancer","UserOptionsLookup","WikiPageFactory","SearchEngineFactory","UndeletePageFactory","ArchivedRevisionLookup","CommentFormatter",},
},
},
namespaces={
{
id=400,
constant="NS_VIDEO",
name="Video",
protection="addvideo",
},{
id=401,
constant="NS_VIDEO_TALK",
name="Video_talk",
},},
ExtensionMessagesFiles={
VideoAlias="includes/Video.alias.php",
VideoNamespaces="includes/Video.namespaces.php",
},
Hooks={
ArticleFromTitle={
"VideoHooks::onArticleFromTitle",},
ParserBeforeInternalParse={
"VideoHooks::videoTag",},
ParserBeforePreprocess={
"VideoHooks::videoTag",},
ParserFirstCallInit={
"VideoHooks::onParserFirstCallInit","VideoGalleryHooks::onParserFirstCallInit","VideoGalleryPopulateHooks::onParserFirstCallInit",},
PageDelete={
"VideoHooks::onPageDelete",},
PageUndelete={
"VideoHooks::onPageUndelete",},
["UndeleteForm::showHistory"]={
"VideoHooks::onUndeleteForm__showHistory",},
LoadExtensionSchemaUpdates={
"VideoHooks::onLoadExtensionSchemaUpdates",},
wgQueryPages={
"VideoHooks::onWgQueryPages",},
},
LogTypes={
"video",},
LogActionsHandlers={
["video/*"]="LogFormatter",
},
AvailableRights={
"addvideo",},
GroupPermissions={
["*"]={
addvideo=false,
},
user={
addvideo=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Video",
},
VikiSemanticTitle={
name="VikiSemanticTitle",
version="1.4.0",
author="[https://www.mediawiki.org/wiki/User:Jji Jason Ji]",
url="https://www.mediawiki.org/wiki/Extension:VikiSemanticTitle",
descriptionmsg="vikisemantictitle-desc",
["license-name"]="MIT",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
ParserFirstCallInit={
"VikiSemanticTitle::efVikiSemanticTitle_AddResource",},
},
callback="VikiSemanticTitle::onRegistration",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/VikiSemanticTitle",
},
VikiTitleIcon={
name="VikiTitleIcon",
version="1.4.0",
author="[https://www.mediawiki.org/wiki/User:Jji Jason Ji]",
url="https://www.mediawiki.org/wiki/Extension:VikiTitleIcon",
descriptionmsg="vikititleicon-desc",
type="parserhook",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.33.0",
},
APIModules={
getTitleIcons="ApiGetTitleIcons",
},
Hooks={
ParserFirstCallInit={
"VikiTitleIcon::efVikiTitleIcon_AddResource",},
},
callback="VikiTitleIcon::onRegistration",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/VikiTitleIcon",
},
VipsScaler={
name="VipsScaler",
author={
"Bryan Tong Minh",},
url="https://www.mediawiki.org/wiki/Extension:VipsScaler",
descriptionmsg="vipsscaler-desc",
["license-name"]="GPL-2.0-or-later",
type="media",
requires={
MediaWiki="&gt;= 1.42",
},
SpecialPages={
VipsTest="MediaWiki\\Extension\\VipsScaler\\SpecialVipsTest",
},
GroupPermissions={
["*"]={
["vipsscaler-test"]=true,
},
},
AvailableRights={
"vipsscaler-test",},
ExtensionMessagesFiles={
VipsScalerAlias="VipsScaler.alias.php",
},
Hooks={
BitmapHandlerTransform="main",
BitmapHandlerCheckImageArea="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\VipsScaler\\VipsScaler",
},
},
config={
VipsExposeTestPage={
value=false,
},
VipsCommand={
value="/usr/bin/vips",
},
VipsOptions={
value={
},
},
VipsThumbnailerHost={
value=nil,
},
VipsTestExpiry={
value=3600,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/VipsScaler",
},
VisualData={
name="VisualData",
author="thomas-topway-it",
version="1.0.8",
url="https://www.mediawiki.org/wiki/Extension:VisualData",
descriptionmsg="visualdata-extension-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.35.0",
},
callback="VisualDataHooks::initExtension",
HookHandlers={
visualdata_searchdata={
class="VisualDataDataForSearchIndex",
services={
"ContentHandlerFactory",},
},
},
ContentHandlers={
html="VisualDataHtmlContentHandler",
["visualdata-jsondata"]="VisualDataJsonDataContentHandler",
["pageproperties-jsondata"]="VisualDataJsonDataContentHandler",
["pageproperties-semantic"]="VisualDataJsonDataContentHandler",
},
Actions={
editdata="VisualDataEditAction",
},
ExtensionMessagesFiles={
VisualDataAlias="VisualData.alias.php",
VisualDataMagic="VisualDataMagic.i18n.magic.php",
},
Hooks={
LoadExtensionSchemaUpdates="VisualDataHooks::onLoadExtensionSchemaUpdates",
PageDeleteComplete="VisualDataHooks::onPageDeleteComplete",
ArticleUndelete="VisualDataHooks::onArticleUndelete",
ParserFirstCallInit="VisualDataHooks::onParserFirstCallInit",
PageSaveComplete="VisualDataHooks::onPageSaveComplete",
BeforeInitialize="VisualDataHooks::onBeforeInitialize",
ParserAfterTidy="VisualDataHooks::onParserAfterTidy",
MediaWikiServices="VisualDataHooks::onMediaWikiServices",
MultiContentSave="VisualDataHooks::onMultiContentSave",
RevisionFromEditComplete="VisualDataHooks::onRevisionFromEditComplete",
OutputPageParserOutput="VisualDataHooks::onOutputPageParserOutput",
["EditPage::showEditForm:initial"]="VisualDataHooks::onEditPageshowEditForminitial",
ContentGetParserOutput="VisualDataHooks::onContentGetParserOutput",
ContentAlterParserOutput="VisualDataHooks::onContentAlterParserOutput",
PageRenderingHash="VisualDataHooks::onPageRenderingHash",
BeforePageDisplay="VisualDataHooks::onBeforePageDisplay",
SkinBuildSidebar="VisualDataHooks::onSkinBuildSidebar",
SidebarBeforeOutput="VisualDataHooks::onSidebarBeforeOutput",
["SkinTemplateNavigation::Universal"]="VisualDataHooks::onSkinTemplateNavigation",
ParserPreSaveTransformComplete="VisualDataHooks::onParserPreSaveTransformComplete",
},
SpecialPages={
VisualDataSubmit="SpecialVisualDataSubmit",
EditData="SpecialEditData",
ManageSchemas="SpecialManageSchemas",
VisualDataBrowse="SpecialVisualDataBrowse",
VisualDataBrowseSchemas="MediaWiki\\Extension\\VisualData\\Specials\\BrowseSchemas",
VisualDataBrowseData="MediaWiki\\Extension\\VisualData\\Specials\\BrowseData",
VisualDataBrowseQueries="MediaWiki\\Extension\\VisualData\\Specials\\BrowseQueries",
VisualDataBrowseForms="MediaWiki\\Extension\\VisualData\\Specials\\BrowseForms",
},
APIModules={
["visualdata-load-data"]="VisualDataApiLoadData",
["visualdata-check-latest-version"]="VisualDataApiCheckLatestVersion",
["visualdata-save-schema"]="VisualDataApiSaveSchema",
["visualdata-get-schemas"]="VisualDataApiGetSchemas",
["visualdata-submit-form"]="VisualDataApiSubmitForm",
["visualdata-askquery"]="VisualDataApiAskQuery",
["visualdata-datatables"]="VisualDataApiDatatables",
},
namespaces={
{
id=2226,
constant="NS_VISUALDATAFORM",
name="VisualDataForm",
defaultcontentmodel="json",
content=true,
subpages=false,
},{
id=2227,
constant="NS_VISUALDATAFORM_TALK",
name="VisualDataFormTalk",
},{
id=2228,
constant="NS_VISUALDATASCHEMA",
name="VisualDataSchema",
defaultcontentmodel="json",
content=true,
subpages=false,
},{
id=2229,
constant="NS_VISUALDATASCHEMA_TALK",
name="VisualDataSchemaTalk",
},{
id=2230,
constant="NS_VISUALDATAQUERY",
name="VisualDataQuery",
defaultcontentmodel="json",
content=true,
subpages=false,
},{
id=2231,
constant="NS_VISUALDATAQUERY_TALK",
name="VisualDataQUERYTalk",
},},
TrackingCategories={
"visualdata-jsondata-tracking-category","visualdata-trackingcategory-parserfunction-query","visualdata-trackingcategory-parserfunction-form","visualdata-trackingcategory-parserfunction-button",},
GroupPermissions={
sysop={
["visualdata-caneditdata"]=true,
["visualdata-canmanageschemas"]=true,
},
bureaucrat={
["visualdata-caneditdata"]=true,
["visualdata-canmanageschemas"]=true,
},
["visualdata-admin"]={
["visualdata-caneditdata"]=true,
["visualdata-canmanageschemas"]=true,
},
["visualdata-editor"]={
["visualdata-caneditdata"]=true,
["visualdata-canmanageschemas"]=false,
},
["*"]={
["visualdata-caneditdata"]=true,
["visualdata-canmanageschemas"]=false,
},
},
AddGroups={
["visualdata-admin"]={
"visualdata-admin","visualdata-editor",},
},
RemoveGroups={
["visualdata-admin"]={
"visualdata-admin","visualdata-editor",},
},
AvailableRights={
"visualdata-caneditdata","visualdata-canmanageschemas",},
JobClasses={
VisualDataUpdateDataJob="MediaWiki\\Extension\\VisualData\\UpdateDataJob",
},
config={
VisualDataDisableSidebarLink=false,
VisualDataDisableSlotsNavigation=false,
VisualDataDisableVersionCheck=false,
VisualDataCreateJobsWarningLimit=0,
VisualDataEditDataNamespaces={
0,4,2226,2230,},
VisualDataTrackingCategoryJsonData=false,
VisualDataTrackingCategoryForms=true,
VisualDataTrackingCategoryQueries=true,
VisualDataTrackingCategoryButtons=true,
VisualDataMaptilerApiKey=nil,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualData",
},
VisualEditor={
name="VisualEditor",
author={
"Alex Monk","Bartosz Dziewoński","C. Scott Ananian","Christian Williams","David Lynch","Ed Sanders","Inez Korczyński","James D. Forrester","Moriel Schottlender","Roan Kattouw","Rob Moen","Subramanya Sastry","Thalia Chan","Timo Tijhof","Trevor Parscal","...",},
url="https://www.mediawiki.org/wiki/Extension:VisualEditor",
descriptionmsg="visualeditor-desc",
["license-name"]="MIT",
type="editor",
requires={
MediaWiki="&gt;= 1.42",
},
callback="MediaWiki\\Extension\\VisualEditor\\Hooks::onRegistration",
ServiceWiringFiles={
"includes/ServiceWiring.php",},
config={
VisualEditorAllowExternalLinkPaste={
value=false,
},
VisualEditorAvailableContentModels={
value={
wikitext="article",
},
merge_strategy="array_plus",
},
VisualEditorAvailableNamespaces={
value={
User=true,
File=true,
Category=true,
},
merge_strategy="array_plus",
},
VisualEditorDisableForAnons={
description="Do not change the edit tabs/links for anon users, regardless of other settings. Does not affect temporary users. Note that this does not actually disable the visual editor, contrary to the name, and you should probably set the user preferences so that wikitext editor is the default. (T253941)",
value=false,
},
VisualEditorEnableBetaFeature={
description="BetaFeatures integration has been removed. This option allows using the old beta feature preference values ('visualeditor-enable') on wikis where it was previously enabled, until it is migrated (T344762).",
value=false,
},
VisualEditorEnableTocWidget={
value=false,
},
VisualEditorEnableHelpCompletion={
value=true,
},
VisualEditorEnableVisualSectionEditing={
value="mobile",
},
VisualEditorEnableWikitext={
description="Make the wikitext mode of VE available (also called 2017 Wikitext Editor). The corresponding per-user options is visualeditor-newwikitext.",
value=true,
},
VisualEditorFeedbackAPIURL={
value=false,
},
VisualEditorFeedbackTitle={
value=false,
},
VisualEditorPluginModules={
value={
},
},
VisualEditorPreloadModules={
value={
"site","user",},
},
VisualEditorRebaserURL={
value=false,
},
VisualEditorEnableCollabBeta={
description="Enable the experimental ve.collab beta feature.",
value=false,
},
VisualEditorShowBetaWelcome={
value=true,
},
VisualEditorSingleEditTabSwitchTime={
value=20160101000000,
},
VisualEditorSingleEditTabSwitchTimeEnd={
value=20210101000000,
},
VisualEditorSkinToolbarScrollOffset={
value={
},
},
VisualEditorSourceFeedbackTitle={
value=false,
},
VisualEditorTabMessages={
value={
edit=nil,
editsource="visualeditor-ca-editsource",
create=nil,
createsource="visualeditor-ca-createsource",
editlocaldescription=nil,
editlocaldescriptionsource="visualeditor-ca-editlocaldescriptionsource",
createlocaldescription=nil,
createlocaldescriptionsource="visualeditor-ca-createlocaldescriptionsource",
editsection="editsection",
editsectionhint="editsectionhint",
editsectionsource="visualeditor-ca-editsource-section",
editsectionsourcehint="visualeditor-ca-editsource-section-hint",
},
},
VisualEditorTabPosition={
value="before",
},
VisualEditorUseChangeTagging={
value=true,
description="Tag edits as having used visualeditor, or VE's wikitext mode.",
},
VisualEditorEditCheckTagging={
value=false,
description="For testing only. Tag edits for the Edit Check project.",
},
VisualEditorEditCheck={
value=false,
description="Enable experimental Edit Check feature. Can also be enabled using ?ecenable=1.",
},
VisualEditorEditCheckABTest={
value=false,
description="A/B test Edit Check for all users. A/B bucket status will override VisualEditorEditCheck.",
},
VisualEditorUseSingleEditTab={
value=false,
},
},
APIModules={
visualeditor={
class="MediaWiki\\Extension\\VisualEditor\\ApiVisualEditor",
services={
"RevisionLookup","TempUserCreator","UserFactory","UserOptionsLookup","WatchlistManager","ContentTransformer","StatsdDataFactory","WikiPageFactory","IntroMessageBuilder","PreloadedContentBuilder","SpecialPageFactory","VisualEditor.ParsoidClientFactory",},
},
visualeditoredit={
class="MediaWiki\\Extension\\VisualEditor\\ApiVisualEditorEdit",
services={
"HookContainer","StatsdDataFactory","PageEditStash","SkinFactory","WikiPageFactory","SpecialPageFactory","VisualEditor.ParsoidClientFactory",},
},
editcheckreferenceurl={
class="MediaWiki\\Extension\\VisualEditor\\EditCheck\\ApiEditCheckReferenceUrl",
optional_services={
"AbuseFilterBlockedDomainStorage",},
},
},
ExtensionMessagesFiles={
VisualEditorAlias="VisualEditor.i18n.alias.php",
},
Hooks={
BeforeInitialize="VisualEditorHooks",
BeforePageDisplay="VisualEditorHooks",
ChangeTagsListActive="VisualEditorHooks",
CustomEditor="VisualEditorHooks",
DifferenceEngineViewHeader="VisualEditorHooks",
TextSlotDiffRendererTablePrefix="VisualEditorHooks",
["EditPage::showEditForm:fields"]="VisualEditorHooks",
GetPreferences="VisualEditorHooks",
GetBetaFeaturePreferences="betapreferences",
ListDefinedTags="VisualEditorHooks",
MakeGlobalVariablesScript="VisualEditorHooks",
OutputPageBodyAttributes="VisualEditorHooks",
ParserTestGlobals="VisualEditorHooks",
PreferencesFormPreSave="VisualEditorHooks",
RecentChange_save="VisualEditorHooks",
RedirectSpecialArticleRedirectParams="VisualEditorHooks",
ResourceLoaderGetConfigVars="VisualEditorHooks",
ResourceLoaderRegisterModules="VisualEditorHooks",
SkinEditSectionLinks="VisualEditorHooks",
["SkinTemplateNavigation::Universal"]="VisualEditorHooks",
UserLoggedIn="VisualEditorHooks",
},
HookHandlers={
VisualEditorHooks={
class="MediaWiki\\Extension\\VisualEditor\\Hooks",
},
betapreferences={
class="MediaWiki\\Extension\\VisualEditor\\BetaPreferenceHooks",
services={
"MainConfig","ConfigFactory",},
},
},
QUnitTestModule={
localBasePath="",
remoteExtPath="VisualEditor",
styles="lib/ve/lib/jsdifflib/diffview.css",
scripts={
"lib/ve/lib/jsdifflib/diffview.js","lib/ve/lib/jsdifflib/difflib.js","lib/ve/tests/ve.qunit.js","lib/ve/tests/ve.test.utils.js","modules/ve-mw/tests/ve.test.utils.js","lib/ve/tests/ve.test.js","modules/ve-mw/tests/preinit/ve.utils.parsoid.test.js","lib/ve/tests/ve.DiffMatchPatch.test.js","lib/ve/tests/ve.EventSequencer.test.js","lib/ve/tests/ve.Scheduler.test.js","lib/ve/tests/ve.Range.test.js","lib/ve/tests/ve.Document.test.js","lib/ve/tests/ve.Node.test.js","lib/ve/tests/ve.BranchNode.test.js","lib/ve/tests/ve.LeafNode.test.js","lib/ve/tests/ve.sanitize.test.js","lib/ve/tests/dm/ve.dm.example.js","lib/ve/tests/dm/ve.dm.example.StubReferenceNode.js","lib/ve/tests/dm/ve.dm.Annotation.test.js","lib/ve/tests/dm/ve.dm.AnnotationSet.test.js","lib/ve/tests/dm/ve.dm.LinkAnnotation.test.js","lib/ve/tests/dm/ve.dm.NodeFactory.test.js","lib/ve/tests/dm/ve.dm.Node.test.js","lib/ve/tests/dm/ve.dm.Converter.test.js","lib/ve/tests/dm/ve.dm.SourceConverter.test.js","lib/ve/tests/dm/ve.dm.BranchNode.test.js","lib/ve/tests/dm/ve.dm.LeafNode.test.js","lib/ve/tests/dm/nodes/ve.dm.TextNode.test.js","modules/ve-mw/tests/dm/nodes/ve.dm.MWTransclusionNode.test.js","lib/ve/tests/dm/ve.dm.Document.test.js","modules/ve-mw/tests/dm/ve.dm.Document.test.js","lib/ve/tests/dm/ve.dm.HashValueStore.test.js","lib/ve/tests/dm/ve.dm.InternalList.test.js","lib/ve/tests/dm/ve.dm.LinearData.test.js","lib/ve/tests/dm/ve.dm.Transaction.test.js","lib/ve/tests/dm/ve.dm.TransactionBuilder.test.js","lib/ve/tests/dm/ve.dm.Change.test.js","lib/ve/tests/dm/ve.dm.TreeModifier.test.js","lib/ve/tests/dm/ve.dm.TransactionProcessor.test.js","lib/ve/tests/dm/ve.dm.Surface.test.js","lib/ve/tests/dm/ve.dm.SurfaceFragment.test.js","modules/ve-mw/tests/dm/ve.dm.SurfaceFragment.test.js","lib/ve/tests/dm/ve.dm.SourceSurfaceFragment.test.js","lib/ve/tests/dm/ve.dm.ModelRegistry.test.js","lib/ve/tests/dm/ve.dm.MetaList.test.js","lib/ve/tests/dm/ve.dm.Scalable.test.js","lib/ve/tests/dm/selections/ve.dm.LinearSelection.test.js","lib/ve/tests/dm/selections/ve.dm.NullSelection.test.js","lib/ve/tests/dm/selections/ve.dm.TableSelection.test.js","lib/ve/tests/dm/lineardata/ve.dm.FlatLinearData.test.js","lib/ve/tests/dm/lineardata/ve.dm.ElementLinearData.test.js","modules/ve-mw/tests/dm/ve.dm.mwExample.js","modules/ve-mw/tests/dm/ve.dm.Converter.test.js","modules/ve-mw/tests/dm/annotations/ve.dm.MWInternalLinkAnnotation.test.js","modules/ve-mw/tests/dm/models/ve.dm.MWImageModel.test.js","modules/ve-mw/tests/dm/models/ve.dm.MWTemplateModel.test.js","modules/ve-mw/tests/dm/models/ve.dm.MWTemplateSpecModel.test.js","modules/ve-mw/tests/dm/models/ve.dm.MWTransclusionContentModel.test.js","modules/ve-mw/tests/dm/models/ve.dm.MWTransclusionModel.test.js","lib/ve/tests/ce/ve.ce.test.js","lib/ve/tests/ce/ve.ce.Document.test.js","modules/ve-mw/tests/ce/ve.ce.Document.test.js","lib/ve/tests/ce/ve.ce.Surface.test.js","modules/ve-mw/tests/ce/ve.ce.Surface.test.js","lib/ve/tests/ce/ve.ce.RangeState.test.js","lib/ve/tests/ce/ve.ce.TextState.test.js","lib/ve/tests/ce/ve.ce.NodeFactory.test.js","lib/ve/tests/ce/ve.ce.AnnotationFactory.test.js","lib/ve/tests/ce/ve.ce.Node.test.js","lib/ve/tests/ce/ve.ce.BranchNode.test.js","lib/ve/tests/ce/ve.ce.ContentBranchNode.test.js","modules/ve-mw/tests/ce/ve.ce.ContentBranchNode.test.js","lib/ve/tests/ce/ve.ce.LeafNode.test.js","lib/ve/tests/ce/ve.ce.Selection.test.js","lib/ve/tests/ce/keydownhandlers/ve.ce.LinearArrowKeyDownHandler.test.js","lib/ve/tests/ce/keydownhandlers/ve.ce.LinearDeleteKeyDownHandler.test.js","lib/ve/tests/ce/keydownhandlers/ve.ce.LinearEnterKeyDownHandler.test.js","lib/ve/tests/ce/keydownhandlers/ve.ce.LinearEscapeKeyDownHandler.test.js","lib/ve/tests/ce/keydownhandlers/ve.ce.TableArrowKeyDownHandler.test.js","lib/ve/tests/ce/keydownhandlers/ve.ce.TableDeleteKeyDownHandler.test.js","lib/ve/tests/ce/keydownhandlers/ve.ce.TableEnterKeyDownHandler.test.js","lib/ve/tests/ce/keydownhandlers/ve.ce.TableF2KeyDownHandler.test.js","lib/ve/tests/ce/nodes/ve.ce.ResizableNode.test.js","lib/ve/tests/ce/nodes/ve.ce.TextNode.test.js","lib/ve/tests/ce/nodes/ve.ce.TableNode.test.js","lib/ve/tests/init/ve.init.Target.test.js","lib/ve/tests/init/ve.init.ConflictableStorage.test.js","lib/ve/tests/ui/dialogs/ve.ui.FindAndReplaceDialog.test.js","lib/ve/tests/ui/ve.ui.Trigger.test.js","lib/ve/tests/ui/ve.ui.Sequence.test.js","lib/ve/tests/ui/ve.ui.DiffElement.test.js","lib/ve/tests/ui/ve.ui.PreviewElement.test.js","modules/ve-mw/tests/ui/ve.ui.DiffElement.test.js","lib/ve/tests/ui/actions/ve.ui.AnnotationAction.test.js","lib/ve/tests/ui/actions/ve.ui.BlockquoteAction.test.js","lib/ve/tests/ui/actions/ve.ui.ContentAction.test.js","lib/ve/tests/ui/actions/ve.ui.FormatAction.test.js","modules/ve-mw/tests/ui/actions/ve.ui.FormatAction.test.js","lib/ve/tests/ui/actions/ve.ui.IndentationAction.test.js","lib/ve/tests/ui/actions/ve.ui.LinkAction.test.js","modules/ve-mw/tests/ui/actions/ve.ui.MWLinkAction.test.js","lib/ve/tests/ui/actions/ve.ui.ListAction.test.js","lib/ve/tests/ui/actions/ve.ui.TableAction.test.js","lib/ve/tests/ui/actions/ve.ui.WindowAction.test.js","lib/ve/tests/ui/ve.ui.DataTransferHandlerFactory.test.js","lib/ve/tests/ui/datatransferhandlers/ve.ui.DSVFileTransferHandler.test.js","lib/ve/tests/ui/datatransferhandlers/ve.ui.UrlStringTransferHandler.test.js","modules/ve-mw/tests/ui/datatransferhandlers/ve.ui.MWWikitextStringTransferHandler.test.js","modules/ve-mw/tests/ui/datatransferhandlers/ve.ui.UrlStringTransferHandler.test.js","modules/ve-mw/tests/ui/dialogs/ve.ui.MWTransclusionDialog.test.js","modules/ve-mw/tests/init/targets/ve.init.mw.DesktopArticleTarget.test.js","lib/ve/tests/ui/inspectors/ve.ui.FragmentInspector.test.js","lib/ve/tests/ui/dialogs/ve.ui.FindAndReplaceDialog.test.js","modules/ve-mw/tests/ui/inspectors/ve.ui.FragmentInspector.test.js","modules/ve-mw/tests/ui/layouts/ve.ui.MWTwoPaneTransclusionDialogLayout.test.js","modules/ve-mw/tests/ui/pages/ve.ui.MWAddParameterPage.test.js","modules/ve-mw/tests/ui/pages/ve.ui.MWParameterPage.test.js","modules/ve-mw/tests/ui/widgets/ve.ui.MWParameterCheckboxInputWidget.test.js","modules/ve-mw/tests/ui/widgets/ve.ui.MWTemplateTitleInputWidget.test.js","modules/ve-mw/tests/ui/widgets/ve.ui.MWTransclusionOutlineButtonWidget.test.js","modules/ve-mw/tests/ui/widgets/ve.ui.MWTransclusionOutlineParameterSelectWidget.test.js","modules/ve-mw/tests/ui/widgets/ve.ui.MWTransclusionOutlineParameterWidget.test.js","modules/ve-mw/tests/ui/widgets/ve.ui.MWTransclusionOutlinePartWidget.test.js","modules/ve-mw/tests/ui/widgets/ve.ui.MWTransclusionOutlinePlaceholderWidget.test.js","modules/ve-mw/tests/ui/widgets/ve.ui.MWTransclusionOutlineTemplateWidget.test.js","modules/ve-mw/tests/ui/widgets/ve.ui.MWTransclusionOutlineWidget.test.js","lib/ve/tests/ce/ve.ce.TestRunner.js","lib/ve/tests/ce/ve.ce.imetests.test.js","lib/ve/tests/ce/imetests/backspace-chromium-ubuntu-none.js","lib/ve/tests/ce/imetests/backspace-firefox-ubuntu-none.js","lib/ve/tests/ce/imetests/backspace-ie9-win7-none.js","lib/ve/tests/ce/imetests/home-firefox-win7-none.js","lib/ve/tests/ce/imetests/input-chrome-mac-native-japanese-hiragana.js","lib/ve/tests/ce/imetests/input-chrome-mac-native-japanese-katakana.js","lib/ve/tests/ce/imetests/input-chrome-win7-chinese-traditional-handwriting.js","lib/ve/tests/ce/imetests/input-chrome-win7-greek.js","lib/ve/tests/ce/imetests/input-chrome-win7-polish.js","lib/ve/tests/ce/imetests/input-chrome-win7-welsh.js","lib/ve/tests/ce/imetests/input-chromium-ubuntu-ibus-chinese-cantonese.js","lib/ve/tests/ce/imetests/input-chromium-ubuntu-ibus-japanese-anthy--hiraganaonly.js","lib/ve/tests/ce/imetests/input-chromium-ubuntu-ibus-japanese-mozc.js","lib/ve/tests/ce/imetests/input-chromium-ubuntu-ibus-korean-korean.js","lib/ve/tests/ce/imetests/input-chromium-ubuntu-ibus-malayalam-swanalekha.js","lib/ve/tests/ce/imetests/input-firefox-mac-native-japanese-hiragana.js","lib/ve/tests/ce/imetests/input-firefox-mac-native-japanese-katakana.js","lib/ve/tests/ce/imetests/input-firefox-ubuntu-ibus-chinese-cantonese.js","lib/ve/tests/ce/imetests/input-firefox-ubuntu-ibus-japanese-anthy--hiraganaonly.js","lib/ve/tests/ce/imetests/input-firefox-ubuntu-ibus-japanese-mozc.js","lib/ve/tests/ce/imetests/input-firefox-ubuntu-ibus-korean-korean.js","lib/ve/tests/ce/imetests/input-firefox-ubuntu-ibus-malayalam.swanalekha.js","lib/ve/tests/ce/imetests/input-firefox-win7-chinese-traditional-handwriting.js","lib/ve/tests/ce/imetests/input-firefox-win7-greek.js","lib/ve/tests/ce/imetests/input-firefox-win7-welsh.js","lib/ve/tests/ce/imetests/input-ie9-win7-chinese-traditional-handwriting.js","lib/ve/tests/ce/imetests/input-ie9-win7-greek.js","lib/ve/tests/ce/imetests/input-ie9-win7-korean.js","lib/ve/tests/ce/imetests/input-ie9-win7-welsh.js","lib/ve/tests/ce/imetests/input-ie11-win8.1-korean.js","lib/ve/tests/ce/imetests/input-safari-mac-native-japanese-hiragana.js","lib/ve/tests/ce/imetests/input-safari-mac-native-japanese-katakana.js","lib/ve/tests/ce/imetests/leftarrow-chromium-ubuntu-none.js","lib/ve/tests/ce/imetests/leftarrow-firefox-ubuntu-none.js","lib/ve/tests/ce/imetests/leftarrow-ie9-win7-none.js","lib/ve/src/ve.freeze.js","lib/ve/rebaser/src/dm/ve.dm.RebaseServer.js","lib/ve/tests/dm/ve.dm.TestRebaseClient.js","lib/ve/tests/dm/ve.dm.TestRebaseServer.js",},
dependencies={
"unicodejs","ext.visualEditor.core","ext.visualEditor.mwcore","ext.visualEditor.mwformatting","ext.visualEditor.mwlink","ext.visualEditor.mwgallery","ext.visualEditor.mwimage","ext.visualEditor.mwmeta","ext.visualEditor.mwtransclusion","ext.visualEditor.mwalienextension","ext.visualEditor.mwwikitext","ext.visualEditor.language","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.desktopArticleTarget","ext.visualEditor.rebase",},
},
ForeignResourcesDir="lib",
["@DefaultUserOptions1"]="'visualeditor-enable' is only read when in legacy beta feature mode ('VisualEditorEnableBetaFeature').",
["@DefaultUserOptions2"]="'visualeditor-betatempdisable' is only read when NOT in beta feature mode.",
["@DefaultUserOptions3"]="'visualeditor-autodisable' records whether the user has explicitly opted out of VE while it was in beta.",
DefaultUserOptions={
["visualeditor-autodisable"]=0,
["visualeditor-betatempdisable"]=0,
["visualeditor-collab"]=0,
["visualeditor-editor"]="visualeditor",
["visualeditor-enable"]=0,
["visualeditor-hidebetawelcome"]=0,
["visualeditor-hidetabdialog"]=0,
["visualeditor-newwikitext"]=0,
["visualeditor-tabs"]="remember-last",
},
SpecialPages={
CollabPad="MediaWiki\\Extension\\VisualEditor\\SpecialCollabPad",
},
ConfigRegistry={
visualeditor="GlobalVarConfig::newInstance",
},
attributes={
EventLogging={
Schemas={
VisualEditorTemplateDialogUse="/analytics/legacy/visualeditortemplatedialoguse/1.0.0",
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor",
},
VisualEditorPlus={
name="VisualEditorPlus",
version="2.0.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[http://www.hallowelt.com Hallo Welt! GmbH]",},
url="http://www.hallowelt.com",
descriptionmsg="visualeditorplus-desc",
requires={
MediaWiki="&gt;= 1.39.0",
},
attributes={
VisualEditor={
PluginModules={
"ext.visualEditorPlus","ext.visualEditorPlus.inlineTextInspector",},
},
},
Hooks={
},
composer="mediawiki/visual-editor-plus",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditorPlus",
},
VoteNY={
name="VoteNY",
version="3.2",
author={
"Aaron Wright","David Pean","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:VoteNY",
descriptionmsg="voteny-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.43",
},
SpecialPages={
TopRatings="SpecialTopRatings",
},
APIModules={
voteny="ApiVoteNY",
},
ExtensionMessagesFiles={
VoteNYAlias="includes/VoteNY.alias.php",
VoteNYMagic="includes/VoteNY.i18n.magic.php",
},
Hooks={
ParserFirstCallInit={
"VoteNYHooks::registerParserHook","VoteNYHooks::setupNumberOfVotesPageParser",},
RenameUserSQL="VoteNYHooks::onUserRename",
ParserGetVariableValueSwitch="VoteNYHooks::assignValueToMagicWord",
MagicWordwgVariableIDs="VoteNYHooks::registerVariableId",
LoadExtensionSchemaUpdates="VoteNYHooks::addTable",
},
AvailableRights={
"voteny",},
GroupPermissions={
["*"]={
voteny=false,
},
user={
voteny=true,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/VoteNY",
},
VueTest={
name="VueTest",
author={
"Eric Gardner","Roan Kattouw","Anne Tomasevich",},
url="https://www.mediawiki.org/wiki/Extension:VueTest",
descriptionmsg="vuetest-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
config={
},
ExtensionMessagesFiles={
VueTestAlias="VueTest.alias.php",
},
SpecialPages={
VueTest="MediaWiki\\Extension\\VueTest\\SpecialVueTest",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/VueTest",
},
WSOAuth={
name="WSOAuth",
version="9.0.0",
namemsg="wsoauth-extensionname",
url="https://www.mediawiki.org/wiki/Extension:WSOAuth",
type="other",
author={
"[https://www.mediawiki.org/wiki/User:Xxmarijnw Marijn van Wezel]",},
descriptionmsg="wsoauth-desc",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.35.0",
extensions={
PluggableAuth="&gt;= 7.0",
},
},
ExtensionMessagesFiles={
WSOAuthAlias="WSOAuth.i18n.alias.php",
},
Hooks={
GetPreferences="main",
LoadExtensionSchemaUpdates="SchemaUpdater",
},
HookHandlers={
main={
class="\\WSOAuth\\WSOAuthHooks",
},
SchemaUpdater={
class="\\WSOAuth\\WSOAuthSchemaUpdater",
},
},
config={
OAuthCustomAuthProviders={
value=false,
descriptionmsg="wsoauth-auth-providers-desc",
},
OAuthAutoPopulateGroups={
value={
},
descriptionmsg="wsoauth-auto-populate-groups-desc",
},
OAuthMigrateUsersByUsername={
value=false,
descriptionmsg="wsoauth-migrate-users-by-username-desc",
},
OAuthDisallowRemoteOnlyAccounts={
value=false,
descriptionmsg="wsoauth-disallow-remote-only-accounts-desc",
},
OAuthUseRealNameAsUsername={
value=false,
descriptionmsg="wsoauth-use-real-name-as-username-desc",
},
},
SpecialPages={
WSOAuthConnectRemote="\\WSOAuth\\WSOAuthConnectRemoteSpecialPage",
},
attributes={
PluggableAuth={
WSOAuth={
class="\\WSOAuth\\WSOAuth",
services={
"MainConfig","UserNameUtils","HookContainer",},
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WSOAuth",
},
WantedPagesFromNS={
name="WantedPagesFromNS",
version="1.2.0",
author="Kazimierz Król",
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:WantedPagesFromNS",
descriptionmsg="wpfromns-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.32.0",
},
Hooks={
ParserFirstCallInit="WantedPagesFromNS::onParserFirstCallInit",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WantedPagesFromNS",
},
WarnNotRecentlyUpdated={
name="WarnNotRecentlyUpdated",
author={
"Sébastien Santoro aka Dereckson",},
url="https://www.mediawiki.org/wiki/Extension:WarnNotRecentlyUpdated",
descriptionmsg="warnnotrecentlyupdated-desc",
["license-name"]="GPL-2.0-or-later",
type="interface",
requires={
MediaWiki="&gt;= 1.35.0",
},
config={
WarnNotRecentlyUpdatedDelay={
description="Delay after a warning is shown",
value=31536000,
},
WarnNotRecentlyUpdatedPages={
description="Namespaces, prefixes and message to show",
value={
},
},
},
Hooks={
ArticleViewHeader="MediaWiki\\Extension\\WarnNotRecentlyUpdated\\Hooks::onArticleViewHeader",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WarnNotRecentlyUpdated",
},
WatchSubpages={
name="WatchSubpages",
version="2.5.0",
author="[https://strategywiki.org/w/index.php/User:Prod Prod]",
url="https://www.mediawiki.org/wiki/Extension:WatchSubpages",
descriptionmsg="watchsubpages-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.37.0",
},
AvailableRights={
"watchsubpages",},
GroupPermissions={
user={
watchsubpages=true,
},
},
SpecialPages={
WatchSubpages={
class="WatchSubpages",
services={
"DBLoadBalancer","WatchedItemStore","TitleParser","GenderCache","LinkBatchFactory","NamespaceInfo","WikiPageFactory","SearchEngineFactory",},
},
},
ExtensionMessagesFiles={
WatchSubpagesAlias="WatchSubpages.alias.php",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WatchSubpages",
},
WebAuthn={
name="WebAuthn",
version="1.0.0",
author={
"Robert Vogel &lt;vogel@hallowelt.com&gt;","Dejan Savuljesku &lt;savuljesku@hallowelt.com&gt;",},
url="https://www.mediawiki.org/wiki/Extension:WebAuthn",
descriptionmsg="webauthn-desc",
type="other",
attributes={
OATHAuth={
Modules={
webauthn="MediaWiki\\Extension\\WebAuthn\\Module\\WebAuthn::factory",
},
},
},
requires={
MediaWiki="&gt;= 1.42",
extensions={
OATHAuth="&gt;= 0.4.4",
},
},
["license-name"]="GPL-2.0-or-later AND GPL-3.0-or-later",
config={
WebAuthnRelyingPartyName={
value=nil,
},
WebAuthnRelyingPartyID={
value=nil,
},
WebAuthnNewCredsDisabled={
description="If true, new credentials cannot be added, see T354701",
value=false,
},
},
APIModules={
webauthn="\\MediaWiki\\Extension\\WebAuthn\\Api\\WebAuthn",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WebAuthn",
},
WebChat={
name="WebChat",
version="1.4.0",
author={
"Robert Leverington","Marco 27",},
url="https://www.mediawiki.org/wiki/Extension:WebChat",
descriptionmsg="webchat-desc",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.34.0",
},
GroupPermissions={
["*"]={
webchat=false,
},
user={
webchat=true,
},
sysop={
webchat=true,
},
},
AvailableRights={
"webchat",},
SpecialPages={
WebChat="WebChat",
},
ExtensionMessagesFiles={
WebChatAlias="WebChat.alias.php",
},
config={
WebChatServer={
value="",
description="IRC Server to connect to, not required when using the freenodeChat web client.",
},
WebChatChannel={
value="",
description="Channel to connect to.",
},
WebChatClient={
value="",
description="Which web chat client to use, 'freenodeChat' is required when connecting to freenode, but 'Mibbit' can be used for other networks.",
},
WebChatClients={
value={
Mibbit={
url="//embed.mibbit.com/index.html",
parameters={
noServerMotd="true",
server="$$$server$$$",
channel="$$$channel$$$",
nick="$$$nick$$$",
},
},
freenodeChat={
url="//webchat.freenode.net/",
parameters={
channels="$$$channel$$$",
nick="$$$nick$$$",
},
},
LiberaChat={
url="//web.libera.chat/",
parameters={
nick="$$$nick$$$",
},
hash="$$$channel$$$",
},
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WebChat",
},
WebDAV={
name="WebDAV",
version="3.1.0",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]","Robert Vogel (Hallo Welt! GmbH)","Dejan Savuljesku (Hallo Welt! GmbH)",},
url="https://www.mediawiki.org/wiki/Extension:WebDAV",
descriptionmsg="webdav-desc",
type="other",
["license-name"]="GPL-3.0-only",
requires={
MediaWiki="&gt;= 1.37.0",
},
attributes={
BlueSpicePrivacy={
Handlers={
"\\MediaWiki\\Extension\\WebDAV\\Privacy\\Handler",},
},
WebDAV={
CredentialAuthProviders={
["mw-auth"]={
class="MediaWiki\\Extension\\WebDAV\\CredentialAuthProvider\\MediaWikiAuth",
},
},
},
},
callback="\\MediaWiki\\Extension\\WebDAV\\Extension::onRegistration",
ServiceWiringFiles={
"includes/WebDAVWiring.php",},
Hooks={
LoadExtensionSchemaUpdates="WebDAVHooks::onLoadExtensionSchemaUpdates",
WebDAVPlugins="WebDAVHooks::onWebDAVPlugins",
WebDAVLocksUnlock="WebDAVHooks::onWebDAVLocksUnlock",
GetPreferences="WebDAVHooks::onGetPreferences",
},
ConfigRegistry={
webdav="GlobalVarConfig::newInstance",
},
config={
WebDAVRootNode={
value="WebDAVNamespacesCollection",
},
WebDAVAuthType={
value="none",
},
WebDAVServer={
value="",
},
WebDAVBaseUri={
value="",
},
WebDAVUrlBaseUri={
value="",
},
WebDAVSkipTalkNS={
value=false,
},
WebDAVSkipNamespaces={
value={
-1,},
},
WebDAVNamespaceCollections={
value={
},
},
WebDAVInvalidFileNameCharsRegEx={
description="See http://sabre.io/dav/character-encoding/",
value="#[:|/|\\\\\\|\\*|\\?|\"|\\||\\#|&lt;|&gt;]#si",
},
WebDAVLockTimeOut={
description="Defaults to 30 minutes",
value=1800,
},
WebDAVTokenExpiration={
description="Defaults to 24 hours",
value=86400,
},
WebDAVStaticTokenExpiration={
value=2,
},
WebDAVUserNameAsStaticToken={
value=false,
},
WebDAVInvalidateTokenOnUnlock={
value=true,
},
WebDAVCredentialAuthProvider={
description="Which of the registered credential auth providers to use",
value="mw-auth",
},
},
composer="mediawiki/webdav",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WebDAV",
},
WebToolsManager={
name="WebToolsManager",
url="https://www.mediawiki.org/wiki/Extension:WebToolsManager",
author="[https://github.com/mooeypoo Moriel Schottlender]",
version="1.0.0",
["license-name"]="GPL-3.0-or-later",
namemsg="webtoolsmanager-name",
descriptionmsg="webtoolsmanager-desc",
QUnitTestModule={
localBasePath="",
remoteExtPath="WebToolsManager",
scripts={
"tests/WebToolsManager.test.js",},
dependencies={
"ext.webToolsManager.specialPage",},
},
SpecialPages={
WebToolsManager="MediaWiki\\Extension\\WebToolsManager\\SpecialWebToolsManager",
},
ExtensionMessagesFiles={
WebToolsManagerAlias="WebToolsManager.alias.php",
},
callback="MediaWiki\\Extension\\WebToolsManager\\Hooks::registerExtension",
Hooks={
BeforePageDisplay={
"MediaWiki\\Extension\\WebToolsManager\\Hooks::onBeforePageDisplay",},
["SkinTemplateNavigation::Universal"]={
"MediaWiki\\Extension\\WebToolsManager\\Hooks::onSkinTemplateNavigation__Universal",},
LoadExtensionSchemaUpdates={
"MediaWiki\\Extension\\WebToolsManager\\Hooks::onLoadExtensionSchemaUpdates",},
},
config={
WebToolsManagerAllowGoogleAnalytics={
value=false,
},
},
ConfigRegistry={
webtoolsmanager="GlobalVarConfig::newInstance",
},
GroupPermissions={
sysop={
webtoolsmanagement=true,
},
},
requires={
MediaWiki="&gt;= 1.35.0",
},
AvailableRights={
"webtoolsmanagement",},
type="other",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WebToolsManager",
},
WhiteSpace={
name="WhiteSpace",
version="0.1.0",
author={
"[https://www.mediawiki.org/wiki/User:Van_de_Bugger Van de Bugger]",},
url="https://www.mediawiki.org/wiki/Extension:WhiteSpace",
descriptionmsg="whitespace-desc",
["license-name"]="AGPL-3.0-only",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserBeforePreprocess="WhiteSpace::onParserBeforeInternalParse",
ParserBeforeInternalParse="WhiteSpace::onParserBeforeInternalParse",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WhiteSpace",
},
Whitelist_Pages={
name="Whitelist Pages",
version="0.5.1",
author={
"Jack Phoenix","Misza",},
url="https://www.mediawiki.org/wiki/Extension:Whitelist_Pages",
descriptionmsg="whitelistpages-desc",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
Hooks={
TitleReadWhitelist="WhitelistPages::onTitleReadWhitelist",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WhitelistPages",
},
WhoIsWatching={
name="WhoIsWatching",
version="0.13.0",
["license-name"]="GPL-2.0-only",
author={
"Paul Grinberg","Siebrand Mazeland","Vitaliy Filippov","[http://web.nichework.com Mark A. Hershberger]",},
requires={
MediaWiki="&gt;= 1.34.0",
extensions={
Echo="*",
},
},
url="https://www.mediawiki.org/wiki/Extension:WhoIsWatching",
descriptionmsg="whoiswatching-desc",
type="specialpage",
SpecialPages={
WhoIsWatching="MediaWiki\\Extension\\WhoIsWatching\\SpecialPage",
},
ExtensionMessagesFiles={
WhoIsWatchingAlias="src/i18n/Alias.php",
WhoIsWatchingMagic="src/i18n/Magic.php",
},
Hooks={
BeforeCreateEchoEvent={
"MediaWiki\\Extension\\WhoIsWatching\\Hook::onBeforeCreateEchoEvent",},
EchoGetBundleRules={
"MediaWiki\\Extension\\WhoIsWatching\\Hook::onEchoGetBundleRules",},
SkinAddFooterLinks={
"MediaWiki\\Extension\\WhoIsWatching\\Hook::onSkinAddFooterLinks",},
ParserFirstCallInit={
"MediaWiki\\Extension\\WhoIsWatching\\Hook::onParserSetup",},
},
GroupPermissions={
sysop={
addpagetoanywatchlist=true,
removepagefromanywatchlist=true,
seepagewatchers=true,
},
},
AvailableRights={
"addpagetoanywatchlist","removepagefromanywatchlist","seepagewatchers",},
DefaultUserOptions={
["echo-subscriptions-email-whoiswatching"]=true,
["echo-subscriptions-web-whoiswatching"]=true,
},
config={
["_prefix"]="whoiswatching_",
nametype="RealName",
allowaddingpeople=false,
showifzero=true,
showwatchingusers=false,
maxPicklistUsers=10,
notificationTypes={
add=true,
remove=true,
},
},
composer="mediawiki/who-is-watching",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WhoIsWatching",
},
WhosOnline={
name="WhosOnline",
version="1.8.0",
author={
"Maciej Brencz","Maciej Błaszkowski",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:WhosOnline",
descriptionmsg="whosonline-desc",
type="specialpage",
requires={
MediaWiki="&gt;= 1.35.3",
},
config={
WhosOnlinePerWiki={
value=true,
path=false,
description="If true, only show records related to the current wiki. Set this to false if you run a wiki farm and you'd like to look up results on every wiki and display only one record for one user (the newest).",
public=false,
},
WhosOnlineShowAnons={
value=false,
path=false,
description="Show anonymous, unregistered users on Special:WhosOnline/on the output of the API query?",
public=false,
},
WhosOnlineShowRealName={
value=false,
path=false,
description="Show users' real names instead of their on-wiki user names in lists like on the Special:WhosOnline page or API query output?",
public=false,
},
WhosOnlineTimeout={
value=3600,
path=false,
description="Seconds for how long to store data in cache, i.e. users who have been active within past this many seconds are considered to be online",
public=false,
},
},
APIListModules={
whosonline={
class="ApiQueryWhosOnline",
services={
"MainWANObjectCache",},
},
},
SpecialPages={
WhosOnline="SpecialWhosOnline",
},
ExtensionMessagesFiles={
WhosOnlineAlias="WhosOnline.alias.php",
},
Hooks={
BeforePageDisplay="WhosOnlineHooks::onBeforePageDisplay",
LoadExtensionSchemaUpdates="WhosOnlineHooks::onLoadExtensionSchemaUpdates",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WhosOnline",
},
Widgets={
name="Widgets",
version="1.6.0-alpha",
author={
"[https://www.sergeychernyshev.com Sergey Chernyshev]","Yaron Koren","...",},
url="https://www.mediawiki.org/wiki/Extension:Widgets",
descriptionmsg="widgets-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.38.0",
},
config={
WidgetsUseFlaggedRevs={
value=false,
path=false,
descriptionmsg="widgets-config-useflaggedrevs",
public=true,
},
WidgetsCompileDir={
value="compiled_templates/",
path=true,
descriptionmsg="widgets-config-compiledir",
public=false,
},
},
namespaces={
{
id=274,
constant="NS_WIDGET",
name="Widget",
protection="editwidgets",
},{
id=275,
constant="NS_WIDGET_TALK",
name="Widget_talk",
subpages=true,
},},
Hooks={
ParserFirstCallInit="WidgetInitializer::initParserFunctions",
ParserAfterTidy="WidgetRenderer::outputCompiledWidget",
},
AvailableRights={
"editwidgets",},
GroupPermissions={
["*"]={
editwidgets=false,
},
widgeteditor={
editwidgets=true,
},
sysop={
editwidgets=true,
},
},
GrantPermissions={
editwidgets={
editwidgets=true,
},
},
ExtensionMessagesFiles={
WidgetsMagic="Widgets.i18n.magic.php",
WidgetsNamespaces="Widgets.i18n.namespaces.php",
},
callback="WidgetInitializer::init",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Widgets",
},
Wigo3={
name="Wigo3",
type="parserhook",
author={
"[http://rationalwiki.com/wiki/User:Nx Nx]","[http://rationalwiki.com/wiki/User:Tmtoulouse Trent Toulouse]","Tim Starling",},
version="5.0.0",
descriptionmsg="wigo3-description",
requires={
MediaWiki="&gt;= 1.35.3",
},
APIListModules={
wigo="Wigo3\\ApiWigo",
wigovotes="Wigo3\\ApiWigoVotes",
},
ExtensionMessagesFiles={
Wigo3Magic="wigo3.i18n.magic.php",
},
Hooks={
LoadExtensionSchemaUpdates="Wigo3\\Hooks::onLoadExtensionSchemaUpdates",
ParserFirstCallInit="Wigo3\\Hooks::onParserFirstCallInit",
ParserPreSaveTransformComplete="Wigo3\\Hooks::onParserPreSaveTransformComplete",
RevisionDataUpdates="Wigo3\\Hooks::onRevisionDataUpdates",
},
callback="Wigo3\\Hooks::onRegistration",
config={
Wigo3ConfigStoreIPs={
value=true,
description="Store IPs instead of usernames for logged in users too",
},
Wigo3ReplaceNextpoll={
value=false,
description="Replace nextpoll parameter on page save",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Wigo3",
},
wikEdDiff={
name="wikEdDiff",
version="1.2.5",
author="Cacycle",
url="https://www.mediawiki.org/wiki/Extension:wikEdDiff",
descriptionmsg="wiked-diff-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
GetDifferenceEngine="WikEdDifferenceEngine::onGetDifferenceEngine",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikEdDiff",
},
WikiApiary={
name="WikiApiary",
version="0.5.3",
author={
"[https://www.mediawiki.org/wiki/User:Cindy.cicalese Cindy Cicalese]","[https://www.mediawiki.org/wiki/User:Sen-Sai Charly Cobben]",},
url="https://www.mediawiki.org/wiki/Extension:WikiApiary",
descriptionmsg="wikiapiary-desc",
type="parserhook",
["license-name"]="MIT",
requires={
MediaWiki="&gt;= 1.39.0",
},
ExtensionMessagesFiles={
WikiApiaryMagic="i18n/WikiApiary.i18n.php",
},
APIModules={
wikiapiary="W8yAPI",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
HookHandlers={
dbhooks={
class="MediaWiki\\Extension\\WikiApiary\\DBHooks",
},
taghooks={
class="MediaWiki\\Extension\\WikiApiary\\TagHooks",
services={
"TagService",},
},
scribuntohooks={
class="MediaWiki\\Extension\\WikiApiary\\ScribuntoHooks",
},
},
Hooks={
LoadExtensionSchemaUpdates="dbhooks",
ParserFirstCallInit="taghooks",
ScribuntoExternalLibraries="scribuntohooks",
},
composer="mediawiki/wikiapiary",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiApiary",
},
WikiCategoryTagCloud={
name="Wiki Category Tag Cloud",
version="1.4.1",
author={
"[http://danf.ca/mw/ Daniel Friesen]","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:WikiCategoryTagCloud",
descriptionmsg="wikicategorytagcloud-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.34.0",
},
Hooks={
PageContentSave={
"WikiCategoryTagCloud::invalidateCache",},
ParserFirstCallInit={
"WikiCategoryTagCloud::register",},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiCategoryTagCloud",
},
WikiEditor={
name="WikiEditor",
version="0.5.4",
author={
"Derk-Jan Hartman","Trevor Parscal","Roan Kattouw","Nimish Gautam","Adam Miller",},
url="https://www.mediawiki.org/wiki/Extension:WikiEditor",
descriptionmsg="wikieditor-desc",
["license-name"]="GPL-2.0-or-later",
type="editor",
requires={
MediaWiki="&gt;= 1.42.0",
},
Hooks={
["EditPage::showEditForm:initial"]="WikiEditorHooks",
GetPreferences="WikiEditorHooks",
["EditPage::showEditForm:fields"]="WikiEditorHooks",
["EditPage::attemptSave"]="WikiEditorHooks",
["EditPage::attemptSave:after"]="WikiEditorHooks",
EditPageGetPreviewContent="WikiEditorHooks",
ListDefinedTags="WikiEditorHooks",
ChangeTagsListActive="WikiEditorHooks",
RecentChange_save="WikiEditorHooks",
},
HookHandlers={
WikiEditorHooks={
class="MediaWiki\\Extension\\WikiEditor\\Hooks",
services={
"MainConfig","UserEditTracker","UserOptionsLookup",},
optional_services={
"MobileFrontend.Context",},
},
},
QUnitTestModule={
localBasePath="",
remoteExtPath="WikiEditor",
scripts="tests/qunit/ext.wikiEditor.toolbar.test.js",
dependencies={
"ext.wikiEditor",},
},
DefaultUserOptions={
usebetatoolbar=true,
["wikieditor-realtimepreview"]=0,
},
config={
WikiEditorRealtimePreview={
description="Whether to enable the Realtime Preview feature.",
value=true,
},
WikiEditorRealtimePreviewDebounce={
description="Debounce time in milliseconds for the Realtime Preview feature.",
value=2500,
},
WikiEditorRealtimeDisableDuration={
description="Average number of milliseconds after which to automatically disable Realtime Preview.",
value=6000,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiEditor",
},
WikiForum={
name="WikiForum",
version="2.6.0",
author={
"Michael Chlebek","Jack Phoenix","Adam Carter (UltrasonicNXT)",},
url="https://www.mediawiki.org/wiki/Extension:WikiForum",
descriptionmsg="wikiforum-desc",
["license-name"]="GPL-3.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.43",
},
GroupPermissions={
forumadmin={
["wikiforum-admin"]=true,
["wikiforum-moderator"]=true,
},
sysop={
["wikiforum-admin"]=true,
["wikiforum-moderator"]=true,
},
},
AddGroups={
bureaucrat={
"forumadmin",},
},
RemoveGroups={
bureaucrat={
"forumadmin",},
},
AvailableRights={
"wikiforum-admin","wikiforum-moderator",},
SpecialPages={
WikiForum="SpecialWikiForum",
},
LogTypes={
"forum",},
LogActionsHandlers={
["forum/*"]="WikitextLogFormatter",
},
ExtensionMessagesFiles={
WikiForumAlias="includes/WikiForum.i18n.alias.php",
},
Hooks={
ParserFirstCallInit="WikiForumHooks::registerParserHooks",
LoadExtensionSchemaUpdates="WikiForumHooks::onLoadExtensionSchemaUpdates",
},
CaptchaTriggers={
wikiforum=true,
},
config={
WikiForumAllowAnonymous=true,
WikiForumLogInRC=true,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiForum",
},
WikiLambda={
name="WikiLambda",
author={
"James D. Forrester","Genoveva Galarza","Lindsay Wardell","Dani de Waal","Julia Kieserman","Simone Cuomo","Adesoji","Cory Massaro","David Martin","Edmund Wright","Denny Vrandečić",},
url="https://www.mediawiki.org/wiki/Extension:WikiLambda",
descriptionmsg="wikilambda-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.42",
extensions={
WikimediaMessages="*",
UniversalLanguageSelector="*",
},
},
callback="MediaWiki\\Extension\\WikiLambda\\Hooks::registerExtension",
ContentHandlers={
zobject="MediaWiki\\Extension\\WikiLambda\\ZObjectContentHandler",
},
config={
WikiLambdaObjectCache={
description="If false, store function calls in the main MediaWiki cache; if set to another value, that will be used as the key of a cache in wgObjectCaches.",
value=false,
},
WikiLambdaOrchestratorLocation={
description="Host and port of the function orchestrator.",
value="https://wikifunctions-orchestrator-beta.wmflabs.org:443",
},
},
ConfigRegistry={
WikiLambda="GlobalVarConfig::newInstance",
},
AvailableRights={
"wikilambda-connect-implementation","wikilambda-connect-tester","wikilambda-create","wikilambda-create-boolean","wikilambda-create-converter","wikilambda-create-enum-value","wikilambda-create-function","wikilambda-create-implementation","wikilambda-create-language","wikilambda-create-predefined","wikilambda-create-programming","wikilambda-create-tester","wikilambda-create-type","wikilambda-create-unit","wikilambda-disconnect-implementation","wikilambda-disconnect-tester","wikilambda-edit","wikilambda-edit-argument-label","wikilambda-edit-attached-implementation","wikilambda-edit-attached-tester","wikilambda-edit-boolean","wikilambda-edit-builtin-function","wikilambda-edit-connected-converter","wikilambda-edit-converter","wikilambda-edit-enum-value","wikilambda-edit-error-key-label","wikilambda-edit-implementation","wikilambda-edit-key-label","wikilambda-edit-language","wikilambda-edit-object-alias","wikilambda-edit-object-description","wikilambda-edit-object-label","wikilambda-edit-object-type","wikilambda-edit-predefined","wikilambda-edit-programming","wikilambda-edit-running-function","wikilambda-edit-running-function-definition","wikilambda-edit-tester","wikilambda-edit-type","wikilambda-edit-unit","wikilambda-edit-user-function","wikilambda-execute","wikilambda-execute-unsaved-code","wikifunctions-run",},
GroupPermissions={
["*"]={
["wikilambda-execute"]=true,
["wikifunctions-run"]=true,
},
user={
["wikilambda-execute-unsaved-code"]=true,
["wikilambda-create"]=true,
["wikilambda-create-converter"]=true,
["wikilambda-create-function"]=true,
["wikilambda-create-implementation"]=true,
["wikilambda-create-tester"]=true,
["wikilambda-edit"]=true,
["wikilambda-edit-argument-label"]=true,
["wikilambda-edit-converter"]=true,
["wikilambda-edit-error-key-label"]=true,
["wikilambda-edit-implementation"]=true,
["wikilambda-edit-key-label"]=true,
["wikilambda-edit-object-alias"]=true,
["wikilambda-edit-object-description"]=true,
["wikilambda-edit-object-label"]=true,
["wikilambda-edit-tester"]=true,
["wikilambda-edit-user-function"]=true,
},
functioneer={
["wikilambda-connect-implementation"]=true,
["wikilambda-connect-tester"]=true,
["wikilambda-create-type"]=true,
["wikilambda-disconnect-implementation"]=true,
["wikilambda-disconnect-tester"]=true,
["wikilambda-edit-attached-implementation"]=true,
["wikilambda-edit-attached-tester"]=true,
["wikilambda-edit-running-function"]=true,
},
functionmaintainer={
["wikilambda-create-enum-value"]=true,
["wikilambda-create-language"]=true,
["wikilambda-create-predefined"]=true,
["wikilambda-create-programming"]=true,
["wikilambda-edit-builtin-function"]=true,
["wikilambda-edit-connected-converter"]=true,
["wikilambda-edit-enum-value"]=true,
["wikilambda-edit-language"]=true,
["wikilambda-edit-predefined"]=true,
["wikilambda-edit-programming"]=true,
["wikilambda-edit-running-function-definition"]=true,
["wikilambda-edit-type"]=true,
},
sysop={
["wikilambda-create-boolean"]=true,
["wikilambda-create-unit"]=true,
["wikilambda-edit-boolean"]=true,
["wikilambda-edit-object-type"]=true,
["wikilambda-edit-unit"]=true,
},
},
AddGroups={
sysop={
"functioneer",},
bureaucrat={
"functionmaintainer",},
},
RemoveGroups={
sysop={
"functioneer",},
bureaucrat={
"functionmaintainer",},
},
PrivilegedGroups={
"functioneer","functionmaintainer",},
HookHandlers={
WikiLambdaHooks={
class="MediaWiki\\Extension\\WikiLambda\\Hooks",
},
PageEditingHandler={
class="MediaWiki\\Extension\\WikiLambda\\HookHandler\\PageEditingHandler",
},
PageRenderingHandler={
class="MediaWiki\\Extension\\WikiLambda\\HookHandler\\PageRenderingHandler",
},
},
Hooks={
getUserPermissionsErrors="PageEditingHandler",
MultiContentSave="PageEditingHandler",
LoadExtensionSchemaUpdates="WikiLambdaHooks",
NamespaceIsMovable="PageEditingHandler",
HtmlPageLinkRendererEnd="PageRenderingHandler",
["SkinTemplateNavigation::Universal"]="PageRenderingHandler",
WebRequestPathInfoRouter="PageRenderingHandler",
BeforePageDisplay="PageRenderingHandler",
},
ExtensionMessagesFiles={
WikiLambdaAliases="WikiLambda.alias.php",
},
ForeignResourcesDir="resources/lib",
APIModules={
wikilambda_fetch="MediaWiki\\Extension\\WikiLambda\\ActionAPI\\ApiZObjectFetcher",
wikilambda_edit="MediaWiki\\Extension\\WikiLambda\\ActionAPI\\ApiZObjectEditor",
wikilambda_function_call="MediaWiki\\Extension\\WikiLambda\\ActionAPI\\ApiFunctionCall",
wikifunctions_run="MediaWiki\\Extension\\WikiLambda\\PublicAPI\\PublicApiRun",
wikilambda_perform_test={
class="MediaWiki\\Extension\\WikiLambda\\ActionAPI\\ApiPerformTest",
services={
"WikiLambdaZObjectStore",},
},
wikilambda_supported_programming_languages="MediaWiki\\Extension\\WikiLambda\\ActionAPI\\ApiSupportedProgrammingLanguages",
},
APIListModules={
wikilambdasearch_labels="MediaWiki\\Extension\\WikiLambda\\ActionAPI\\ApiQueryZObjectLabels",
wikilambdaload_zobjects={
class="MediaWiki\\Extension\\WikiLambda\\ActionAPI\\ApiQueryZObjects",
services={
"LanguageFallback","LanguageNameUtils","TitleFactory",},
},
wikilambdafn_search={
class="MediaWiki\\Extension\\WikiLambda\\ActionAPI\\ApiQueryZFunctionReference",
services={
"WikiLambdaZObjectStore",},
},
},
RestRoutes={
{
path="/wikifunctions/v0/fetch/{zids}",
method="GET",
class="MediaWiki\\Extension\\WikiLambda\\RESTAPI\\FetchHandler",
},{
path="/wikifunctions/v0/fetch/{zids}/{revisions}",
method="GET",
class="MediaWiki\\Extension\\WikiLambda\\RESTAPI\\FetchHandler",
},},
SpecialPages={
ViewObject={
class="MediaWiki\\Extension\\WikiLambda\\Special\\SpecialViewObject",
services={
"WikiLambdaZObjectStore",},
},
CreateObject="MediaWiki\\Extension\\WikiLambda\\Special\\SpecialCreateObject",
RunFunction="MediaWiki\\Extension\\WikiLambda\\Special\\SpecialRunFunction",
ListDuplicateObjectNames="MediaWiki\\Extension\\WikiLambda\\Special\\SpecialListDuplicateObjectNames",
ListObjectsByType={
class="MediaWiki\\Extension\\WikiLambda\\Special\\SpecialListObjectsByType",
services={
"WikiLambdaZObjectStore","LanguageFallback",},
},
},
TrackingCategories={
"wikilambda-functioncall-error-category","wikilambda-functioncall-error-unknown-category","wikilambda-functioncall-error-nonfunction-category","wikilambda-functioncall-error-nonstring-category",},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
JobClasses={
cacheTesterResults="MediaWiki\\Extension\\WikiLambda\\Jobs\\CacheTesterResultsJob",
updateImplementations="MediaWiki\\Extension\\WikiLambda\\Jobs\\UpdateImplementationsJob",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiLambda",
},
WikiLove={
name="WikiLove",
version="1.3.1",
author={
"Ryan Kaldari","Jan Paul Posma","Sam Reed",},
url="https://www.mediawiki.org/wiki/Extension:WikiLove",
descriptionmsg="wikilove-desc",
["license-name"]="MIT",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
},
APIModules={
wikilove={
class="MediaWiki\\Extension\\WikiLove\\ApiWikiLove",
services={
"DBLoadBalancerFactory","ParserFactory","PermissionManager",},
},
},
Hooks={
GetPreferences="main",
["SkinTemplateNavigation::Universal"]="main",
BeforePageDisplay="main",
LoadExtensionSchemaUpdates="schema",
ListDefinedTags="main",
ChangeTagsListActive="main",
UserMergeAccountFields="usermerge",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\WikiLove\\Hooks",
services={
"MainConfig","PermissionManager","UserOptionsLookup",},
},
usermerge={
class="MediaWiki\\Extension\\WikiLove\\UserMergeHooks",
services={
"MainConfig","DBLoadBalancer",},
},
schema={
class="MediaWiki\\Extension\\WikiLove\\SchemaHooks",
},
},
config={
WikiLoveGlobal={
value=false,
},
WikiLoveTabIcon={
value=true,
},
WikiLoveLogging={
value=false,
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiLove",
},
WikiLovesMonuments={
name="WikiLovesMonuments",
version="0.2.0",
author="[https://www.mediawiki.org/wiki/User:Platonides Platonides]",
url="https://www.mediawiki.org/wiki/Extension:WikiLovesMonuments",
descriptionmsg="wlm-extension-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
ExtensionFunctions={
"WikiLovesMonumentsHooks::init",},
ExtensionMessagesFiles={
WikiLovesMonumentsMagic="WikiLovesMonuments.i18n.magic.php",
},
Hooks={
ParserFirstCallInit="WikiLovesMonumentsHooks::registerParserFunctions",
},
config={
WikiLovesMonumentsCountryPortlet={
value=false,
},
WikiLovesMonumentsCentralisedStatsId={
value=false,
},
PiwikCustomJS={
value="",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiLovesMonuments",
},
WikiSEO={
name="WikiSEO",
version="2.7.0",
author={
"[https://www.mediawiki.org/wiki/User:Octfx Octfx]","...",},
url="https://www.mediawiki.org/wiki/Extension:WikiSEO",
descriptionmsg="wiki-seo-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
platform={
php="&gt;=7.4.0",
},
},
config={
GoogleSiteVerificationKey={
description="Site verification key for Google Search Console",
value=nil,
},
BingSiteVerificationKey={
description="Site verification key for Bing Webmaster Center",
value=nil,
},
FacebookAppId={
description="App Id for Facebook Insights",
value=nil,
},
FacebookAdmins={
description="Admin id for Facebook Insights. Multiple ids can be separated by ','",
value=nil,
},
YandexSiteVerificationKey={
description="Site verification key for Yandex Webmasters",
value=nil,
},
PinterestSiteVerificationKey={
description="Site verification key for Pinterest Console",
value=nil,
},
NortonSiteVerificationKey={
description="Site verification key for Norton Safe Web",
value=nil,
},
NaverSiteVerificationKey={
description="Site verification key for the Naver Search Engine",
value=nil,
},
TwitterSiteHandle={
description="Twitter Site handle to add globally",
value=nil,
},
MetadataGenerators={
description="Array with metadata generators. Valid values are OpenGraph, Twitter, SchemaOrg, Citation. Defaults to all three generators if empty.",
value={
},
},
WikiSeoDefaultImage={
description="Default image. Local image, if not set $wgLogo will be used.",
value=nil,
},
TwitterCardType={
description="Type of twitter card to use. Defaults to 'summary_large_image'. Possible values: 'summary', 'summary_large_image'",
value="summary_large_image",
},
WikiSeoDefaultLanguage={
description="Language code and area which will set a &lt;link rel='alternate'&gt; for the current page.",
value=nil,
},
WikiSeoDisableLogoFallbackImage={
description="Disable setting the sites logo as the default SEO image if no image was provided.",
value=false,
},
WikiSeoNoindexPageTitles={
description="Array of page titles that should have a robot policy of 'noindex'.",
value={
},
},
WikiSeoEnableAutoDescription={
description="Set to true to try to request a description from textextracts, if no description was given, or the description key is set to 'textextracts'.",
value=false,
},
WikiSeoTryCleanAutoDescription={
description="Set to true, if WikiSEO should try to remove dangling sentences when using descriptions from textextracts.",
value=false,
},
WikiSeoOverwritePageImage={
description="Set to true to enable overwriting the image set by extension PageImages",
value=false,
},
WikiSeoEnableSocialImages={
description="Generate dedicated social media icons for pages",
value=false,
},
WikiSeoSocialImageIcon={
description="The icon/watermark to add to the social media image",
value=nil,
},
WikiSeoSocialImageWidth={
description="Width of the social media image",
value=1200,
},
WikiSeoSocialImageHeight={
description="Height of the social media image",
value=620,
},
WikiSeoSocialImageTextColor={
description="Color of the text on the social image",
value="#ffffff",
},
WikiSeoSocialImageShowAuthor={
description="Show the author of the current page revision",
value=true,
},
WikiSeoSocialImageShowLogo={
description="Show the Wiki logo in the top right corner",
value=true,
},
WikiSeoSocialImageBackgroundColor={
description="Default background color if no page image is found",
value="#14181f",
},
},
ConfigRegistry={
WikiSEO="GlobalVarConfig::newInstance",
},
RawHtmlMessages={
"wiki-seo-pageinfo-header-description","wiki-seo-param-title-description","wiki-seo-param-title_mode-description","wiki-seo-param-title_separator-description","wiki-seo-param-keywords-description","wiki-seo-param-description-description","wiki-seo-param-image-description",},
ExtensionMessagesFiles={
WikiSEOMagic="WikiSEO.i18n.magic.php",
},
HookHandlers={
ParserHooks={
class="MediaWiki\\Extension\\WikiSEO\\Hooks\\ParserHooks",
},
PageHooks={
class="MediaWiki\\Extension\\WikiSEO\\Hooks\\PageHooks",
services={
"MainConfig",},
},
InfoActionHook={
class="MediaWiki\\Extension\\WikiSEO\\Hooks\\InfoAction",
services={
"RepoGroup","PageProps","TitleFactory",},
},
},
Hooks={
ParserFirstCallInit="ParserHooks",
BeforePageDisplay="PageHooks",
RevisionDataUpdates="PageHooks",
OutputPageAfterGetHeadLinksArray="PageHooks",
InfoAction="InfoActionHook",
ScribuntoExternalLibraries="MediaWiki\\Extension\\WikiSEO\\Hooks\\ScribuntoHooks::onScribuntoExternalLibraries",
},
RestRoutes={
{
path="/wikiseo/v1/socialmediaimage/{title}",
class="MediaWiki\\Extension\\WikiSEO\\Api\\RestSocialMediaImage",
},},
composer="octfx/wiki-seo",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiSEO",
},
WikiShare={
name="WikiShare",
version="0.15042020",
author={
"[https://www.mediawiki.org/wiki/User:Varnent Gregory Varnum]",},
url="https://www.mediawiki.org/wiki/Extension:WikiShare",
descriptionmsg="wikishare-desc",
["license-name"]="GPL-2.0-only",
type="other",
ExtensionMessagesFiles={
WikiShareMagic="WikiShare.i18n.magic.php",
},
requires={
MediaWiki="&gt;= 1.35.0",
},
Hooks={
ArticleViewHeader="WikiShare::WikiShareHeader",
ParserFirstCallInit="WikiShare::onParserFirstCallInit",
SkinBuildSidebar={
"WikiShare::WikiShareSidebar","WikiShare::WikiShareFollowSidebar",},
},
config={
WikiShare={
value={
background="#f6f6f6",
border="#a7d7f9",
header=true,
main=true,
sidebar=true,
follow=true,
},
},
WikiShareServices={
value={
facebook={
service="Facebook",
url="https://www.facebook.com/sharer.php?u=%url%&amp;t=%title% - %wiki%",
icon="https://upload.wikimedia.org/wikipedia/commons/thumb/5/51/Facebook_f_logo_%282019%29.svg/40px-Facebook_f_logo_%282019%29.svg.png",
},
twitter={
service="Twitter",
url="https://twitter.com/intent/tweet?text=Look%20what%20I%20found%20on%20%wiki%:%20%url%",
icon="https://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/Twitter_Logo.png/40px-Twitter_Logo.png",
},
},
},
WikiShareFollow={
value={
facebook={
service="Facebook",
url="",
icon="https://upload.wikimedia.org/wikipedia/commons/thumb/5/51/Facebook_f_logo_%282019%29.svg/40px-Facebook_f_logo_%282019%29.svg.png",
},
twitter={
service="Twitter",
url="",
icon="https://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/Twitter_Logo.png/40px-Twitter_Logo.png",
},
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiShare",
},
WikiTextLoggedInOut={
name="WikiTextLoggedInOut",
version="1.6.0",
author={
"Aaron Wright","David Pean","Jack Phoenix",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:WikiTextLoggedInOut",
descriptionmsg="wikitextloggedinout-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.39.0",
},
Hooks={
ParserFirstCallInit="WikiTextLoggedInOut::registerTags",
ParserOptionsRegister="WikiTextLoggedInOut::onParserOptionsRegister",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiTextLoggedInOut",
},
WikiToLDAP={
name="WikiToLDAP",
author={
"Mark A. Hershberger",},
url="https://www.mediawiki.org/wiki/Extension:WikiToLDAP",
config_prefix="WikiToLDAP",
config={
MigrationGroup={
value="wikitoldap-needs-migration",
public=true,
descriptionmsg="wikitoldap-migrationgroup-desc",
},
InProgressGroup={
value="wikitoldap-in-progress",
public=true,
descriptionmsg="wikitoldap-inprogressgroup-desc",
},
MergedGroup={
value="wikitoldap-merged",
public=true,
descriptionmsg="wikitoldap-merged-desc",
},
OldUsernamePrefix={
value="⚠️",
public=true,
descriptionmsg="wikitoldap-old-username-prefix-desc",
},
OldUsersAreRenamed={
value=false,
public=true,
descriptionmsg="wikitoldap-old-users-are-renamed-desc",
},
CanCheckOldUser={
value=false,
public=true,
descriptionmsg="wikitoldap-can-check-old-user-desc",
},
MigrationInProgress={
value=true,
public=true,
descriptionmsg="wikitoldap-migrationinprogress-desc",
},
},
requires={
MediaWiki="&gt;= 1.35.0",
extensions={
LDAPAuthentication2="&gt;= 1.0.1",
},
},
Hooks={
userCan="MediaWiki\\Extension\\WikiToLDAP\\Hook::onUserCan",
PluggableAuthPopulateGroups="MediaWiki\\Extension\\WikiToLDAP\\Hook::onPluggableAuthPopulateGroups",
AuthChangeFormFields="MediaWiki\\Extension\\WikiToLDAP\\Hook::onAuthChangeFormFields",
},
callback="MediaWiki\\Extension\\WikiToLDAP\\Hook::init",
SpecialPages={
WikiUserMerge="MediaWiki\\Extension\\WikiToLDAP\\SpecialWikiMerge",
LDAPUserMerge="MediaWiki\\Extension\\WikiToLDAP\\SpecialLDAPMerge",
},
APIModules={
wikitoldapoptout="MediaWiki\\Extension\\WikiToLDAP\\API",
},
ExtensionMessagesFiles={
LegalLoginAlias="WikiToLDAP.alias.php",
},
descriptionmsg="wikitoldap-desc",
["license-name"]="GPL-3.0-or-later",
type="other",
LogTypes={
"wikitoldap",},
LogActionsHandlers={
["wikitoldap/*"]="LogFormatter",
},
GroupPermissions={
["wikitoldap-needs-migration"]={
["migrate-from-ldap"]=true,
},
["wikitoldap-in-progress"]={
["migrate-from-ldap"]=true,
},
["wikitoldap-merged"]={
["migrate-from-ldap"]=true,
},
},
RevokePermissions={
["wikitoldap-in-progress"]={
bigdelete=true,
block=true,
blockemail=true,
browsearchive=true,
confirmaccount=true,
createclass=true,
createpage=true,
createtalk=true,
datatransferimport=true,
delete=true,
deletechangetags=true,
deletelogentry=true,
deleterevision=true,
edit=true,
editmyoptions=true,
editmywatchlist=true,
editprotected=true,
editsemiprotected=true,
editsitecss=true,
editsiteinterface=true,
editsitejs=true,
editsitejson=true,
editusercss=true,
edituserjs=true,
edituserjson=true,
geocode=true,
hideuser=true,
import=true,
importupload=true,
lookupcredentials=true,
managechangetags=true,
mergehistory=true,
move=true,
["move-categorypages"]=true,
["move-rootuserpages"]=true,
["move-subpages"]=true,
movefile=true,
nuke=true,
protect=true,
reupload=true,
["smw-admin"]=true,
suppressionlog=true,
suppressrevision=true,
upload=true,
userrights=true,
viewedittab=true,
viewmyprivateinfo=true,
viewmywatchlist=true,
viewsuppressed=true,
writeapi=true,
},
["wikitoldap-needs-migration"]={
bigdelete=true,
block=true,
blockemail=true,
browsearchive=true,
confirmaccount=true,
createclass=true,
createpage=true,
createtalk=true,
datatransferimport=true,
delete=true,
deletechangetags=true,
deletelogentry=true,
deleterevision=true,
edit=true,
editmyoptions=true,
editmywatchlist=true,
editprotected=true,
editsemiprotected=true,
editsitecss=true,
editsiteinterface=true,
editsitejs=true,
editsitejson=true,
editusercss=true,
edituserjs=true,
edituserjson=true,
geocode=true,
hideuser=true,
import=true,
importupload=true,
lookupcredentials=true,
managechangetags=true,
mergehistory=true,
move=true,
["move-categorypages"]=true,
["move-rootuserpages"]=true,
["move-subpages"]=true,
movefile=true,
nuke=true,
protect=true,
reupload=true,
["smw-admin"]=true,
suppressionlog=true,
suppressrevision=true,
upload=true,
userrights=true,
viewedittab=true,
viewmyprivateinfo=true,
viewmywatchlist=true,
viewsuppressed=true,
writeapi=true,
},
},
composer="mediawiki/wiki-to-ldap",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiToLDAP",
},
WikiVideos={
name="WikiVideos",
version="4.3",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Sophivorus]",
url="https://www.mediawiki.org/wiki/Extension:WikiVideos",
descriptionmsg="wikivideos-desc",
["license-name"]="GPL-3.0-or-later",
type="tag",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
BeforeInitialize="WikiVideosHooks::onBeforeInitialize",
BeforePageDisplay="WikiVideosHooks::onBeforePageDisplay",
GalleryGetModes="WikiVideosHooks::onGalleryGetModes",
},
config={
GoogleCloudCredentials={
value="",
},
WikiVideosUserAgent={
value="WikiVideos/4.3 (https://www.mediawiki.org/wiki/Extension:WikiVideos)",
},
WikiVideosMinSize={
value=200,
},
WikiVideosMaxSize={
value=1280,
},
WikiVideosControls={
value=true,
},
WikiVideosAutoplay={
value=false,
},
WikiVideosChapters={
value=true,
},
WikiVideosCaptions={
value=false,
},
WikiVideosVoiceLanguage={
value="",
},
WikiVideosVoiceGender={
value="",
},
WikiVideosVoiceName={
value="",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiVideos",
},
WikibaseCirrusSearch={
name="WikibaseCirrusSearch",
version="0.1.0",
author={
"The Wikidata team","Stas Malyshev",},
url="https://www.mediawiki.org/wiki/Extension:WikibaseCirrusSearch",
descriptionmsg="wikibasecirrus-desc",
["license-name"]="GPL-2.0-or-later",
type="wikibase",
requires={
MediaWiki="&gt;= 1.42",
},
config_prefix="wgWBCS",
["@note"]="The values below are mirrors of old Wikibase values. TODO: once Wikibase values are gone, put proper defaults here.",
config={
UseCirrus={
value=nil,
description="Use CirrusSearch (ElasticSearch) for searching",
},
PrefixSearchProfile={
value=nil,
description="Default label scoring profile name, for prefix search. See profiles in config/EntityPrefixSearchProfiles.php",
},
PrefixSearchProfiles={
value=nil,
description="Field weight profiles. These profiles specify relative weights of label fields for different languages, e.g. exact language match vs. fallback language match.",
},
FulltextSearchProfile={
value=nil,
description="Default profile name for fulltext search. See profiles in config/EntitySearchProfiles.php",
},
FulltextSearchProfiles={
value=nil,
description="Profile definitions for fulltext search.",
},
DefaultPrefixRescoreProfile={
value=nil,
description="Default rescore profile for prefix search.",
},
DefaultFulltextRescoreProfile={
value=nil,
description="Default rescore profile for prefix search.",
},
RescoreProfiles={
value=nil,
description="Rescore profile definitions holder.",
},
RescoreFunctionChains={
value=nil,
description="Rescore function chain definitions holder.",
},
LanguageSelectorRescoreProfile={
value=nil,
description="Default rescore profile to use in the language selector context",
},
LanguageSelectorPrefixSearchProfile={
value=nil,
description="Default query builder profile to use in the language selector context",
},
LanguageSelectorStatementBoost={
value={
},
description="Type (de)boosts for rescoring functions in the language selector context",
},
LanguageSelectorRescoreFunctionChains={
value={
},
description="Function chains profiles used by the language selector context",
},
StatementBoost={
value={
},
description="Type (de)boosts for rescoring functions.",
},
UseStemming={
value={
},
description="List of languages that we want to have stemming analyzers.",
},
LicenseMapping={
value={
},
description="Map of licence search strings to wikibase statements.",
},
},
ConfigRegistry={
WikibaseCirrusSearch="Wikibase\\Search\\Elastic\\WikibaseSearchConfig::newFromGlobals",
},
Hooks={
SetupAfterCache={
"Wikibase\\Search\\Elastic\\Hooks::onSetupAfterCache",},
CirrusSearchAnalysisConfig={
"Wikibase\\Search\\Elastic\\Hooks::onCirrusSearchAnalysisConfig",},
CirrusSearchProfileService={
"Wikibase\\Search\\Elastic\\Hooks::onCirrusSearchProfileService",},
CirrusSearchAddQueryFeatures={
"Wikibase\\Search\\Elastic\\Hooks::onCirrusSearchAddQueryFeatures",},
ShowSearchHit={
"Wikibase\\Search\\Elastic\\CirrusShowSearchHitHandler::onShowSearchHit",},
ShowSearchHitTitle={
"Wikibase\\Search\\Elastic\\CirrusShowSearchHitHandler::onShowSearchHitTitle",},
WikibaseRepoEntityTypes={
"Wikibase\\Search\\Elastic\\Hooks::onWikibaseRepoEntityTypes",},
SpecialPage_initList={
"Wikibase\\Search\\Elastic\\Hooks::onSpecialPageInitList",},
ApiOpenSearchSuggest={
"Wikibase\\Search\\Elastic\\Hooks::onApiOpenSearchSuggest",},
},
ExtensionMessagesFiles={
WikibaseCirrusSearchAlias="WikibaseCirrusSearch.alias.php",
},
composer="wikibase/cirrussearch",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseCirrusSearch",
},
WikibaseLexeme={
name="WikibaseLexeme",
author={
"The Wikidata team",},
url="https://www.mediawiki.org/wiki/Extension:WikibaseLexeme",
descriptionmsg="wikibaselexeme-desc",
["license-name"]="GPL-2.0-or-later",
type="wikibase",
requires={
MediaWiki="&gt;= 1.42",
},
callback="Wikibase\\Lexeme\\Registrar::registerExtension",
config={
LexemeEnableRepo={
value=true,
},
LexemeNamespace={
value=146,
},
LexemeLanguageCodePropertyId={
value=nil,
},
LexemeLexicalCategoryItemIds={
value={
},
description="Item IDs of Items to suggest as the Lexical Category of a Lexeme. Any Item can be used for the Lexical Category, but the Items listed here will be suggested to editors preferentially.",
},
LexemeEnableDataTransclusion={
value=false,
},
},
ExtensionMessagesFiles={
WikibaseLexemeAlias="WikibaseLexeme.i18n.alias.php",
},
QUnitTestModule={
localBasePath="",
remoteExtPath="WikibaseLexeme",
packageFiles={
"tests/qunit/index.js","tests/qunit/datamodel/Form.tests.js","tests/qunit/datamodel/Sense.tests.js","tests/qunit/experts/Lexeme.tests.js","tests/qunit/experts/Form.tests.js","tests/qunit/jquery.wikibase.lexemeformlistview.tests.js","tests/qunit/jquery.wikibase.lexemeformview.tests.js","tests/qunit/jquery.wikibase.grammaticalfeatureview.tests.js","tests/qunit/jquery.wikibase.senselistview.tests.js","tests/qunit/jquery.wikibase.senseview.tests.js","tests/qunit/widgets/GrammaticalFeatureListWidget.tests.js","resources/widgets/GrammaticalFeatureListWidget.js","tests/qunit/entityChangers/FormChanger.tests.js","resources/entityChangers/FormChanger.js","resources/serialization/FormSerializer.js","tests/qunit/entityChangers/SenseChanger.tests.js","resources/entityChangers/SenseChanger.js","resources/serialization/SenseSerializer.js","tests/qunit/entityChangers/LexemeRevisionStore.tests.js","resources/entityChangers/LexemeRevisionStore.js","tests/qunit/serialization/LexemeDeserializer.tests.js","resources/serialization/LexemeDeserializer.js","resources/datamodel/Lexeme.js","tests/qunit/datamodel/Lexeme.tests.js","tests/qunit/serialization/FormSerializer.tests.js","tests/qunit/serialization/SenseSerializer.tests.js","tests/qunit/view/ViewFactoryFactory.tests.js","resources/view/ViewFactoryFactory.js","resources/view/config.json","resources/view/ReadModeViewFactory.js","resources/view/ControllerViewFactory.js","tests/qunit/view/ControllerViewFactory.tests.js","tests/qunit/view/ViewFactoryFactory.tests.js",},
dependencies={
"mediawiki.widgets","oojs-ui-core","oojs-ui-widgets","oojs-ui","vue","vuex","wikibase.datamodel","wikibase.experts.Form","wikibase.experts.Lexeme","wikibase.lexeme.datamodel","wikibase.lexeme.getDeserializer","wikibase.lexeme.lexemeview","wikibase.lexeme.view.ViewFactoryFactory","wikibase.lexeme.view.ViewFactoryFactory","test.WikibaseRepository",},
},
Hooks={
InfoAction="main",
WikibaseRepoEntityNamespaces={
"Wikibase\\Lexeme\\WikibaseLexemeHooks::onWikibaseRepoEntityNamespaces",},
CanonicalNamespaces="main",
LoadExtensionSchemaUpdates="main",
WikibaseRepoEntityTypes={
"Wikibase\\Lexeme\\WikibaseLexemeHooks::onWikibaseRepoEntityTypes",},
WikibaseRepoDataTypes={
"Wikibase\\Lexeme\\WikibaseLexemeHooks::onWikibaseDataTypes",},
WikibaseContentLanguages={
"Wikibase\\Lexeme\\WikibaseLexemeHooks::onWikibaseContentLanguages",},
WikibaseClientEntityTypes={
"Wikibase\\Lexeme\\WikibaseLexemeHooks::onWikibaseClientEntityTypes",},
WikibaseClientDataTypes={
"Wikibase\\Lexeme\\WikibaseLexemeHooks::onWikibaseClientDataTypes",},
WikibaseRepoOnParserOutputUpdaterConstruction={
"Wikibase\\Lexeme\\WikibaseLexemeHooks::onParserOutputUpdaterConstruction",},
ScribuntoExternalLibraries={
"Wikibase\\Lexeme\\WikibaseLexemeHooks::onScribuntoExternalLibraries",},
},
HookHandlers={
main={
class="Wikibase\\Lexeme\\WikibaseLexemeHooks",
},
},
ServiceWiringFiles={
"WikibaseLexeme.mediawiki-services.php",},
composer="wikibase/lexeme",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseLexeme",
},
WikibaseLexemeCirrusSearch={
name="WikibaseLexemeCirrusSearch",
version="0.1.0",
author={
"The Wikidata team","Stas Malyshev",},
url="https://www.mediawiki.org/wiki/Extension:WikibaseLexemeCirrusSearch",
descriptionmsg="wikibaselexemecirrus-desc",
["license-name"]="GPL-2.0-or-later",
type="wikibase",
requires={
extensions={
WikibaseCirrusSearch="*",
WikibaseLexeme="*",
},
MediaWiki="&gt;= 1.42",
},
config={
LexemeUseCirrus={
value=false,
},
LexemePrefixSearchProfile={
value="lexeme_prefix",
},
LexemePrefixSearchProfiles={
value={
},
},
LexemeRescoreFunctions={
value={
},
},
LexemePrefixRescoreProfile={
value="lexeme_prefix",
},
LexemeFulltextRescoreProfile={
value="lexeme_fulltext",
},
},
Hooks={
CirrusSearchProfileService={
"Wikibase\\Lexeme\\Search\\Elastic\\Hooks::onCirrusSearchProfileService",},
ShowSearchHit="main",
WikibaseRepoEntityTypes={
"Wikibase\\Lexeme\\Search\\Elastic\\Hooks::onWikibaseRepoEntityTypes",},
},
HookHandlers={
main={
class="Wikibase\\Lexeme\\Search\\Elastic\\Hooks",
},
},
composer="wikibase/lexeme-cirrusssearch",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseLexemeCirrusSearch",
},
WikibaseManifest={
name="WikibaseManifest",
author="The Wikidata team",
url="https://www.mediawiki.org/wiki/Extension:WikibaseManifest",
["license-name"]="GPL-2.0-or-later",
version="0.0.1",
namemsg="wikibasemanifest",
descriptionmsg="wikibasemanifest-desc",
requires={
MediaWiki="&gt;= 1.35.0",
},
config={
WbManifestWikidataEntityMapping={
description="The mapping of Wikidata entity ids to local Wikibase entity ids.",
value={
},
},
WbManifestExternalServiceMapping={
description="The mapping of external service identifiers to URLs.",
value={
},
},
WbManifestMaxLag={
description="The max_lag value in seconds.",
value=5,
},
},
type="wikibase",
RestRoutes={
{
path="/wikibase-manifest/v0/manifest",
method="GET",
class="MediaWiki\\Extension\\WikibaseManifest\\RestApi",
services={
"WikibaseManifestGenerator","EmptyValueCleaner",},
},},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseManifest",
},
WikibaseMediaInfo={
name="WikibaseMediaInfo",
version="0.1.0",
author={
"The Wikidata team","Anne Tomasevich","Cormac Parle","Eric Gardner","Mark Holmquist","Matthias Mullie",},
url="https://www.mediawiki.org/wiki/Extension:WikibaseMediaInfo",
descriptionmsg="wikibasemediainfo-desc",
["license-name"]="GPL-2.0-or-later",
type="wikibase",
requires={
MediaWiki="&gt;= 1.42",
extensions={
UniversalLanguageSelector="*",
WikibaseCirrusSearch="*",
},
},
ConfigRegistry={
WikibaseMediaInfo="GlobalVarConfig::newInstance",
},
config={
MediaInfoProperties={
description="Map of { indicative name: property id }. E.g. { depicts: 'P1' }. The key doesn't really matter, except to construct a title (grep for wikibasemediainfo-statements-title-)",
value={
},
},
MediaInfoHelpUrls={
description="Links to pages to learn more about wikibase properties. E.g. { P1: 'https://commons.wikimedia.org/wiki/Special:MyLanguage/Commons:Depicts' }",
value={
},
},
MediaInfoExternalEntitySearchBaseUri={
description="URI of the api.php endpoint where entities can be searched.",
value="",
},
MediaInfoMediaSearchTitleMatchBaseUri={
description="URI of the api.php endpoint where page titles can be searched. The 2-character language code will be sprintf'ed into this value.",
value="",
},
MediaInfoSupportedDataTypes={
description="List of property datatypes which are supported in the UI",
value={
"wikibase-item","string","quantity","time","monolingualtext","external-id","globe-coordinate","url",},
},
MediaInfoCustomMatchFeature={
description="Configuration for the 'custommatch' search feature, see Wikibase\\MediaInfo\\Search\\Feature\\CustomMatchFeature for expected format",
value={
},
},
MediaInfoMediaSearchProfiles={
description="Map of { profile key: settings } MediaSearch profiles",
value={
},
},
},
ServiceWiringFiles={
"src/Services/MediaInfoServiceWiring.php",},
callback="Wikibase\\MediaInfo\\WikibaseMediaInfoHooks::onRegistration",
HookHandlers={
main={
class="Wikibase\\MediaInfo\\WikibaseMediaInfoHooks",
},
services={
class="Wikibase\\MediaInfo\\WikibaseMediaInfoServicesHooks",
},
mediainfo_searchdata={
class="\\Wikibase\\MediaInfo\\MediaInfoDataForSearchIndex",
services={
"ContentHandlerFactory",},
},
},
Hooks={
MediaWikiServices="services",
WikibaseRepoEntityNamespaces="Wikibase\\MediaInfo\\WikibaseMediaInfoHooks::onWikibaseRepoEntityNamespaces",
WikibaseRepoEntityTypes="Wikibase\\MediaInfo\\WikibaseMediaInfoHooks::onWikibaseEntityTypes",
WikibaseClientEntityTypes="Wikibase\\MediaInfo\\WikibaseMediaInfoHooks::onWikibaseEntityTypes",
GetEntityByLinkedTitleLookup="Wikibase\\MediaInfo\\WikibaseMediaInfoHooks::onGetEntityByLinkedTitleLookup",
GetEntityContentModelForTitle="Wikibase\\MediaInfo\\WikibaseMediaInfoHooks::onGetEntityContentModelForTitle",
BeforePageDisplay="main",
ParserOutputPostCacheTransform="main",
GetPreferences="main",
ScribuntoExternalLibraries="Wikibase\\MediaInfo\\WikibaseMediaInfoHooks::onScribuntoExternalLibraries",
RevisionUndeleted="main",
ArticleUndelete="main",
CirrusSearchProfileService="Wikibase\\MediaInfo\\WikibaseMediaInfoHooks::onCirrusSearchProfileService",
CirrusSearchRegisterFullTextQueryClassifiers="Wikibase\\MediaInfo\\WikibaseMediaInfoHooks::onCirrusSearchRegisterFullTextQueryClassifiers",
SidebarBeforeOutput="main",
CirrusSearchAddQueryFeatures="Wikibase\\MediaInfo\\WikibaseMediaInfoHooks::onCirrusSearchAddQueryFeatures",
MultiContentSave="main",
SearchDataForIndex2="mediainfo_searchdata",
},
DefaultUserOptions={
["wbmi-cc0-confirmed"]=0,
["wbmi-wikidata-link-notice-dismissed"]=0,
},
GroupPermissions={
["*"]={
["mediainfo-term"]=true,
},
},
GrantPermissions={
editpage={
["mediainfo-term"]=true,
},
},
AvailableRights={
"mediainfo-term",},
RawHtmlMessages={
"wikibasemediainfo-time-timestamp-formatted",},
composer="wikibase/media-info",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseMediaInfo",
},
WikibaseQualityConstraints={
name="WikibaseQualityConstraints",
author={
"BP2014N1","Lucas Werkmeister",},
url="https://www.mediawiki.org/wiki/Extension:WikibaseQualityConstraints",
descriptionmsg="wbqc-desc",
version="1.0.0",
["license-name"]="GPL-2.0-or-later",
type="wikibase",
requires={
MediaWiki="&gt;= 1.42",
},
ExtensionMessagesFiles={
WikibaseQualityConstraintsAlias="WikibaseQualityConstraints.alias.php",
},
ServiceWiringFiles={
"src/ServiceWiring.php","src/ServiceWiring-ConstraintCheckers.php","src/ServiceWiring-Wikibase.php",},
Hooks={
LoadExtensionSchemaUpdates="schema",
WikibaseChangeNotification="WikibaseQuality\\ConstraintReport\\WikibaseQualityConstraintsHooks::onWikibaseChange",
ArticlePurge="main",
BeforePageDisplay="main",
},
HookHandlers={
main={
class="WikibaseQuality\\ConstraintReport\\WikibaseQualityConstraintsHooks",
},
schema={
class="WikibaseQuality\\ConstraintReport\\WikibaseQualityConstraintsSchemaHooks",
},
},
SpecialPages={
ConstraintReport={
class="WikibaseQuality\\ConstraintReport\\Specials\\SpecialConstraintReport",
factory="WikibaseQuality\\ConstraintReport\\Specials\\SpecialConstraintReport::factory",
services={
"MainConfig","StatsdDataFactory","WikibaseRepo.EntityIdHtmlLinkFormatterFactory","WikibaseRepo.EntityIdLabelFormatterFactory","WikibaseRepo.EntityIdParser","WikibaseRepo.EntityTitleLookup","WikibaseRepo.LanguageFallbackChainFactory","WBQC_EntityLookup","WBQC_DelegatingConstraintChecker","WBQC_ViolationMessageRendererFactory",},
},
},
APIModules={
wbcheckconstraints={
class="WikibaseQuality\\ConstraintReport\\Api\\CheckConstraints",
factory="WikibaseQuality\\ConstraintReport\\Api\\CheckConstraints::factory",
services={
"StatsdDataFactory","WikibaseRepo.ApiHelperFactory","WikibaseRepo.EntityIdLabelFormatterFactory","WikibaseRepo.EntityIdParser","WikibaseRepo.EntityTitleLookup","WikibaseRepo.LanguageFallbackChainFactory","WikibaseRepo.StatementGuidValidator","WBQC_ResultsSource","WBQC_ViolationMessageRendererFactory",},
},
wbcheckconstraintparameters={
class="WikibaseQuality\\ConstraintReport\\Api\\CheckConstraintParameters",
factory="WikibaseQuality\\ConstraintReport\\Api\\CheckConstraintParameters::newFromGlobalState",
services={
"StatsdDataFactory","WikibaseRepo.ApiHelperFactory","WikibaseRepo.LanguageFallbackChainFactory","WikibaseRepo.StatementGuidParser","WBQC_DelegatingConstraintChecker","WBQC_ViolationMessageRendererFactory",},
},
},
Actions={
constraintsrdf={
"WikibaseQuality\\ConstraintReport\\Api\\CheckConstraintsRdf","newFromGlobalState",},
},
JobClasses={
constraintsTableUpdate="WikibaseQuality\\ConstraintReport\\Job\\UpdateConstraintsTableJob::newFromGlobalState",
constraintsRunCheck="WikibaseQuality\\ConstraintReport\\Job\\CheckConstraintsJob",
},
config={
WBQualityConstraintsTypeCheckMaxEntities={
value=1000,
description="The maximum number of entities that are accessed when checking type or subtype relations.",
public=true,
},
WBQualityConstraintsCheckDurationInfoSeconds={
value=1,
description="The maximum time that a single constraint check should usually take, in seconds. Any constraint check that takes longer than this time is logged at ‘info’ level. Specifying `null` disables this logging.",
public=true,
},
WBQualityConstraintsCheckDurationWarningSeconds={
value=10,
description="The maximum time that a single constraint check should ever take, in seconds. Any constraint check that takes longer than this time is logged at ‘warning’ level. Specifying `null` disables this logging.",
public=true,
},
WBQualityConstraintsCheckOnEntityDurationInfoSeconds={
value=5,
description="The maximum time that a full constraint check on an entity should usually take, in seconds. Any entity constraint check that takes longer than this time is logged at ‘info’ level. Specifying `null` disables this logging.",
public=true,
},
WBQualityConstraintsCheckOnEntityDurationWarningSeconds={
value=55,
description="The maximum time that a full constraint check on an entity should ever take, in seconds. Any entity constraint check that takes longer than this time is logged at ‘warning’ level. Specifying `null` disables this logging.",
public=true,
},
WBQualityConstraintsEnableConstraintsImportFromStatements={
value=true,
description="Whether to import property constraint statements into the constraint database or not.",
public=true,
},
WBQualityConstraintsEnableConstraintsCheckJobs={
value=false,
description="Whether to automatically run constraint checks in jobs.",
public=true,
},
WBQualityConstraintsEnableConstraintsCheckJobsRatio={
value=0,
description="Percentage (0%-100%) of edits that trigger a constraint check",
public=true,
},
WBQualityConstraintsCheckQualifiers={
value=true,
description="Whether to check constraints on qualifiers.",
public=true,
},
WBQualityConstraintsCheckReferences={
value=true,
description="Whether to check constraints on references.",
public=true,
},
WBQualityConstraintsSparqlEndpoint={
value="",
description="The URL of the SPARQL endpoint. Should accept the URL parameters 'query', 'format' and 'maxQueryTimeMillis'. Set to '' (empty string, default) to disable SPARQL functionality.",
public=true,
},
WBQualityConstraintsSparqlMaxMillis={
value=10000,
description="The maximum runtime for queries on the configured SPARQL endpoint, in milliseconds.",
public=true,
},
WBQualityConstraintsSparqlThrottlingFallbackDuration={
value=10,
description="The default duration in seconds, which prevents requests to the SPARQL endpoint, if the endpoint response with a 'try-later' (Responsecode 429). This field will only be used, if the endpoint sends a incorrect or incomplete response. The value must be a integer, which is greater than zero.",
public=true,
},
WBQualityConstraintsSparqlTimeoutExceptionClasses={
value={
"com.bigdata.bop.engine.QueryTimeoutException","java.util.concurrent.TimeoutException",},
description="Strings that, when they occur inside an error response of the SPARQL endpoint, indicate that the error is a query timeout. On the Wikidata Query Service, these are fully qualified names of exception classes.",
public=true,
},
WBQualityConstraintsSparqlHasWikibaseSupport={
value=false,
description="Whether the SPARQL endpoint has special Wikibase support, i. e. whether it is an installation of the Wikibase RDF Query server. If this is enabled, prefixes are not included in SPARQL queries, since the server already defines them by default (which reduces network traffic), and some queries include BlazeGraph-specific query hints. Otherwise, the queries should be suitable for any SPARQL server.",
public=true,
},
WBQualityConstraintsCheckFormatConstraint={
value=true,
description="Whether or not to check the 'format' constraint. If this flag is set to false, any check of the 'format' constraint will return a 'todo' status with the 'wbqc-violation-message-security-reason' message.",
public=true,
},
WBQualityConstraintsFormatCacheMapSize={
value=100,
description="Size of the per-regex cache map for format/regex check results. For each regex, up to this many values will have cached whether they match the regex or not, on a least-recently-used basis.",
public=true,
},
WBQualityConstraintsCacheCheckConstraintsResults={
value=true,
description="Whether to a caching service while running constraint checks. Results are only cached for constraint checks on full entities, and only when the set of constraints to be checked is not specified (i. e. the constraintid parameter is unset).",
public=true,
},
WBQualityConstraintsCacheCheckConstraintsTTLSeconds={
value=86400,
description="The time-to-live, in seconds, of cached results of the wbcheckconstraints API action. Ignored if WBQualityConstraintsCacheCheckConstraintsResults is not true.",
public=true,
},
WBQualityConstraintsCacheCheckConstraintsMaximumRevisionIds={
value=10000,
description="The maximum number of revision IDs to load when checking whether a cached wbcheckconstraints result is still fresh. Results that depend on more entity IDs than this limit are not cached.",
public=true,
},
WBQualityConstraintsInstanceOfId={
value="P31",
description="The property ID of the 'instance of' property (data type: item), which specifies the class(es) of an item.",
public=true,
},
WBQualityConstraintsSubclassOfId={
value="P279",
description="The property ID of the 'subclass of' property (data type: item), which specifies the superclass(es) of an item.",
public=true,
},
WBQualityConstraintsPropertyConstraintId={
value="P2302",
description="The property ID of the 'property constraint' property (data type: item), which specifies the various constraints of a property.",
public=true,
},
WBQualityConstraintsExceptionToConstraintId={
value="P2303",
description="The property ID of the 'exception to constraint' property (data type: item), which specifies the exceptions of a constraint.",
public=true,
},
WBQualityConstraintsConstraintStatusId={
value="P2316",
description="The property ID of the 'constraint status' property (data type: item), which specifies the constraint status of a constraint statement. Currently, only one constraint status is known (see WBQualityConstraintsMandatoryConstraintId), and the default status is signified by the absence of a 'constraint status' qualifier.",
public=true,
},
WBQualityConstraintsMandatoryConstraintId={
value="Q21502408",
description="The item ID of the 'mandatory constraint' item, which, when used in a 'constraint status' qualifier of a 'property constraint' statement on a property, indicates that the constraint is mandatory and should have no violations except for the known exceptions.",
public=true,
},
WBQualityConstraintsSuggestionConstraintId={
value="Q62026391",
description="The item ID of the 'suggestion constraint' item, which, when used in a 'constraint status' qualifier of a 'property constraint' statement on a property, indicates that the constraint is merely a suggestion for improvement and violations need not be taken very seriously.",
public=true,
},
WBQualityConstraintsDistinctValuesConstraintId={
value="Q21502410",
description="The item ID of the 'distinct values constraint' item, which, when used in a 'property constraint' statement on a property, indicates that all values for this property should differ from each other, or, equivalently, that each value for this property should be unique to one item.",
public=true,
},
WBQualityConstraintsMultiValueConstraintId={
value="Q21510857",
description="The item ID of the 'multi-value constraint' item, which, when used in a 'property constraint' statement on a property, indicates that a property should have more than one value per entity.",
public=true,
},
WBQualityConstraintsUsedAsQualifierConstraintId={
value="Q21510863",
description="The item ID of the 'used as qualifier constraint' item, which, when used in a 'property constraint' statement on a property, indicates that a property should only be used as a qualifier.",
public=true,
},
WBQualityConstraintsSingleValueConstraintId={
value="Q19474404",
description="The item ID of the 'single value constraint' item, which, when used in a 'property constraint' statement on a property, indicates that a property should have no more than one value per entity.",
public=true,
},
WBQualityConstraintsSymmetricConstraintId={
value="Q21510862",
description="The item ID of the 'symmetric constraint' item, which, when used in a 'property constraint' statement on a property, indicates that a referenced entity should refer back to the original entity.",
public=true,
},
WBQualityConstraintsTypeConstraintId={
value="Q21503250",
description="The item ID of the 'type constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the subject entity should have a certain type, with the relation and type given in the parameters.",
public=true,
},
WBQualityConstraintsValueTypeConstraintId={
value="Q21510865",
description="The item ID of the 'value type constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the referenced entity should have a certain type, with the class and relation given in the parameters.",
public=true,
},
WBQualityConstraintsInverseConstraintId={
value="Q21510855",
description="The item ID of the 'inverse constraint' item, which, when used in a 'property constraint' statement on a property, indicates that a referenced entity should refer back to the original entity with the property given in the parameters.",
public=true,
},
WBQualityConstraintsItemRequiresClaimConstraintId={
value="Q21503247",
description="The item ID of the 'item requires claim constraint' item, which, when used in a 'property constraint' statement on a property, indicates that an entity with a given statement should also have certain other statements.",
public=true,
},
WBQualityConstraintsValueRequiresClaimConstraintId={
value="Q21510864",
description="The item ID of the 'value requires claim constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the target/value entity of a given statement should have certain statements.",
public=true,
},
WBQualityConstraintsConflictsWithConstraintId={
value="Q21502838",
description="The item ID of the 'conflicts-with constraint' item, which, when used in a 'property constraint' statement on a property, indicates that an entity with a given statement should not have certain other statements.",
public=true,
},
WBQualityConstraintsOneOfConstraintId={
value="Q21510859",
description="The item ID of the 'one-of constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the value of a given statement should be one of a given set of values.",
public=true,
},
WBQualityConstraintsMandatoryQualifierConstraintId={
value="Q21510856",
description="The item ID of the 'mandatory qualifier' item, which, when used in a 'property constraint' statement on a property, indicates a given statement should have the given qualifier.",
public=true,
},
WBQualityConstraintsAllowedQualifiersConstraintId={
value="Q21510851",
description="The item ID of the 'allowed qualifiers constraint' item, which, when used in a 'property constraint' statement on a property, indicates a given statement should only have the given qualifiers.",
public=true,
},
WBQualityConstraintsRangeConstraintId={
value="Q21510860",
description="The item ID of the 'range constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the value of a given statement should be within a given range.",
public=true,
},
WBQualityConstraintsDifferenceWithinRangeConstraintId={
value="Q21510854",
description="The item ID of the 'difference within range constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the difference value of a given statement and of another given statement should be within a given range.",
public=true,
},
WBQualityConstraintsCommonsLinkConstraintId={
value="Q21510852",
description="The item ID of the 'commons link constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the value of a given statement should be a valid link to Wikimedia Commons.",
public=true,
},
WBQualityConstraintsContemporaryConstraintId={
value="Q25796498",
description="The item ID of the 'contemporary constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the entities which are linked through this property should be contemporary according to their start and end time values.",
public=true,
},
WBQualityConstraintsFormatConstraintId={
value="Q21502404",
description="The item ID of the 'format constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the value of a given statement should conform to a given pattern.",
public=true,
},
WBQualityConstraintsUsedForValuesOnlyConstraintId={
value="Q21528958",
description="The item ID of the 'used for values only constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the property should only be used for the main value of a statement, not for qualifiers or references.",
public=true,
},
WBQualityConstraintsUsedAsReferenceConstraintId={
value="Q21528959",
description="The item ID of the 'used as reference constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the property should only be used for references, not for the main value of a statement or for qualifiers.",
public=true,
},
WBQualityConstraintsNoBoundsConstraintId={
value="Q51723761",
description="The item ID of the 'no bounds constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the property should only be used with no bounded quantity as its value.",
public=true,
},
WBQualityConstraintsAllowedUnitsConstraintId={
value="Q21514353",
description="The item ID for the 'allowed units constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the value of a given statement should only have certain units.",
public=true,
},
WBQualityConstraintsSingleBestValueConstraintId={
value="Q52060874",
description="The item ID for the 'single best value constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the property should have a single, distinguished best value per item.",
public=true,
},
WBQualityConstraintsAllowedEntityTypesConstraintId={
value="Q52004125",
description="The item ID for the 'allowed entity types constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the property can be used only in certain entity types (e.g. only items).",
public=true,
},
WBQualityConstraintsCitationNeededConstraintId={
value="Q54554025",
description="The item ID of the 'citation needed constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the value of a given statement should have at least one reference for its values.",
public=true,
},
WBQualityConstraintsPropertyScopeConstraintId={
value="Q53869507",
description="The item ID of the 'property scope constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the property should only be used in some locations (main value, qualifiers, and/or references, but not all of them).",
public=true,
},
WBQualityConstraintsLexemeLanguageConstraintId={
value="Q55819106",
description="The item ID of the 'lexeme language constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the property should only be used in lexeme that have the given language set.",
public=true,
},
WBQualityConstraintsLabelInLanguageConstraintId={
value="Q108139345",
description="The item ID of the 'label in language constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the property should only be used in entities that have label in the given languages.",
public=true,
},
WBQualityConstraintsLanguagePropertyId={
value="P424",
description="The property ID of the 'Wikimedia language code' property (data type: string), which specifies the language code of a 'label in language' constraint.",
public=true,
},
WBQualityConstraintsClassId={
value="P2308",
description="The property ID of the 'class' property (data type: item), which specifies the class/type of a 'type' or 'value type' constraint.",
public=true,
},
WBQualityConstraintsRelationId={
value="P2309",
description="The property ID of the 'relation' property (data type: item), which specifies the relation ('instance of' or 'subclass of') of a 'type' or 'value type' constraint.",
public=true,
},
WBQualityConstraintsInstanceOfRelationId={
value="Q21503252",
description="The item ID of the 'instance of' item, which, when used in a 'relation' qualifier of a 'property constraint' statement on a property, indicates that the 'type' or 'value type' constraint defined in this statement demands an 'instance' relation.",
public=true,
},
WBQualityConstraintsSubclassOfRelationId={
value="Q21514624",
description="The item ID of the 'subclass of' item, which, when used in a 'relation' qualifier of a 'property constraint' statement on a property, indicates that the 'type' or 'value type' constraint defined in this statement demands a 'subclass' relation.",
public=true,
},
WBQualityConstraintsInstanceOrSubclassOfRelationId={
value="Q30208840",
description="The item ID of the 'instance or subclass of' item, which, when used in a 'relation' qualifier of a 'property constraint' statement on a property, indicates that the 'type' or 'value type' constraint defined in this statement demands a 'instance or subclass' relation.",
public=true,
},
WBQualityConstraintsPropertyId={
value="P2306",
description="The property ID of the 'property' property (data type: property), which specifies the property parameter of an 'inverse', 'item requires claim', 'value requires claim', 'difference within range', 'mandatory qualifiers', or 'qualifiers' constraint.",
public=true,
},
WBQualityConstraintsQualifierOfPropertyConstraintId={
value="P2305",
description="The property ID of the 'qualifier of property constraint' property (data type: item), which specifies the item parameter of an 'item requires claim', 'value requires claim', or 'one of' constraint.",
public=true,
},
WBQualityConstraintsMinimumQuantityId={
value="P2313",
description="The property ID of the 'minimum quantity' property (data type: quantity), which specifies the minimum quantity parameter of a 'range' or 'diff within range' constraint.",
public=true,
},
WBQualityConstraintsMaximumQuantityId={
value="P2312",
description="The property ID of the 'maximum quantity' property (data type: quantity), which specifies the maximum quantity parameter of a 'range' or 'diff within range' constraint.",
public=true,
},
WBQualityConstraintsMinimumDateId={
value="P2310",
description="The property ID of the 'minimum date' property (data type: point in time), which specifies the minimum date parameter of a 'range' or 'diff within range' constraint.",
public=true,
},
WBQualityConstraintsMaximumDateId={
value="P2311",
description="The property ID of the 'maximum date' property (data type: point in time), which specifies the maximum date parameter of a 'range' or 'diff within range' constraint.",
public=true,
},
WBQualityConstraintsNamespaceId={
value="P2307",
description="The property ID of the 'namespace' property (data type: string), which specifies the namespace parameter of a 'commons link' constraint.",
public=true,
},
WBQualityConstraintsFormatAsARegularExpressionId={
value="P1793",
description="The property ID of the 'format as a regular expression' property (data type: string), which specifies the format parameter of a 'format' constraint.",
public=true,
},
WBQualityConstraintsSyntaxClarificationId={
value="P2916",
description="The property ID of the 'syntax clarification' property (data type: monolingual text), which specifies human-readable explanations of a 'format' constraint. The syntax clarification is shown as part of the 'format' constraint violation message, clarifying the regular expression.",
public=true,
},
WBQualityConstraintsConstraintClarificationId={
value="P6607",
description="The property ID of the 'constraint clarification' property (data type: monolingual text), which specifies human-readable explanations of a constraint (of any constraint type). The constraint clarification is shown below the main constraint violation message.",
public=true,
},
WBQualityConstraintsConstraintScopeId={
value="P4680",
description="The property ID of the 'constraint scope' property (data type: item), which specifies the context(s) in which a constraint is checked.",
public=true,
},
WBQualityConstraintsConstraintEntityTypesId={
value="P4680",
description="The property ID of the property (data type: item) which specifies the entity types on which a constraint is checked. By default, this is the same as the 'constraint scope' property, but may also be set to a different one. The recognized values (items representing entity types) are the same as for the 'allowed entity types' constraint.",
public=true,
},
WBQualityConstraintsSeparatorId={
value="P4155",
description="The property ID of the 'separator' property (data type: property), which specifies the allowed separator(s) for “single value” and “single best value” constraints.",
public=true,
},
WBQualityConstraintsConstraintCheckedOnMainValueId={
value="Q46466787",
description="The item ID of the 'constraint checked on main value' item, which, when used in a 'constraint scope' qualifier of a 'property constraint' statement on a property, indicates that the constraint should be checked on the main snak of a statement.",
public=true,
},
WBQualityConstraintsConstraintCheckedOnQualifiersId={
value="Q46466783",
description="The item ID of the 'constraint checked on qualifiers' item, which, when used in a 'constraint scope' qualifier of a 'property constraint' statement on a property, indicates that the constraint should be checked on the qualifier snaks of a statement.",
public=true,
},
WBQualityConstraintsConstraintCheckedOnReferencesId={
value="Q46466805",
description="The item ID of the 'constraint checked on references' item, which, when used in a 'constraint scope' qualifier of a 'property constraint' statement on a property, indicates that the constraint should be checked on the reference snaks of a statement.",
public=true,
},
WBQualityConstraintsNoneOfConstraintId={
value="Q52558054",
description="The item ID of the 'none-of constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the value of a given statement should not be one of a given set of values.",
public=true,
},
WBQualityConstraintsIntegerConstraintId={
value="Q52848401",
description="The item ID of the 'integer constraint' item, which, when used in a 'property constraint' statement on a property, indicates that the value of a given statement should have only integer values.",
public=true,
},
WBQualityConstraintsWikibaseItemId={
value="Q29934200",
description="The item ID of the 'wikibase item' item, which represents the 'item' entity type for 'allowed entity types' constraints.",
public=true,
},
WBQualityConstraintsWikibasePropertyId={
value="Q29934218",
description="The item ID of the 'wikibase property' item, which represents the 'property' entity type for 'allowed entity types' constraints.",
public=true,
},
WBQualityConstraintsWikibaseLexemeId={
value="Q51885771",
description="The item ID of the 'wikibase lexeme' item, which represents the 'lexeme' entity type for 'allowed entity types' constraints.",
public=true,
},
WBQualityConstraintsWikibaseFormId={
value="Q54285143",
description="The item ID of the 'wikibase form' item, which represents the 'form' entity type for 'allowed entity types' constraints.",
public=true,
},
WBQualityConstraintsWikibaseSenseId={
value="Q54285715",
description="The item ID of the 'wikibase sense' item, which represents the 'sense' entity type for 'allowed entity types' constraints.",
public=true,
},
WBQualityConstraintsWikibaseMediaInfoId={
value="Q59712033",
description="The item ID of the 'wikibase MediaInfo' item, which represents the 'mediainfo' entity type for 'allowed entity types' constraints.",
public=true,
},
WBQualityConstraintsPropertyScopeId={
value="P5314",
description="The property ID of the 'property scope' property, which specifies the scope parameter of a 'scope' constraint.",
public=true,
},
WBQualityConstraintsAsMainValueId={
value="Q54828448",
description="The item ID of the 'as main value' item, which, when used in a 'property scope' parameter of a 'scope' constraint, signifies that a property may be used for the main snaks of statements.",
public=true,
},
WBQualityConstraintsAsQualifiersId={
value="Q54828449",
description="The item ID of the 'as qualifiers' item, which, when used in a 'property scope' parameter of a 'scope' constraint, signifies that a property may be used for qualifiers of statements.",
public=true,
},
WBQualityConstraintsAsReferencesId={
value="Q54828450",
description="The item ID of the 'as references' item, which, when used in a 'property scope' parameter of a 'scope' constraint, signifies that a property may be used for references of statements.",
public=true,
},
WBQualityConstraintsPropertiesWithViolatingQualifiers={
value={
},
description="Property IDs of statements whose qualifiers are expected to violate constraints, and where constraints checks are therefore skipped, as if the subject entity was an exception to the constraints defined on the qualifier properties.",
public=true,
},
WBQualityConstraintsStartTimePropertyIds={
value={
"P569","P571","P580","P585",},
description="Property IDs of statements whose minimum value defines the start time of an entity, which is used by 'contemporary' contraints.",
public=true,
},
WBQualityConstraintsEndTimePropertyIds={
value={
"P570","P576","P582","P585",},
description="Property IDs of statements whose maximum value defines the end time of an entity, which is used by 'contemporary' contraints.",
public=true,
},
WBQualityConstraintsYearUnit={
value="http://www.wikidata.org/entity/Q577",
description="The unit used for a quantity that represents a difference between two dates, in years. Note that for entity units, the full concept URI must be used, not just the entity ID.",
public=true,
},
WBQualityConstraintsSecondUnit={
value="http://www.wikidata.org/entity/Q11574",
description="The unit used for a quantity that represents a difference between two dates, in seconds. Note that for entity units, the full concept URI must be used, not just the entity ID.",
public=true,
},
WBQualityConstraintsEnableSuggestionConstraintStatus={
value=false,
description="Whether to enable the 'constraint suggestion' constraint status or not. This is a temporary configuration that will be removed once constraint suggestions are permanently enabled on Wikidata.",
public=true,
},
WBQualityConstraintsFormatCheckerShellboxRatio={
value=0,
description="Float value between 0 and 1 determining ratio of requests made to shellbox (vs. WDQS) in FormatChecker in evaluating regexes. Zero disables requesting to shellbox (all going to WDQS) and one means all requests will go to shellbox.",
public=true,
},
WBQualityConstraintsShowConstraintViolationToNonLoggedInUsers={
value=true,
description="Whether or not show the constraint violation indicator to users that are not logged in.",
public=true,
},
},
composer="wikibase/constraints",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityConstraints",
},
WikibaseStatementUpdater={
name="WikibaseStatementUpdater",
author="Niklas Laxström",
version="2.0.0+20240310",
url="https://www.mediawiki.org/wiki/Extension:WikibaseStatementUpdater",
descriptionmsg="wsu-desc",
namemsg="wsu-extension-name",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.41.0",
},
config={
WSUClientConfig={
value={
key="",
secret="",
},
},
},
ServiceWiringFiles={
"src/ServiceWiring.php",},
ExtensionMessagesFiles={
WikibaseStatementUpdaterAlias="WikibaseStatementUpdater.alias.php",
},
APIModules={
wikibasestatementupdater={
class="MediaWiki\\Extension\\WikibaseStatementUpdater\\WikibaseStatementUpdaterActionApi",
services={
"DBLoadBalancerFactory",},
},
},
SpecialPages={
WikibaseStatementUpdater={
factory="MediaWiki\\Extension\\WikibaseStatementUpdater\\WikibaseStatementUpdaterSpecialPage::factory",
},
},
HookHandlers={
WsuHookHandler={
class="MediaWiki\\Extension\\WikibaseStatementUpdater\\Hooks",
},
},
Hooks={
LoadExtensionSchemaUpdates={
handler="WsuHookHandler",
},
},
JobClasses={
WSUUpdateJob="MediaWiki\\Extension\\WikibaseStatementUpdater\\Updater\\UpdateJob",
},
composer="mediawiki/wikibase-statement-updater",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseStatementUpdater",
},
["Wikidata.org"]={
name="Wikidata.org",
version="1.0.0",
author="[https://www.mediawiki.org/wiki/User:Bene* Bene*]",
url="https://github.com/wmde/Wikidata.org",
descriptionmsg="wikidata-org-desc",
["license-name"]="GPL-2.0-or-later",
type="wikibase",
requires={
MediaWiki="&gt;= 1.42",
},
Hooks={
BeforePageDisplay="main",
ApiMaxLagInfo="main",
SkinAddFooterLinks="main",
},
HookHandlers={
main={
class="WikidataOrg\\Hooks",
},
},
config={
WikidataOrgQueryServiceMaxLagFactor={
value=3600,
},
},
composer="wikibase/wikidata.org",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Wikidata.org",
},
WikidataPageBanner={
name="WikidataPageBanner",
namemsg="wikidatapagebanner-extensionname",
version="0.0.3",
author={
"Sumit Asthana",},
url="https://www.mediawiki.org/wiki/Extension:WikidataPageBanner",
descriptionmsg="wikidatapagebanner-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
ExtensionMessagesFiles={
WikidataPageBannerMagic="WikidataPageBanner.i18n.magic.php",
},
QUnitTestModule={
localBasePath="tests/qunit",
remoteExtPath="WikidataPageBanner/tests/qunit",
scripts={
"ext.WikidataPageBanner.positionBanner/test_ext.WikidataPageBanner.positionBanner.js",},
dependencies={
"ext.WikidataPageBanner.positionBanner",},
},
Hooks={
BeforePageDisplay="WikidataPageBannerHooks",
ParserOutputPostCacheTransform="WikidataPageBannerHooks",
OutputPageParserOutput="WikidataPageBannerHooks",
SiteNoticeAfter="WikidataPageBannerHooks",
ParserFirstCallInit="WikidataPageBannerHooks",
},
HookHandlers={
WikidataPageBannerHooks={
class="MediaWiki\\Extension\\WikidataPageBanner\\Hooks",
services={
},
},
},
config={
WPBEnablePageImagesBanners={
value=false,
},
WPBEnableHeadingOverride={
value=true,
},
WPBDisplaySubtitleAfterBannerSkins={
value={
"minerva",},
},
WPBEnableDefaultBanner={
value=false,
},
WPBImage={
value="",
},
WPBNamespaces={
value={
0,},
},
WPBDisabledNamespaces={
value={
},
},
WPBEnableMainPage={
value=false,
},
WPBStandardSizes={
value={
640,1280,2560,},
},
WPBBannerProperty={
value="",
},
WPBSkinDisabled={
value={
},
},
},
ConfigRegistry={
wikidatapagebanner="GlobalVarConfig::newInstance",
},
composer="mediawiki/wikidata-page-banner",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikidataPageBanner",
},
WikimediaApiPortalOAuth={
name="WikimediaApiPortalOAuth",
["license-name"]="GPL-2.0-or-later",
author={
"Dejan Savuljesku","Robert Vogel",},
url="https://www.mediawiki.org/wiki/Extension:WikimediaApiPortalOAuth",
descriptionmsg="wikimediaapiportaloauth-desc",
requires={
MediaWiki="&gt;= 1.42",
},
ExtensionMessagesFiles={
WikimediaApiPortalOAuthAlias="WikimediaApiPortalOAuth.alias.php",
},
AvailableRights={
"wikimediaapiportaloauth-manage-oauth",},
GroupPermissions={
user={
["wikimediaapiportaloauth-manage-oauth"]=true,
},
},
SpecialPages={
AppManagement="MediaWiki\\Extension\\WikimediaApiPortalOAuth\\Special\\AppManagement",
},
config={
WikimediaApiPortalOAuthMetaApiURL={
value="https://meta.wikimedia.org/w/api.php",
description="URL to api.php on Meta",
},
WikimediaApiPortalOAuthMetaRestURL={
value="https://meta.wikimedia.org/w/rest.php",
description="URL to rest.php on Meta",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikimediaApiPortalOAuth",
},
WikimediaBadges={
name="WikimediaBadges",
author={
"[https://www.mediawiki.org/wiki/User:Bene* Bene*]","[https://www.mediawiki.org/wiki/User:Hoo_man Marius Hoch]",},
url="https://www.mediawiki.org/wiki/Extension:WikimediaBadges",
descriptionmsg="wikimediabadges-desc",
["license-name"]="GPL-2.0-or-later",
type="wikibase",
requires={
MediaWiki="&gt;= 1.42",
},
Hooks={
BeforePageDisplay="beforepagedisplay",
WikibaseClientSiteLinksForItem="WikimediaBadges\\WikibaseClientSiteLinksForItemHandler::provideSiteLinks",
},
HookHandlers={
beforepagedisplay={
class="WikimediaBadges\\BeforePageDisplayHookHandler",
},
},
config={
WikimediaBadgesTopicsMainCategoryProperty={
value="P910",
},
WikimediaBadgesCategoryRelatedToListProperty={
value="P1754",
},
WikimediaBadgesCommonsCategoryProperty={
value="P373",
},
},
composer="wikibase/wikimedia-badges",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikimediaBadges",
},
WikimediaCampaignEvents={
name="WikimediaCampaignEvents",
namemsg="wikimediacampaignevents-extensionname",
author={
"[https://meta.wikimedia.org/wiki/Campaigns/Foundation_Product_Team WMF Campaigns Team]",},
descriptionmsg="wikimediacampaignevents-desc",
url="https://www.mediawiki.org/wiki/Extension:WikimediaCampaignEvents",
["license-name"]="GPL-2.0-or-later",
type="specialpage",
requires={
MediaWiki="&gt;= 1.42",
extensions={
CampaignEvents="*",
},
},
config={
WikimediaCampaignEventsFluxxOauthUrl={
description="Oauth URL for the Fluxx API",
value="https://wmf.fluxx.io/oauth/token",
},
WikimediaCampaignEventsFluxxBaseUrl={
description="Base URL of the Fluxx API",
value="https://wmf.fluxx.io/api/rest/v2/",
},
WikimediaCampaignEventsFluxxClientID={
description="Client ID to use for the Fluxx API.",
value=nil,
},
WikimediaCampaignEventsFluxxClientSecret={
description="Client secret to use for the Fluxx API.",
value=nil,
},
},
ServiceWiringFiles={
"src/ServiceWiring.php",},
HookHandlers={
SchemaChanges={
class="MediaWiki\\Extension\\WikimediaCampaignEvents\\Hooks\\Handlers\\SchemaChangesHandler",
},
EventRegistrationFormHandler={
class="MediaWiki\\Extension\\WikimediaCampaignEvents\\Hooks\\Handlers\\EventRegistrationFormHandler",
services={
"WikimediaCampaignEventsGrantsStore","WikimediaCampaignEventsGrantIDLookup",},
},
EventDetailsHandler={
class="MediaWiki\\Extension\\WikimediaCampaignEvents\\Hooks\\Handlers\\EventDetailsHandler",
services={
"WikimediaCampaignEventsGrantsStore",},
},
},
Hooks={
LoadExtensionSchemaUpdates="SchemaChanges",
CampaignEventsRegistrationFormLoad="EventRegistrationFormHandler",
CampaignEventsRegistrationFormSubmit="EventRegistrationFormHandler",
CampaignEventsGetEventDetails="EventDetailsHandler",
},
RestRoutes={
{
path="/wikimediacampaignevents/v0/event_registration/{id}/grant_id",
method="PUT",
class="MediaWiki\\Extension\\WikimediaCampaignEvents\\Rest\\UpdateGrantIdHandler",
services={
"CampaignEventsEventLookup","WikimediaCampaignEventsGrantIDLookup","CampaignEventsPermissionChecker","WikimediaCampaignEventsGrantsStore",},
},{
path="/wikimediacampaignevents/v0/event_registration/{id}/grant_id",
method="DELETE",
class="MediaWiki\\Extension\\WikimediaCampaignEvents\\Rest\\DeleteGrantIdHandler",
services={
"CampaignEventsEventLookup","CampaignEventsPermissionChecker","WikimediaCampaignEventsGrantsStore",},
},{
path="/wikimediacampaignevents/v0/event_registration/{id}/grant_id",
method="GET",
class="MediaWiki\\Extension\\WikimediaCampaignEvents\\Rest\\GetGrantIdHandler",
services={
"CampaignEventsEventLookup","CampaignEventsPermissionChecker","WikimediaCampaignEventsGrantsStore",},
},},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikimediaCampaignEvents",
},
WikimediaEditorTasks={
name="WikimediaEditorTasks",
version="0.1.0",
author={
"Michael Holloway",},
url="https://www.mediawiki.org/wiki/Extension:WikimediaEditorTasks",
descriptionmsg="wikimediaeditortasks-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
ServiceWiringFiles={
"ServiceWiring.php",},
ConfigRegistry={
WikimediaEditorTasks="GlobalVarConfig::newInstance",
},
config={
WikimediaEditorTasksUserCountsCluster={
value=false,
description="Database cluster to use for storing user count data. False means the cluster of the current wiki will be used.",
},
WikimediaEditorTasksUserCountsDatabase={
value=false,
description="Database to use for storing user count data. False means use the database of the current wiki. To use a table prefix, use '&lt;database&gt;-&lt;prefix'&gt;' format.",
},
WikimediaEditorTasksEnabledCounters={
value={
},
description="Counter classes to enable, with associated configuration. Fields:\\n* class: the fully qualified class name\\n* counter_key: the count property name associated with the counter, for storing in the DB and surfacing in the MediaWiki API\n\nExample:\n{\n\t\"class\": \"MediaWiki\\Extension\\WikimediaEditorTasks\\WikipediaAppDescriptionEditCounter\",\n\t\"counter_key\": \"app_description_edits\",\n\t}",
},
WikimediaEditorTasksEnableEditStreaks={
value=false,
description="Whether to track and report edit streaks.",
},
WikimediaEditorTasksEnableRevertCounts={
value=false,
description="Whether to track and report revert counts.",
},
},
APIMetaModules={
wikimediaeditortaskscounts={
class="MediaWiki\\Extension\\WikimediaEditorTasks\\Api\\ApiQueryWikimediaEditorTasksCounts",
services={
"WikimediaEditorTasksCounterDao","WikimediaEditorTasksConfig",},
},
},
Hooks={
RollbackComplete="main",
LoadExtensionSchemaUpdates="schema",
PageSaveComplete="main",
ListDefinedTags="main",
ChangeTagsListActive="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\WikimediaEditorTasks\\Hooks",
},
schema={
class="MediaWiki\\Extension\\WikimediaEditorTasks\\SchemaHooks",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikimediaEditorTasks",
},
WikimediaEvents={
name="WikimediaEvents",
version="1.2.0",
author={
"Matthew Flaschen","Ori Livneh","Benny Situ",},
url="https://www.mediawiki.org/wiki/Extension:WikimediaEvents",
descriptionmsg="wikimediaevents-desc",
["license-name"]="GPL-2.0-or-later",
requires={
MediaWiki="&gt;= 1.42",
extensions={
EventLogging="*",
EventBus="*",
},
},
HookHandlers={
main={
class="WikimediaEvents\\WikimediaEventsHooks",
services={
"AccountCreationLogger",},
},
VectorInstrumentation={
class="WikimediaEvents\\VectorPrefDiffInstrumentation",
},
PrefInstrumentation={
class="WikimediaEvents\\PrefUpdateInstrumentation",
},
BlockMetricsHooks={
class="WikimediaEvents\\BlockMetrics\\BlockMetricsHooks",
services={
"UserFactory","EventBus.EventFactory",},
},
EditPageHooks={
class="WikimediaEvents\\EditPage\\EditPageHooks",
services={
"PermissionManager",},
},
IPReputationHooks={
class="WikimediaEvents\\IPReputationHooks",
services={
"MainConfig","FormatterFactory","HttpRequestFactory","MainWANObjectCache","UserFactory","UserGroupManager","EventBus.EventFactory","EventLogging.EventSubmitter",},
},
},
Hooks={
BeforeInitialize="main",
BeforePageDisplay="main",
PageSaveComplete={
"main","IPReputationHooks",},
LocalUserCreated="IPReputationHooks",
PreferencesFormPreSave="VectorInstrumentation",
SaveUserOptions="PrefInstrumentation",
ArticleViewHeader="main",
ListDefinedTags="main",
ChangeTagsListActive="main",
XAnalyticsSetHeader="WikimediaEvents\\WikimediaEventsHooks::onXAnalyticsSetHeader",
SpecialSearchGoResult="main",
SpecialSearchResults="main",
RecentChange_save="main",
ResourceLoaderRegisterModules="main",
MakeGlobalVariablesScript="main",
PermissionErrorAudit="BlockMetricsHooks",
["EditPage::showReadOnlyForm:initial"]="EditPageHooks",
AuthManagerLoginAuthenticateAudit="main",
},
APIModules={
wikimediaeventsblockededit={
class="WikimediaEvents\\ApiWikimediaEventsBlockedEdit",
services={
},
},
},
SpecialPages={
WikimediaDebug={
class="WikimediaEvents\\SpecialWikimediaDebug",
services={
"ExtensionRegistry",},
},
},
ExtensionMessagesFiles={
WikimediaEventsAlias="WikimediaEvents.alias.php",
},
attributes={
EventLogging={
Schemas={
DesktopWebUIActionsTracking="/analytics/legacy/desktopwebuiactionstracking/1.4.3",
EditAttemptStep="/analytics/legacy/editattemptstep/2.0.2",
VisualEditorFeatureUse="/analytics/legacy/visualeditorfeatureuse/1.1.0",
SearchSatisfaction="/analytics/legacy/searchsatisfaction/1.4.0",
SpecialMuteSubmit="/analytics/legacy/specialmutesubmit/1.0.0",
MobileWebUIActionsTracking="/analytics/legacy/mobilewebuiactionstracking/1.3.4",
WMDEBannerEvents="/analytics/legacy/wmdebannerevents/1.0.0",
WMDEBannerInteractions="/analytics/legacy/wmdebannerinteractions/1.0.0",
WMDEBannerSizeIssue="/analytics/legacy/wmdebannersizeissue/1.0.0",
WikidataCompletionSearchClicks="/analytics/legacy/wikidatacompletionsearchclicks/1.0.0",
Test="/analytics/legacy/test/1.2.0",
UniversalLanguageSelector="/analytics/legacy/universallanguageselector/1.4.0",
},
},
VisualEditor={
PluginModules={
"ext.wikimediaEvents.visualEditor",},
},
},
QUnitTestModule={
localBasePath="tests/qunit/ext.wikimediaEvents/",
remoteExtPath="WikimediaEvents/tests/qunit/ext.wikimediaEvents/",
scripts={
"clickTracking.test.js","clientError.test.js",},
dependencies={
"ext.wikimediaEvents",},
},
config={
WMEReadingDepthSamplingRate={
value=0,
},
WMEDesktopWebUIActionsTracking={
value=0,
},
WMEDesktopWebUIActionsTrackingOversampleLoggedInUsers={
value=true,
},
WMEWebUIScrollTrackingSamplingRate={
value=0,
},
WMEWebUIScrollTrackingSamplingRateAnons={
value=0,
},
WMEWebUIScrollTrackingTimeToWaitBeforeScrollUp={
value=0,
},
WMEMobileWebUIActionsTracking={
value=0,
},
WMEStatsdBaseUri={
value=false,
},
WMEEditCampaigns={
value={
},
},
WMESchemaEditAttemptStepSamplingRate={
value="0.0625",
},
WMESchemaVisualEditorFeatureUseSamplingRate={
value="0.0625",
description="The default sampling rate for the VisualEditorFeatureUse instruments. This should only ever differ from the rate above when that is set to 1. See https://phabricator.wikimedia.org/T312016 for detail.",
},
DTSchemaEditAttemptStepSamplingRate={
value=0,
description="Rate at which to sample DiscussionTools sessions for instrumentation; overrides the rate above if set to any number other than 0",
},
DTSchemaEditAttemptStepOversample={
value=false,
description="Oversample EditAttemptStep logging for DiscussionTools sessions; distinct from rate tuning, as it'll flag the events as being oversampled",
},
MFSchemaEditAttemptStepOversample={
value=false,
},
WMEWikidataCompletionSearchClicks={
value={
},
},
WMEClientErrorIntakeURL={
value=false,
},
WMESessionTick={
value=false,
},
WMEVectorPrefDiffSalt={
value=nil,
description="@var string Used as a salt in VectorPrefDiffInstrumentation to hash the user id. Set this in `wmf-config/PrivateSettings`.",
},
WMEPageSchemaSplitTestSamplingRatio={
value=0,
description="If set to 1, 100% of pages will be sampled. Half of those (.5) will receive the new treatment. See https://phabricator.wikimedia.org/T301584 and associated tasks for detail.",
},
WMEPageSchemaSplitTestBuckets={
value={
"control","treatment",},
description="Pages are bucketed in [0, .5) for control and [.5, 1) for treatment. If a page is sampled and bucketed in treatment, it will contain the new changes. Otherwise, it will show no changes. See https://phabricator.wikimedia.org/T301584 and associated tasks for detail.",
},
WMEPageSchemaSplitTestTreatment={
value="treatment",
description="The name of the bucket where pages see the new treatment. See https://phabricator.wikimedia.org/T301584 and associated tasks for detail.",
},
WMEWikimediaDebugBackend={
value=false,
description="Debug server to use in WikimediaDebug cookies (false to disable the feature).",
},
WMENewPHPVersion={
value="",
description="The php version we're moving to.",
},
WMENewPHPSamplingRate={
value=0,
description="The sampling rate of all users we want to direct to the new PHP version.",
},
WMEGeoIP2Path={
value="/usr/share/GeoIP/GeoIP2-Country.mmdb",
description="The path to the GeoIP2 country database file. For Wikimedia production, suggested value is '/usr/share/GeoIP/GeoIP2-Country.mmdb'. Null means that we make no attempt to use GeoIP2 to look up country codes for an IP address.",
},
WikimediaEventsIPoidUrl={
value=nil,
description="URL to access IPoid service",
},
WikimediaEventsIPoidRequestTimeoutSeconds={
description="Number of seconds to use for timeout and connectTimeout options to HTTP request factory when calling IPoid",
value=2,
},
WikimediaEventsIPReputationAccountAgeThreshold={
description="Number (in days) to use as a cut off for recording IP reputation data on edits. User accounts older than this number of days will not be included in logging of IP reputation data on edit.",
value=90,
},
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
AuthManagerAutoConfig={
preauth={
AccountCreationEventProvider={
class="WikimediaEvents\\AccountCreationEventProvider",
services={
"AccountCreationLogger",},
sort=0,
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikimediaEvents",
},
WikimediaIncubator={
name="Wikimedia Incubator",
version="6.3.0",
author={
"SPQRobin","Hydriz","Jon Harald Søby",},
["license-name"]="GPL-2.0-or-later",
url="https://www.mediawiki.org/wiki/Extension:WikimediaIncubator",
descriptionmsg="wminc-desc",
requires={
MediaWiki="&gt;= 1.42.0",
},
type="other",
config={
Pref={
value="incubatortestwiki",
},
Projects={
value={
p={
name="Wikipedia",
dbsuffix="wiki",
wikitag="wikipedia",
sister=false,
},
t={
name="Wiktionary",
dbsuffix="wiktionary",
wikitag="wiktionary",
sister=false,
},
b={
name="Wikibooks",
dbsuffix="wikibooks",
wikitag="wikibooks",
sister=false,
},
q={
name="Wikiquote",
dbsuffix="wikiquote",
wikitag="wikiquote",
sister=false,
},
n={
name="Wikinews",
dbsuffix="wikinews",
wikitag="wikinews",
sister=false,
},
y={
name="Wikivoyage",
dbsuffix="wikivoyage",
wikitag="wikivoyage",
sister=false,
},
s={
name="Wikisource",
dbsuffix="wikisource",
wikitag="wikisource",
sister=true,
},
v={
name="Wikiversity",
dbsuffix="wikiversity",
wikitag="wikiversity",
sister=true,
},
},
},
MultilingualProjects={
value={
meta="Meta-Wiki",
commons="Wikimedia Commons",
species="Wikispecies",
mediawiki="MediaWiki",
wikidata="Wikidata",
wikifunctions="Wikifunctions",
},
},
ProjectSite={
value={
name="Incubator",
short="inc",
},
},
TestWikiNamespaces={
value={
0,1,10,11,14,15,828,829,},
},
LangCodeLength={
value=12,
},
PseudoCategoryNSes={
value={
"Incubator","Help","Users","Maintenance","Files",},
},
ExistingWikis={
value=nil,
},
ClosedWikis={
value=false,
},
},
config_prefix="wminc",
GroupPermissions={
["test-sysop"]={
delete=true,
undelete=true,
deletedhistory=true,
block=true,
blockemail=true,
rollback=true,
suppressredirect=true,
autopatrol=true,
},
["*"]={
viewuserlang=false,
},
sysop={
viewuserlang=true,
},
},
PrivilegedGroups={
"test-sysop",},
AddGroups={
bureaucrat={
"test-sysop",},
},
RemoveGroups={
bureaucrat={
"test-sysop",},
},
AvailableRights={
"viewuserlang",},
SpecialPages={
ViewUserLang={
class="MediaWiki\\Extension\\WikimediaIncubator\\SpecialViewUserLang",
services={
"UserNamePrefixSearch","UserNameUtils","UserOptionsLookup","LanguageNameUtils",},
},
MyWiki="MediaWiki\\Extension\\WikimediaIncubator\\SpecialMyWiki",
RandomByTest={
class="MediaWiki\\Extension\\WikimediaIncubator\\SpecialRandomByTest",
services={
"DBLoadBalancerFactory","NamespaceInfo","UserOptionsLookup",},
},
SearchWiki={
class="MediaWiki\\Extension\\WikimediaIncubator\\SpecialSearchWiki",
services={
"LanguageNameUtils","LanguageFactory",},
},
IncubatorFirstSteps={
class="MediaWiki\\Extension\\WikimediaIncubator\\SpecialIncubatorFirstSteps",
services={
"LanguageNameUtils",},
},
},
ExtensionMessagesFiles={
WikimediaIncubatorAlias="WikimediaIncubator.alias.php",
WikimediaIncubatorMagic="WikimediaIncubator.i18n.magic.php",
},
AuthManagerAutoConfig={
secondaryauth={
WikimediaIncubatorSecondaryAuthenticationProvider={
class="MediaWiki\\Extension\\WikimediaIncubator\\WikimediaIncubatorSecondaryAuthenticationProvider",
sort=0,
services={
"UserOptionsManager",},
},
},
},
Hooks={
ContributionsToolLinks="main",
GetPreferences="main",
UserGetDefaultOptions="main",
LoadUserOptions="main",
MagicWordwgVariableIDs="main",
ParserGetVariableValueSwitch="main",
getUserPermissionsErrors="main",
MovePageIsValidMove="main",
ChangesListSpecialPageQuery="recentchanges",
SpecialRecentChangesPanel="recentchanges",
ShowMissingArticle="main",
EditFormPreloadText="main",
MediaWikiPerformAction="main",
TitleIsAlwaysKnown="main",
ParserFirstCallInit="main",
PageContentLanguage="main",
ArticleParserOptions="main",
MakeGlobalVariablesScript="main",
SpecialListusersHeaderForm="listusers",
SpecialListusersQueryInfo="listusers",
SpecialListusersHeader="listusers",
SpecialSearchCreateLink="main",
SpecialSearchPowerBox="main",
SpecialSearchSetupEngine="main",
GetDefaultSortkey="main",
BeforePageDisplay="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\WikimediaIncubator\\WikimediaIncubator",
services={
"LanguageFactory",},
},
recentchanges={
class="MediaWiki\\Extension\\WikimediaIncubator\\TestWikiRC",
},
listusers={
class="MediaWiki\\Extension\\WikimediaIncubator\\ListUsersTestWiki",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikimediaIncubator",
},
WikimediaMaintenance={
name="WikimediaMaintenance",
url="https://www.mediawiki.org/wiki/Extension:WikimediaMaintenance",
["license-name"]="GPL-2.0-or-later",
descriptionmsg="wikimediamaintenance-desc",
requires={
MediaWiki="&gt;= 1.42",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikimediaMaintenance",
},
WikimediaMessages={
name="WikimediaMessages",
author={
"Tim Starling","Siebrand Mazeland","James D. Forrester","Multichill",},
url="https://www.mediawiki.org/wiki/Extension:WikimediaMessages",
descriptionmsg="wikimediamessages-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42.0",
},
RawHtmlMessages={
"wikimedia-copyright","mediawiki.org-copyright","wikimedia-commons-copyright","wikidata-copyright","wikifunctions-site-footer-copyright","wikifunctions-edit-copyrightwarning-function","wikifunctions-edit-copyrightwarning-implementation","wikimedia-feedback-termsofuse",},
callback="MediaWiki\\Extension\\WikimediaMessages\\Hooks::onRegistration",
HookHandlers={
WikimediaMessagesHooks={
class="MediaWiki\\Extension\\WikimediaMessages\\Hooks",
factory="MediaWiki\\Extension\\WikimediaMessages\\Hooks::factory",
services={
"LinkRenderer","MainConfig","PermissionManager","UserOptionsLookup",},
},
WikimediaMessagesCampaignEventsHooks={
class="MediaWiki\\Extension\\WikimediaMessages\\WikimediaMessagesCampaignEventsHooks",
},
},
Hooks={
BeforePageDisplay={
handler="WikimediaMessagesHooks",
},
MessageCacheFetchOverrides={
handler="WikimediaMessagesHooks",
},
SkinCopyrightFooter={
handler="WikimediaMessagesHooks",
},
EditPageCopyrightWarning={
handler="WikimediaMessagesHooks",
},
DiscussionToolsTermsOfUseMessages="MediaWiki\\Extension\\WikimediaMessages\\Hooks::onDiscussionToolsTermsOfUseMessages",
FlowTermsOfUseMessages="MediaWiki\\Extension\\WikimediaMessages\\Hooks::onFlowTermsOfUseMessages",
SkinAddFooterLinks={
handler="WikimediaMessagesHooks",
},
TorBlockBlockedMsg="MediaWiki\\Extension\\WikimediaMessages\\Hooks::onTorBlockBlockedMsg",
["UploadForm:initial"]={
handler="WikimediaMessagesHooks",
},
ResourceLoaderRegisterModules={
handler="WikimediaMessagesHooks",
},
SpecialPageBeforeExecute={
handler="WikimediaMessagesHooks",
},
CampaignEventsGetPolicyMessageForRegistration={
handler="WikimediaMessagesCampaignEventsHooks",
},
CampaignEventsGetPolicyMessageForRegistrationForm={
handler="WikimediaMessagesCampaignEventsHooks",
},
},
ConfigRegistry={
["wikimedia-messages"]="GlobalVarConfig::newInstance",
},
config={
WikimediaStylesSkins={
value={
"vector-2022","minerva",},
description="Define skins that should get Wikimedia styles. This currently corresponds to skins that support the night (dark mode) theme.",
},
WikimediaMessagesLicensing={
value="standard",
description="Style of licensing messages to display, one of 'standard', 'commons', 'mediawiki', 'wikidata', 'wikinews', 'wikifunctions'",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikimediaMessages",
},
Wikisource={
name="Wikisource",
author={
"Thomas Pellissier Tanon","Sam Wilson",},
url="https://www.mediawiki.org/wiki/Extension:Wikisource",
descriptionmsg="wikisource-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
Hooks={
SidebarBeforeOutput="SidebarBeforeOutput",
ArticleViewHeader="ArticleViewHeader",
["EditPage::showEditForm:initial"]="EditPageShowEditFormInitial",
GetPreferences="GetPreferences",
WikibaseClientSiteLinksForItem="MediaWiki\\Extension\\Wikisource\\WikibaseClientSiteLinksForItemHandler::provideSiteLinks",
},
HookHandlers={
SidebarBeforeOutput={
class="MediaWiki\\Extension\\Wikisource\\HookHandler\\SidebarBeforeOutputHandler",
services={
"MainConfig","ContentLanguage",},
optional_services={
"GadgetsRepo",},
},
ArticleViewHeader={
class="MediaWiki\\Extension\\Wikisource\\HookHandler\\ArticleViewHeaderHandler",
services={
"MainConfig","ContentLanguage",},
},
EditPageShowEditFormInitial={
class="MediaWiki\\Extension\\Wikisource\\HookHandler\\EditPageShowEditFormInitialHandler",
services={
"MainConfig","UserOptionsLookup",},
},
GetPreferences={
class="MediaWiki\\Extension\\Wikisource\\HookHandler\\GetPreferencesHandler",
},
},
config={
WikisourceWikibaseEditionProperty={
value="P747",
},
WikisourceWikibaseEditionOfProperty={
value="P629",
},
WikisourceWsExportUrl={
value="https://ws-export.wmcloud.org",
},
WikisourceEnableOcr={
value=true,
},
WikisourceOcrUrl={
value="https://ocr.wmcloud.org/",
},
WikisourceHttpProxy={
value=false,
description="HTTP proxy URL to use for requests to external APIs.",
},
WikisourceTranskribusModels={
value={
banwikisource={
htr={
"bali",},
line=45612,
},
bnwikisource={
htr={
"ben-print","dev",},
},
cswikisource={
htr={
"cs-space","cs-no-space",},
},
dawikisource={
htr={
"da-goth","da-goth-print","da-gjen",},
},
dewikisource={
htr={
"ger-hd-m1","ger-15",},
},
elwikisource={
htr={
"el-ligo","el-print",},
},
enwikisource={
htr={
"en-b2022","en-handwritten-m3","en-print-m1","en-typewriter",},
},
eswikisource={
htr={
"es-md","es-redonda-extended-v1_2",},
},
etwikisource={
htr={
"et-court",},
},
fiwikisource={
htr={
"fin",},
},
frwikisource={
htr={
"fr-m1",},
},
hewikisource={
htr={
"he-dijest",},
},
huwikisource={
htr={
"hu-hand-19",},
},
itwikisource={
htr={
"it-hd-m1",},
},
lawikisource={
htr={
"la-caro","la-med","la-neo",},
},
nlwikisource={
htr={
"de-17","nl-1605","nl-mount","nl-news",},
},
nowikisource={
htr={
"no-1820","no-1874",},
},
plwikisource={
htr={
"pl-m2",},
},
ptwikisource={
htr={
"pt-m1","pt-17","pt-hd",},
},
rowikisource={
htr={
"ro-print",},
},
ruwikisource={
htr={
"rus-hd-2","rus-print",},
},
sawikisource={
htr={
"san",},
},
skwikisource={
htr={
"sk-hand",},
},
slwikisource={
htr={
"sl-hand-18",},
},
svwikisource={
htr={
"swe-3","swe-lion-i",},
},
ukwikisource={
htr={
"uk-20th-print","uk-generic-handwriting-1","uk-wikisource-print",},
},
yiwikisource={
htr={
"yi-hd",},
},
},
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Wikisource",
},
Wikispeech={
name="Wikispeech",
version="0.1.10",
author={
"Sebastian Berlin","André Costa","Igor Leturia","Karl Wettin",},
url="https://www.mediawiki.org/wiki/Extension:Wikispeech",
namemsg="wikispeech",
descriptionmsg="wikispeech-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.39",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
SpecialPages={
EditLexicon={
class="MediaWiki\\Wikispeech\\Specials\\SpecialEditLexicon",
services={
"ConfigFactory","LanguageNameUtils","Wikispeech.ConfiguredLexiconStorage","Wikispeech.SpeechoidConnector",},
},
},
ExtensionMessagesFiles={
WikispeechAlias="Wikispeech.alias.php",
},
QUnitTestModule={
localBasePath=".",
remoteExtPath="Wikispeech",
packageFiles={
"tests/qunit/index.js","tests/qunit/ext.wikispeech.test.util.js","tests/qunit/ext.wikispeech.highlighter.test.js","tests/qunit/ext.wikispeech.player.test.js","tests/qunit/ext.wikispeech.selectionPlayer.test.js","tests/qunit/ext.wikispeech.storage.test.js","tests/qunit/ext.wikispeech.transcriptionPreviewer.test.js","modules/ext.wikispeech.transcriptionPreviewer.js","modules/ext.wikispeech.util.js","tests/qunit/ext.wikispeech.ui.test.js",},
dependencies={
"ext.wikispeech",},
},
HookHandlers={
ApiHooks={
class="MediaWiki\\Wikispeech\\Hooks\\ApiHooks",
services={
"ConfigFactory","UserOptionsLookup","MainWANObjectCache","LanguageFactory","PermissionManager","HttpRequestFactory",},
},
DatabaseHooks={
class="MediaWiki\\Wikispeech\\Hooks\\DatabaseHooks",
},
LexiconHooks={
class="MediaWiki\\Wikispeech\\Hooks\\LexiconArticleEditHook",
},
},
Hooks={
LoadExtensionSchemaUpdates="DatabaseHooks",
ApiBeforeMain="ApiHooks",
BeforePageDisplay="ApiHooks",
ResourceLoaderGetConfigVars="ApiHooks",
GetPreferences="ApiHooks",
ApiCheckCanExecute="ApiHooks",
["SkinTemplateNavigation::Universal"]="ApiHooks",
CustomEditor="LexiconHooks",
},
ConfigRegistry={
wikispeech="GlobalVarConfig::newInstance",
},
JobClasses={
flushUtterancesByExpirationDateOnFile="\\MediaWiki\\Wikispeech\\Utterance\\FlushUtterancesByExpirationDateOnFileJob",
flushUtterancesFromStoreByExpiration="\\MediaWiki\\Wikispeech\\Utterance\\FlushUtterancesFromStoreByExpirationJob",
flushUtterancesFromStoreByLanguageAndVoice="\\MediaWiki\\Wikispeech\\Utterance\\FlushUtterancesFromStoreByLanguageAndVoiceJob",
flushUtterancesFromStoreByPageId="\\MediaWiki\\Wikispeech\\Utterance\\FlushUtterancesFromStoreByPageIdJob",
},
config={
WikispeechSpeechoidUrl={
description="The URL to use for the Speechoid service. ",
value="",
},
WikispeechSymbolSetUrl={
description={
"The URL to use for the Symbol set service. ","Defaults to WikispeechSpeechoidUrl at port 8771 in case of falsy value.",},
value="",
},
WikispeechSpeechoidHaproxyQueueUrl={
description={
"The URL to use for the Speechoid service queue. ","Defaults to WikispeechSpeechoidUrl at port 10001 in case of falsy value.",},
value="",
},
WikispeechSpeechoidHaproxyStatsUrl={
description={
"The URL to use for monitoring the Speechoid service queue. ","This should be the base URL to the server, the code will append ","the path e.g. /stats;csv;norefresh","Defaults to WikispeechSpeechoidUrl at port 10002 in case of falsy value.",},
value="",
},
WikispeechSpeechoidHaproxyFrontendPxName={
description="Speechoid HAProxy frontend proxy name.",
value="frontend_1",
},
WikispeechSpeechoidHaproxyFrontendSvName={
description="Speechoid HAProxy frontend service name.",
value="FRONTEND",
},
WikispeechSpeechoidHaproxyBackendPxName={
description="Speechoid HAProxy backend proxy name.",
value="backend_1",
},
WikispeechSpeechoidHaproxyBackendSvName={
description="Speechoid HAProxy backend service name.",
value="server_1",
},
WikispeechSpeechoidHaproxyOverloadFactor={
description={
"If factor multiplied with maximum number of concurrent connections ","is great than number of connections in queue,","then the queue is considered overloaded. ","This might result in something along the way of a warning to the user, ","not being able to synthesize new speech, or similar.",},
value=2,
},
WikispeechSpeechoidResponseTimeoutSeconds={
description={
"Default number of seconds to await an HTTP response from Speechoid. ","Falsy value defaults to MediaWiki default.",},
value=nil,
},
WikispeechListenMaximumInputCharacters={
description="Maximum number of characters in the input (a segment) sent to the Speechoid service.",
value=2048,
},
WikispeechRemoveTags={
description={
"Map of HTML tags that should be removed completely, i.e. ","including any content. Keys are tag names and the values ","determine whether a tag should be removed, as follows:\n","* If &lt;code&gt;true&lt;/code&gt;, remove all tags of that type.\n","* If an array, remove tags whose class matches any of the ","strings in the array.\n* If false, tags of that type will ","not be removed. This can be used in ''LocalSetting.php'' to ","override default criteria.",},
value={
span="mw-editsection",
table=true,
sup="reference",
div={
"thumb","toc",},
},
},
WikispeechSegmentBreakingTags={
description={
"HTML tags that will break text in segments. This ensure that, ","for example a header text without punctuation suffix will not ","be merged to the same segment as the text content of a ","preceding paragraph.",},
value={
"h1","h2","h3","h4","h5","h6","p","br","li",},
},
WikispeechNamespaces={
description={
"List of the [https://www.mediawiki.org/wiki/Namespaces namespace] ","indices, for which Wikispeech is activated.",},
value={
0,},
},
WikispeechKeyboardShortcuts={
description={
"Shortcuts for Wikispeech commands. Each shortcut defines the ","key pressed (as key code&lt;ref&gt;https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes&lt;/ref&gt;) ","and any modifier keys (ctrl, alt or shift).",},
value={
playStop={
key=13,
modifiers={
"alt","shift",},
},
skipAheadSentence={
key=39,
modifiers={
"alt","shift",},
},
skipBackSentence={
key=37,
modifiers={
"alt","shift",},
},
skipAheadWord={
key=40,
modifiers={
"alt","shift",},
},
skipBackWord={
key=38,
modifiers={
"alt","shift",},
},
},
},
WikispeechSkipBackRewindsThreshold={
description={
"If an utterance has played longer than this (in seconds), ","skipping back will rewind to the start of the current ","utterance, instead of skipping to previous utterance.",},
value=3,
},
WikispeechHelpPage={
description={
"Help page for Wikispeech. If defined, a button that takes the ","user here is added next to the player buttons.",},
value="Help:Wikispeech",
},
WikispeechFeedbackPage={
description={
"Feedback page for Wikispeech. If defined, a button that takes ","the user here is added next to the player buttons.",},
value="Wikispeech feedback",
},
WikispeechContentSelector={
description={
"The selector for the element that contains the text of the page. ","Used internally, but may change with MediaWiki version.",},
value="#mw-content-text",
},
WikispeechVoices={
description={
"Registered voices per language. ","System default voice falls back on the first registered voice for a language ","if not defined by Speechoid.",},
value={
ar={
"ar-nah-hsmm",},
en={
"dfki-spike-hsmm","cmu-slt-hsmm",},
sv={
"stts_sv_nst-hsmm",},
},
},
WikispeechMinimumMinutesBetweenFlushExpiredUtterancesJobs={
description={
"Minimum number of minutes between queuing jobs that ","automatically flushes expired utterances from the utterance store. ","The job will be queued during creation of a new utterance, ","given that enough minutes has passed since the previous queuing of the job. ","Disable automatic flushing by setting value to a falsy value (0, false, null, etc). ","To avoid running the flush job too often, see the MW job documentation: ","https://www.mediawiki.org/wiki/Manual:Job_queue#Job_execution_on_page_requests",},
value=30,
},
WikispeechUtteranceTimeToLiveDays={
description={
"Minimum number of days for an utterance to live before being ","automatically flushed from the utterance store. ","More or less the cache flush setting for synthesized text. ","Setting this value too low will save disk space but cause frequently ","requested text segments to be re-synthesized more often with a CPU cost. ","Setting this value too high will block improvements to the voice synthesis. ","Setting this value to 0 will in effect turn off the cache ","and thus flush all utterances as soon as possible.",},
value=31,
},
WikispeechUtteranceFileBackendName={
description={
"FileBackend group defined in LocalSettings.php used for utterance audio and metadata files. ","If not defined in LocalSettings.php, a FSBackend will be created that work against ","a temporary directory. See log warnings for exact path.",},
value="",
},
WikispeechUtteranceFileBackendContainerName={
description="Container name used in FileBackend for utterance audio and metadata files.",
value="wikispeech_utterances",
},
WikispeechUtteranceUseSwiftFileBackendExpiring={
description={
"In case of the file backend is Swift and this value is set true,","the Wikispeech will set the 'X-Delete-After' header when creating files in Swift ","and the utterance flushing mechanism will not invoke delete command in Swift. ","I.e. the actual flushing of utterances is moved to the Swift layer. ","In order for this to make sense, the Swift file backend must be set to accept ","these headers. For more information on how to do this see ","https://docs.openstack.org/swift/latest/overview_expiring_objects.html","This feature will be officially supported by Wikispeech as of ","the first LTS release of MediaWiki after 1.35 (i.e. probably 1.39).",},
value=false,
},
WikispeechPronunciationLexiconConfiguration={
description={
"Controls how the pronunciation lexicon is persisted and accessed. ","'Speechoid' must be a part of the chain in order to make an impact to the speech synthesis. ","Possible values are: ","'Speechoid', access only the underlying lexicon in Speechoid. No revision history. ","'Wiki+Speechoid', access the lexicon stored as articles in NS_PRONUNCIATION_LEXICON for revision history and passed down to Speechoid. ","'Wiki', access only the lexicon stored as articles in NS_PRONUNCIATION_LEXICON. ","'Cache', transient storage in MediaWiki WAN cache. For development only. ","'Cache+Speechoid', transient storage in WAN cache, passed down to Speechoid. For development only.",},
value="Wiki+Speechoid",
},
WikispeechProducerMode={
description={
"Run Wikispeech in producer mode. This allows other ","wikis (consumers) to use this wiki to generate ","utterances. When an API requests includes the ","parameter `consumer-url`, page content is retrieved ","from the consumer wiki on that URL.",},
value=false,
},
WikispeechListenDoJournalMetrics={
description="Whether or not to log usage metrics for TTS API",
value=true,
},
WikispeechListenMetricsJournalFile={
description={
"Location of file in which to log usage metrics from TTS API.","Defaults to UploadDirectory/wikispeechListenMetrics.log",},
value="",
},
},
DefaultUserOptions={
wikispeechEnable=true,
wikispeechShowPlayer=false,
wikispeechVoiceAr="",
wikispeechVoiceEn="",
wikispeechVoiceSv="",
wikispeechSpeechRate=1,
},
APIModules={
["wikispeech-segment"]={
class="\\MediaWiki\\Wikispeech\\Api\\ApiWikispeechSegment",
services={
"MainWANObjectCache","HttpRequestFactory","RevisionStore","ConfigFactory",},
},
["wikispeech-listen"]={
class="\\MediaWiki\\Wikispeech\\Api\\ApiWikispeechListen",
services={
"MainWANObjectCache","RevisionStore","HttpRequestFactory",},
},
},
AvailableRights={
"wikispeech-listen","wikispeech-read-lexicon","wikispeech-edit-lexicon",},
GroupPermissions={
["*"]={
["wikispeech-listen"]=true,
["wikispeech-read-lexicon"]=true,
},
["wikispeech-edit-lexicon"]={
["wikispeech-edit-lexicon"]=true,
},
},
namespaces={
{
id=5772,
constant="NS_PRONUNCIATION_LEXICON",
name="Pronunciation_lexicon",
protection="wikispeech-edit-lexicon",
},{
id=5773,
constant="NS_PRONUNCIATION_LEXICON_TALK",
name="Pronunciation_lexicon_talk",
},},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Wikispeech",
},
WikispeechSpeechDataCollector={
name="Wikispeech Speech Data Collector",
version="0.1.0",
author={
"Sebastian Berlin","André Costa","Karl Wettin",},
url="https://www.mediawiki.org/wiki/Extension:WikispeechSpeechDataCollector",
namemsg="wikispeech-sdc",
descriptionmsg="wikispeech-sdc-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.35.3",
},
SpecialPages={
RecordSpeech="MediaWiki\\WikispeechSpeechDataCollector\\Specials\\SpecialRecordSpeech",
},
ExtensionMessagesFiles={
WikispeechSpeechDataCollectorAlias="WikispeechSpeechDataCollector.alias.php",
WikispeechSpeechDataCollectorNamespaces="WikispeechSpeechDataCollector.namespaces.php",
},
QUnitTestModule={
localBasePath=".",
remoteExtPath="WikispeechSpeechDataCollector",
packageFiles={
"tests/qunit/ext.wikispeech-sdc.recorder.test.js","modules/ext.wikispeech-sdc.recorder.js",},
},
Hooks={
LoadExtensionSchemaUpdates="db",
ApiBeforeMain="api",
MediaWikiServices="mcr",
},
HookHandlers={
api={
class="MediaWiki\\WikispeechSpeechDataCollector\\Hooks\\ApiHooks",
services={
"ConfigFactory",},
},
db={
class="MediaWiki\\WikispeechSpeechDataCollector\\Hooks\\DatabaseHooks",
},
mcr={
class="MediaWiki\\WikispeechSpeechDataCollector\\Hooks\\McrHooks",
},
},
ConfigRegistry={
["wikispeech-sdc"]="GlobalVarConfig::newInstance",
},
APIModules={
["wikispeech-sdc-crud"]={
class="\\MediaWiki\\WikispeechSpeechDataCollector\\Api\\ApiCrud",
services={
"DBLoadBalancer","RevisionStore",},
},
},
AvailableRights={
"wikispeech-sdc-record","wikispeech-sdc-speech-recording",},
GroupPermissions={
["*"]={
["wikispeech-sdc-record"]=true,
["wikispeech-sdc-speech-recording"]=true,
},
},
namespaces={
{
id=5770,
constant="NS_SPEECH_RECORDING",
name="Speech_recording",
protection="wikispeech-sdc-speech-recording",
},{
id=5771,
constant="NS_SPEECH_RECORDING_TALK",
name="Speech_recording_talk",
},},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WikispeechSpeechDataCollector",
},
Wikistories={
name="Wikistories",
namemsg="wikistories-extensionname",
descriptionmsg="wikistories-extensiondesc",
["license-name"]="MIT",
url="https://www.mediawiki.org/wiki/Extension:Wikistories",
requires={
MediaWiki="&gt;= 1.42.0",
},
ContentHandlers={
story={
class="MediaWiki\\Extension\\Wikistories\\StoryContentHandler",
services={
"Wikistories.StoryConverter","Wikistories.StoryValidator","Wikistories.StoryRenderer","Wikistories.TrackingCategories","TrackingCategories","JobQueueGroup",},
},
},
SpecialPages={
StoryBuilder={
class="MediaWiki\\Extension\\Wikistories\\SpecialStoryBuilder",
services={
"WikiPageFactory","PageStore","UserOptionsLookup","WatchlistManager","WatchedItemStore","MainConfig","Wikistories.Cache","PermissionManager",},
},
},
RecentChangesFlags={
["wikistories-edit"]={
letter="wikistories-recentchangesflags-letter",
title="wikistories-recentchangesflags-title",
legend="wikistories-recentchangesflags-legend",
class="wikistories-edit",
grouping="any",
},
},
JobClasses={
ArticleChangedJob={
class="MediaWiki\\Extension\\Wikistories\\Jobs\\ArticleChangedJob",
services={
"RevisionLookup","Wikistories.Analyzer","WikiPageFactory","Wikistories.PageLinksSearch","MainConfig",},
},
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Wikistories\\Hooks",
services={
"MainConfig",},
},
RecentChangesPropagationHooks={
class="MediaWiki\\Extension\\Wikistories\\Hooks\\RecentChangesPropagationHooks",
services={
"RevisionStore","MainConfig","LinkRenderer","DBLoadBalancer","UserFactory",},
},
EchoNotificationsHandlers={
class="MediaWiki\\Extension\\Wikistories\\Hooks\\EchoNotificationsHandlers",
},
PageDisplayHandlers={
class="MediaWiki\\Extension\\Wikistories\\Hooks\\PageDisplayHandlers",
},
BetaFeaturesHandlers={
class="MediaWiki\\Extension\\Wikistories\\Hooks\\BetaFeaturesHandlers",
services={
"MainConfig",},
},
},
Hooks={
GetBetaFeaturePreferences="BetaFeaturesHandlers",
BeforePageDisplay="PageDisplayHandlers",
LoginFormValidErrorMessages="main",
PageSaveComplete={
"main","RecentChangesPropagationHooks",},
EnhancedChangesListModifyBlockLineData="RecentChangesPropagationHooks",
EnhancedChangesListModifyLineData="RecentChangesPropagationHooks",
OldChangesListRecentChangesLine="RecentChangesPropagationHooks",
ChangesListSpecialPageStructuredFilters="RecentChangesPropagationHooks",
PageDeleteComplete="main",
PageUndeleteComplete="main",
GetPreferences="main",
BeforeCreateEchoEvent="EchoNotificationsHandlers",
EchoGetBundleRules="EchoNotificationsHandlers",
ParserCacheSaveComplete="main",
ArticlePurge="main",
ActionModifyFormFields="main",
},
ServiceWiringFiles={
"includes/ServiceWiring.php",},
ExtensionMessagesFiles={
WikistoriesAliasSpecial="Wikistories.alias.special.php",
WikistoriesNamespaces="Wikistories.i18n.namespaces.php",
},
config={
WikistoriesMinFrames={
description="Minimum number of frames a story needs to have to be valid.",
value=2,
},
WikistoriesMaxFrames={
description="Maximum number of frames a story needs to have to be valid.",
value=10,
},
WikistoriesMaxTextLength={
description="Maximum number of characters a story frame can have.",
value=1000,
},
WikistoriesUnmodifiedTextThreshold={
description="Percentage threshold of unmodified text allowed before showing final edit warning",
value=0.7,
},
WikistoriesDiscoveryMode={
description="Defines how is the discovery module activated. 'beta' means it is a beta feature. 'public' means it is available by default to everyone, including anons. Any other value means the discovery feature is disabled. ",
value="off",
},
WikistoriesNotifyAboutStoryMaintenance={
description="Send notifications to story watchers when stories need to be updated.",
value=false,
},
WikistoriesCommonsDomain={
description="Sets the Commons API domain. Defaults to production value, use 'commons.wikimedia.beta.wmflabs.org' for beta cluster",
value="commons.wikimedia.org",
},
WikistoriesRestDomain={
description="Sets the REST API domain. Defaults to null, in which case the domain of the current site will be used. Otherwise use 'wikipedia.org' for full article text when running locally",
value=nil,
},
},
DefaultUserOptions={
["wikistories-pref-showdiscovery"]=true,
},
namespaces={
{
id=1704,
constant="NS_STORY",
name="Story",
content=true,
defaultcontentmodel="story",
protection="edit-story",
},{
id=1705,
constant="NS_STORY_TALK",
name="Story_Talk",
content=false,
defaultcontentmodel="wikitext",
},},
AvailableRights={
"edit-story",},
GroupPermissions={
user={
["edit-story"]=true,
},
},
RestRoutes={
{
path="/wikistories/v0/page/{title}/stories",
method="GET",
class="MediaWiki\\Extension\\Wikistories\\RelatedStoriesRestRoutes",
services={
"TitleFormatter","TitleParser","PageStore","Wikistories.Cache",},
},},
TrackingCategories={
"wikistories-no-image-category","wikistories-no-related-article","wikistories-outdated-text-category",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Wikistories",
},
WindowsAzureStorage={
name="WindowsAzureStorage",
version="1.2.0",
author={
"[http://www.hallowelt.biz Hallo Welt! Medienwerkstatt GmbH]","Markus Glaser","Robert Vogel",},
url="https://www.mediawiki.org/wiki/Extension:WindowsAzureStorage",
descriptionmsg="windowsazurestorage-desc",
type="other",
requires={
MediaWiki="&gt;= 1.34.0",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/WindowsAzureStorage",
},
Workflows={
name="Workflows",
version="3.0.0-alpha",
["license-name"]="GPL-3.0-only",
author={
"[https://www.hallowelt.com Hallo Welt! GmbH]",},
url="https://en.wiki.bluespice.com/wiki/Reference:Workflows",
descriptionmsg="workflows-desc",
requires={
MediaWiki="&gt;= 1.39.0",
extensions={
Forms="&gt;= 1.2.0",
OOJSPlus="&gt;= 2.0.0",
},
},
attributes={
BlueSpiceFoundation={
PermissionRegistry={
["workflows-view"]={
type="global",
roles={
"reader",},
},
["workflows-execute"]={
type="global",
roles={
"admin","reviewer","editor",},
},
["workflows-admin"]={
type="global",
roles={
"admin",},
},
},
},
Workflows={
LogicObjects={
ActivityRegistry={
user_vote={
class="\\MediaWiki\\Extension\\Workflows\\Activity\\VoteActivity\\UserVoteActivity",
services={
"MWStake.Notifier",},
},
group_vote={
class="\\MediaWiki\\Extension\\Workflows\\Activity\\VoteActivity\\GroupVoteActivity",
services={
"MWStake.Notifier","WorkflowUtilGroupDataProvider","UserFactory",},
},
user_feedback={
class="\\MediaWiki\\Extension\\Workflows\\Activity\\FeedbackActivity\\UserFeedbackActivity",
},
group_feedback={
class="\\MediaWiki\\Extension\\Workflows\\Activity\\FeedbackActivity\\GroupFeedbackActivity",
services={
"WorkflowUtilGroupDataProvider",},
},
send_mail={
class="\\MediaWiki\\Extension\\Workflows\\Activity\\SendMail\\SendMailActivity",
services={
"Emailer","MainConfig",},
},
custom_form={
class="\\MediaWiki\\Extension\\Workflows\\Activity\\CustomForm\\CustomFormActivity",
},
edit_request={
class="\\MediaWiki\\Extension\\Workflows\\Activity\\EditRequest\\EditRequestActivity",
},
edit_page={
class="\\MediaWiki\\Extension\\Workflows\\Activity\\EditPageActivity",
services={
"TitleFactory","UserFactory","PermissionManager",},
},
set_template_param={
class="\\MediaWiki\\Extension\\Workflows\\Activity\\SetTemplateParamsActivity",
services={
"MWStakeWikitextParserFactory","TitleFactory","RevisionStore","UserFactory","PermissionManager",},
},
},
DecisionRegistry={
},
},
DefinitionRepositories={
wikipage={
class="\\MediaWiki\\Extension\\Workflows\\Definition\\Repository\\WikiPageDefinitionRepository",
services={
"DBLoadBalancer","RevisionStore",},
},
["workflow-file"]={
factory="\\MediaWiki\\Extension\\Workflows\\Definition\\Repository\\WorkflowFileDefinitionRepository::factory",
services={
"MainConfig","HookContainer",},
},
},
WorkflowListeners={
},
WorkflowDefinitions={
["group-feedback"]="Workflows/workflow/GroupFeedback.bpmn",
["user-feedback"]="Workflows/workflow/UserFeedback.bpmn",
},
PropertyValidators={
["existing-user"]={
class="\\MediaWiki\\Extension\\Workflows\\PropertyValidator\\ExistingUser",
services={
"UserFactory",},
},
["can-execute-task"]={
class="\\MediaWiki\\Extension\\Workflows\\PropertyValidator\\CanExecuteTask",
services={
"UserFactory","PermissionManager",},
},
["existing-title"]={
class="\\MediaWiki\\Extension\\Workflows\\PropertyValidator\\ExistingTitle",
services={
"TitleFactory",},
},
required={
class="\\MediaWiki\\Extension\\Workflows\\PropertyValidator\\Required",
},
["email-recipient"]={
class="\\MediaWiki\\Extension\\Workflows\\PropertyValidator\\EmailRecipient",
services={
"UserFactory",},
},
},
TriggerTypes={
edit={
factory="\\MediaWiki\\Extension\\Workflows\\Trigger\\PageRelatedTrigger::factory",
services={
"TitleFactory",},
},
create={
factory="\\MediaWiki\\Extension\\Workflows\\Trigger\\PageRelatedTrigger::factory",
services={
"TitleFactory",},
},
manual={
factory="\\MediaWiki\\Extension\\Workflows\\Trigger\\PageRelatedTrigger::factory",
services={
"TitleFactory",},
},
time={
factory="\\MediaWiki\\Extension\\Workflows\\Trigger\\TimeBasedTrigger::factory",
services={
"TitleFactory",},
},
},
TriggerEditors={
["page-action"]={
supports={
"edit","create",},
module="ext.workflows.trigger.editors",
class="workflows.ui.trigger.PageRelated",
},
manual={
supports={
"manual",},
module="ext.workflows.trigger.editors",
class="workflows.ui.trigger.Manual",
},
},
EditorPluginModules={
"ext.workflows.editor.customElements",},
},
BlueSpiceDiscovery={
AttentionIndicatorRegistry={
workflows="\\MediaWiki\\Extension\\Workflows\\AttentionIndicator\\Workflows::factory",
},
},
UnifiedTaskOverview={
AttentionIndicatorCollectionRegistry={
"workflows",},
},
Notifications={
Events={
["workflows-event-task-assigned"]={
spec={
class="MediaWiki\\Extension\\Workflows\\Event\\TaskAssignedEvent",
},
buckets={
"personal",},
},
["workflows-event-task-due-date-proximity"]={
spec={
class="MediaWiki\\Extension\\Workflows\\Event\\DueDateProximityEvent",
},
buckets={
"personal",},
},
["workflows-event-workflow-ended"]={
spec={
class="MediaWiki\\Extension\\Workflows\\Event\\WorkflowEndedEvent",
},
buckets={
"personal",},
},
["workflows-event-workflow-aborted"]={
spec={
class="MediaWiki\\Extension\\Workflows\\Event\\WorkflowAbortedEvent",
},
buckets={
"personal",},
},
["workflows-event-vote"]={
spec={
class="MediaWiki\\Extension\\Workflows\\Event\\VoteEvent",
},
buckets={
"personal",},
},
["workflows-event-vote-delegate"]={
spec={
class="MediaWiki\\Extension\\Workflows\\Event\\VoteDelegateEvent",
},
buckets={
"personal",},
},
["workflows-event-feedback-task-assigned"]={
spec={
class="MediaWiki\\Extension\\Workflows\\Event\\FeedbackTaskAssignedEvent",
},
buckets={
"personal",},
},
},
},
},
callback="MediaWiki\\Extension\\Workflows\\Extension::register",
ServiceWiringFiles={
"includes/ServiceWiring.php",},
Hooks={
LoadExtensionSchemaUpdates={
"runDatabaseUpdates",},
BeforePageDisplay="addBootstrap",
ContentHandlerDefaultModelFor="setContentModels",
["SkinTemplateNavigation::Universal"]="addActions",
UnifiedTaskOverviewGetTaskDescriptors="addUTOUserActivities",
MWStakeRunJobsTriggerRegisterHandlers="MediaWiki\\Extension\\Workflows\\MediaWiki\\Hook\\MWStakeRunJobsTriggerRegisterHandlers\\AddBackgroundProcess::callback",
BlueSpiceDiscoveryTemplateDataProviderAfterInit="discovery-skin",
PageDeleteComplete="abortWorkflows",
MWStakeCommonUIRegisterSkinSlotComponents="common-user-interface",
CodeEditorGetPageLanguage="MediaWiki\\Extension\\Workflows\\MediaWiki\\Hook\\IntegrateCodeEditor::onCodeEditorGetPageLanguage",
PageSaveComplete="triggerWorkflows",
},
HookHandlers={
runDatabaseUpdates={
class="MediaWiki\\Extension\\Workflows\\MediaWiki\\Hook\\RunDatabaseUpdates",
},
addBootstrap={
class="MediaWiki\\Extension\\Workflows\\MediaWiki\\Hook\\AddBootstrap",
},
setContentModels={
class="MediaWiki\\Extension\\Workflows\\MediaWiki\\Hook\\SetContentModels",
services={
"WorkflowTriggerRepo",},
},
addActions={
class="MediaWiki\\Extension\\Workflows\\MediaWiki\\Hook\\AddActions",
services={
"PermissionManager",},
},
addUTOUserActivities={
class="MediaWiki\\Extension\\Workflows\\MediaWiki\\Hook\\AddUnifiedTaskOverviewUserActivities",
services={
"WorkflowsStateStore","WorkflowFactory","PermissionManager","SpecialPageFactory",},
},
abortWorkflows={
class="MediaWiki\\Extension\\Workflows\\MediaWiki\\Hook\\AbortWorkflowsOnDelete",
services={
"WorkflowFactory","WorkflowsStateStore",},
},
["discovery-skin"]={
class="MediaWiki\\Extension\\Workflows\\MediaWiki\\HookHandler\\DiscoverySkin",
},
["common-user-interface"]={
class="\\MediaWiki\\Extension\\Workflows\\MediaWiki\\HookHandler\\CommonUserInterface",
services={
"SpecialPageFactory","WorkflowTriggerRepo",},
},
triggerWorkflows={
class="MediaWiki\\Extension\\Workflows\\MediaWiki\\Hook\\TriggerWorkflows",
services={
"WorkflowTriggerRunner","WorkflowLogger",},
},
},
ContentHandlers={
BPMN="MediaWiki\\Extension\\Workflows\\MediaWiki\\ContentHandler\\BPMNHandler",
["workflow-triggers"]="MediaWiki\\Extension\\Workflows\\MediaWiki\\ContentHandler\\TriggerDefinitionHandler",
},
GroupPermissions={
user={
["workflows-view"]=true,
["workflows-admin"]=false,
},
sysop={
["workflows-execute"]=true,
["workflows-admin"]=true,
},
review={
["workflows-execute"]=true,
},
},
AvailableRights={
"workflows-view","workflows-execute","workflows-admin",},
RestRoutes={
{
path="/workflow/list",
method="GET",
class="MediaWiki\\Extension\\Workflows\\Rest\\ListHandler",
services={
"WorkflowFactory","WorkflowsStateStore","WorkflowSerializer","TitleFactory","LinkRenderer","UserFactory",},
},{
path="/workflow/abort/{id}",
method="POST",
class="MediaWiki\\Extension\\Workflows\\Rest\\AbortHandler",
services={
"WorkflowFactory",},
},{
path="/workflow/restore/{id}",
method="POST",
class="MediaWiki\\Extension\\Workflows\\Rest\\RestoreHandler",
services={
"WorkflowFactory",},
},{
path="/workflow/start/{repository}/{id}",
method="POST",
class="MediaWiki\\Extension\\Workflows\\Rest\\StartHandler",
services={
"WorkflowFactory",},
},{
path="/workflow/dry_start/{repository}/{id}",
method="POST",
class="MediaWiki\\Extension\\Workflows\\Rest\\DryStartHandler",
services={
"WorkflowFactory",},
},{
path="/workflow/complete_task/{id}/{taskId}",
method="POST",
class="MediaWiki\\Extension\\Workflows\\Rest\\CompleteHandler",
services={
"WorkflowFactory",},
},{
path="/workflow/retrieve/{id}",
method="GET",
class="MediaWiki\\Extension\\Workflows\\Rest\\RetrieveHandler",
services={
"WorkflowFactory",},
},{
path="/workflow/definition/list",
method="GET",
class="MediaWiki\\Extension\\Workflows\\Rest\\DefinitionListHandler",
services={
"DefinitionRepositoryFactory",},
},{
path="/workflow/definition/details/{repo}/{definition}",
method="GET",
class="MediaWiki\\Extension\\Workflows\\Rest\\DefinitionDetailsHandler",
services={
"DefinitionRepositoryFactory",},
},{
path="/workflow/triggers/{key}",
method="GET",
class="MediaWiki\\Extension\\Workflows\\Rest\\RetrieveTriggersHandler",
services={
"WorkflowTriggerRepo",},
},{
path="/workflow/triggers/of_type/{key}",
method="GET",
class="MediaWiki\\Extension\\Workflows\\Rest\\RetrieveTriggersHandler",
args={
true,},
services={
"WorkflowTriggerRepo","TitleFactory",},
},{
path="/workflow/triggers/{key}",
method="DELETE",
class="MediaWiki\\Extension\\Workflows\\Rest\\DeleteTriggerHandler",
services={
"WorkflowTriggerRepo","PermissionManager",},
},{
path="/workflow/triggers",
method="POST",
class="MediaWiki\\Extension\\Workflows\\Rest\\PersistTriggersHandler",
services={
"WorkflowTriggerRepo","PermissionManager",},
},{
path="/workflow/trigger_types",
method="GET",
class="MediaWiki\\Extension\\Workflows\\Rest\\RetrieveTriggerTypesHandler",
},},
LogTypes={
"ext-workflows",},
LogActionsHandlers={
["ext-workflows/*"]="LogFormatter",
},
SpecialPages={
WorkflowsOverview={
class="\\MediaWiki\\Extension\\Workflows\\MediaWiki\\Special\\WorkflowOverview",
},
},
ExtensionMessagesFiles={
WorkflowsOverviewAlias="languages/SpecialWorkflowOverview.alias.php",
},
DefaultUserOptions={
["echo-subscriptions-email-workflow-cat"]=1,
},
Actions={
editxml="\\MediaWiki\\Extension\\Workflows\\MediaWiki\\Action\\EditDiagramXmlAction",
},
composer="mediawiki/workflows",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/Workflows",
},
XAnalytics={
name="XAnalytics",
["license-name"]="GPL-2.0-or-later",
url="https://wikitech.wikimedia.org/wiki/X-Analytics",
descriptionmsg="xanalytics-desc",
author={
"Ori Livneh",},
version="0.3",
type="other",
requires={
MediaWiki="&gt;= 1.42",
},
Hooks={
BeforePageDisplay="main",
APIAfterExecute="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\XAnalytics\\XAnalytics",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/XAnalytics",
},
XSL={
name="XSLExtension",
author="Greg Rundlett https://equality-tech.com",
version="2.0.0",
url="https://www.mediawiki.org/wiki/Extension:XSL",
descriptionmsg="xsl-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
Hooks={
ParserFirstCallInit="XSLExtensionHooks::onParserFirstCallInit",
},
ExtensionMessagesFiles={
XSLExtensionMagic="XSLExtension.i18n.magic.php",
},
requires={
MediaWiki="&gt;= 1.29.0",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/XSL",
},
XenForoAuth={
name="XenForoAuth",
version="0.1.0",
author="Florian Schmidt",
url="https://www.mediawiki.org/wiki/Extension:XenForoAuth",
descriptionmsg="xenforoauth-desc",
["license-name"]="MIT",
type="auth",
requires={
MediaWiki="&gt;= 1.39.0",
},
ConfigRegistry={
xenforoauth="GlobalVarConfig::newInstance",
},
Hooks={
LoadExtensionSchemaUpdates="XenForoAuth\\Hooks::onLoadExtensionSchemaUpdates",
AuthChangeFormFields="XenForoAuth\\Hooks::onAuthChangeFormFields",
},
AuthManagerAutoConfig={
primaryauth={
["XenForoAuth\\Auth\\XenForoPrimaryAuthenticationProvider"]={
class="XenForoAuth\\Auth\\XenForoPrimaryAuthenticationProvider",
sort=102,
},
},
},
config={
XenForoAuthBaseUrl="",
XenForoAuthClientId="",
XenForoAuthClientSecret="",
XenForoAuthButtonIcon="'images/xenForo_icon.png'",
XenForoAuthAutoCreate=false,
},
composer="mediawiki/xenforoauth",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/XenForoAuth",
},
YetAnotherKeywords={
name="YetAnotherKeywords",
version="0.4.0",
author="[http://jehy.ru/index.en.html Jehy]",
["license-name"]="MIT",
url="https://www.mediawiki.org/wiki/Extension:YetAnotherKeywords",
descriptionmsg="yetanotherkeywords-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.29.0",
},
Hooks={
ParserFirstCallInit="YetAnotherKeywords::onParserFirstCallInit",
OutputPageBeforeHTML="YetAnotherKeywords::insertMetaKeywords",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/YetAnotherKeywords",
},
YotpoReviews={
name="YotpoReviews",
namemsg="yotporeviews-extensionname",
version="0.4",
author="[https://www.mediawiki.org/wiki/User:Sophivorus Felipe Schenone]",
url="https://www.mediawiki.org/wiki/Extension:YotpoReviews",
descriptionmsg="yotporeviews-desc",
["license-name"]="GPL-3.0-only",
type="parserhook",
requires={
MediaWiki="&gt;= 1.31.0",
},
Hooks={
ParserFirstCallInit="YotpoReviews::onParserFirstCallInit",
SkinAfterContent="YotpoReviews::onSkinAfterContent",
},
config={
YotpoAppKey="your-yotpo-app-key",
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/YotpoReviews",
},
YouTube={
name="YouTube",
version="1.9.3",
author={
"Przemek Piotrowski",},
url="https://www.mediawiki.org/wiki/Extension:YouTube",
descriptionmsg="youtube-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.34.0",
},
Hooks={
ParserFirstCallInit="YouTube::registerTags",
},
config={
YouTubeEnableLazyLoad=false,
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/YouTube",
},
CLDR={
name="CLDR",
version="4.14.0",
author={
"Niklas Laxström","Siebrand Mazeland","Ryan Kaldari","Sam Reed",},
requires={
MediaWiki="&gt;= 1.35.0",
},
url="https://www.mediawiki.org/wiki/Extension:CLDR",
descriptionmsg="cldr-desc",
["license-name"]="GPL-2.0-or-later",
Hooks={
LanguageGetTranslatedLanguageNames="main",
GetHumanTimestamp="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\CLDR\\Hooks",
},
},
composer="mediawiki/cldr",
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/cldr",
},
Example={
name="examples",
author={
"Timo Tijhof","Kaldari","Ævar Arnfjörð Bjarmason","Daniel Kinzler","Derick Alangi",},
url="https://www.mediawiki.org/wiki/Extension:Example",
descriptionmsg="example-desc",
["license-name"]="GPL-2.0-or-later",
type="other",
requires={
MediaWiki="&gt;= 1.39.0",
},
config={
ExampleEnableWelcome={
description="Enable the Welcome features",
value=true,
},
ExampleWelcomeColorDays={
description="Color for the Welcome message bar by week day",
value={
monday="orange",
tuesday="blue",
wednesday="green",
thursday="red",
friday="yellow",
},
},
ExampleWelcomeColorDefault={
description="Default color for the Welcome message",
value="#eee",
},
ExampleFooStuff={
value={
a=1,
b=2,
},
},
ExampleMyWord={
description="Value for the {{MYWORD}} magic word in wikitext.",
value="Awesome",
},
},
ExtensionMessagesFiles={
ExampleAlias="Example.i18n.alias.php",
ExampleMagic="Example.i18n.magic.php",
},
APIListModules={
example="MediaWiki\\Extension\\Example\\ApiQueryExample",
},
SpecialPages={
HelloWorld="MediaWiki\\Extension\\Example\\SpecialHelloWorld",
Includable="MediaWiki\\Extension\\Example\\SpecialIncludable",
},
Actions={
myact="MediaWiki\\Extension\\Example\\MyActAction",
},
ContentHandlers={
xmldata="MediaWiki\\Extension\\Example\\XmlContentHandler",
},
namespaces={
{
id=234,
constant="NS_XML",
name="XML",
subpages=false,
content=false,
defaultcontentmodel="xmldata",
},{
id=235,
constant="NS_XML_TALK",
name="XML_Talk",
subpages=true,
content=false,
defaultcontentmodel="wikitext",
},},
QUnitTestModule={
localBasePath="tests/qunit/",
remoteExtPath="examples/tests/qunit/",
scripts={
"ext.Example.welcome.test.js",},
dependencies={
"ext.Example.welcome",},
},
Hooks={
BeforePageDisplay="handleHooks",
ParserFirstCallInit="handleHooks",
ParserGetVariableValueSwitch="handleHooks",
["SkinTemplateNavigation::Universal"]="handleHooks",
ResourceLoaderGetConfigVars="handleHooks",
MagicWordwgVariableIDs={
handler="handleMoreHooks",
deprecated=true,
},
GetMagicVariableIDs="handleMoreHooks",
LoadExtensionSchemaUpdates={
handler="handleMoreHooks",
},
},
HookHandlers={
handleHooks={
class="MediaWiki\\Extension\\Example\\Hooks",
services={
"PermissionManager",},
},
handleMoreHooks={
class="MediaWiki\\Extension\\Example\\MoreHooks",
},
},
RestRoutes={
{
path="/examples/v1/echo_path_param/{value_to_echo}",
class="MediaWiki\\Extension\\Example\\RestApiExample",
},},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/examples",
},
["DynamicPageList_(Wikimedia)"]={
name="DynamicPageList",
version="1.7.0",
author={
"[https://en.wikinews.org/wiki/User:Amgine Amgine]","[https://en.wikinews.org/wiki/User:IlyaHaykinson IlyaHaykinson]",},
url="https://www.mediawiki.org/wiki/Extension:DynamicPageList_(Wikimedia)",
descriptionmsg="intersection-desc",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
},
["license-name"]="GPL-2.0-or-later",
Hooks={
ParserFirstCallInit="main",
ParserTestGlobals="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\DynamicPageList\\Hooks",
},
},
TrackingCategories={
"intersection-category",},
config={
DLPmaxCategories={
value=6,
},
DLPMaxResultCount={
value=200,
},
DLPAllowUnlimitedResults={
value=false,
},
DLPAllowUnlimitedCategories={
value=false,
},
DLPMaxCacheTime={
value=86400,
},
DLPMaxQueryTime={
value=10000,
description="Maximum allowed time for database queries in milliseconds.",
},
DLPQueryCacheTime={
value=0,
description="This is the query cache. It can help with situations where you have a template with the same query used on a large number of pages all being refreshed at once. The query cache cannot be purged. Suggested value between 30 to 600.",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/intersection",
},
EasyTimeline={
name="EasyTimeline",
author="Erik Zachte",
url="https://www.mediawiki.org/wiki/Extension:EasyTimeline",
descriptionmsg="timeline-desc",
["license-name"]="GPL-2.0-only",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42",
},
Hooks={
ParserFirstCallInit="main",
},
HookHandlers={
main={
class="MediaWiki\\Extension\\Timeline\\Timeline",
},
},
TrackingCategories={
"timeline-tracking-category",},
config={
TimelinePloticusCommand={
value="/usr/bin/ploticus",
},
TimelinePerlCommand={
value="/usr/bin/perl",
},
TimelineFonts={
value={
},
},
TimelineFontFile={
value="FreeSans",
},
TimelineFontDirectory={
value=false,
},
TimelineFileBackend={
value="",
},
TimelineRsvgCommand={
value="/usr/bin/rsvg-convert",
},
},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/timeline",
},
WikiHiero={
name="WikiHiero",
version="1.1",
author={
"Guillaume Blanchard","Max Semenik",},
url="https://www.mediawiki.org/wiki/Extension:WikiHiero",
descriptionmsg="wikihiero-desc",
["license-name"]="GPL-2.0-or-later",
type="parserhook",
requires={
MediaWiki="&gt;= 1.42.0",
},
Hooks={
ParserFirstCallInit="main",
},
HookHandlers={
main={
class="WikiHiero\\Hooks",
},
},
ExtensionMessagesFiles={
HieroglyphsAlias="wikihiero.alias.php",
},
SpecialPages={
Hieroglyphs={
class="WikiHiero\\SpecialHieroglyphs",
services={
"UserOptionsLookup",},
},
},
attributes={
VisualEditor={
PluginModules={
"ext.wikihiero.visualEditor",},
},
},
ParsoidModules={
"WikiHiero\\Hooks",},
TrackingCategories={
"wikihiero-usage-tracking-category",},
repository="https://gerrit.wikimedia.org/r/mediawiki/extensions/wikihiero",
},
}</text>
    <sha1>673780e9ddfaf8a7748f6840cd259474565fb518</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Manual:Coding conventions/Vue</title>
  <ns>100</ns>
  <id>1259749</id>
  <revision>
    <id>6624075</id>
    <parentid>6589179</parentid>
    <timestamp>2024-07-09T04:11:28Z</timestamp>
    <contributor>
      <username>JWBTH</username>
      <id>7289975</id>
    </contributor>
    <comment>/* Style */ add docs link for "Object syntax"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="12569" xml:space="preserve">&lt;languages/&gt;
{{DoNotTranslate}}
{{Draft}}
{{Shortcut|CC/V}}
{{Development guideline}}
&lt;translate&gt;&lt;!--T:1--&gt; This page describes '''coding conventions''' for '''Vue''' in the [[&lt;tvar name=1&gt;Special:MyLanguage/Manual:Code&lt;/tvar&gt;|MediaWiki codebase]].&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:2--&gt; See also the [[&lt;tvar name=1&gt;Special:MyLanguage/Manual:Coding conventions/JavaScript&lt;/tvar&gt;|JavaScript]] and [[&lt;tvar name=2&gt;Special:MyLanguage/Manual:Coding conventions/CSS&lt;/tvar&gt;|CSS/LESS]] conventions which apply to such code within Vue files.&lt;/translate&gt;

&lt;translate&gt;
== Linting == &lt;!--T:3--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:4--&gt; We use [&lt;tvar name="url"&gt;https://eslint.org/&lt;/tvar&gt; ESLint] as our code quality tool.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:5--&gt; The [&lt;tvar name="url"&gt;https://github.com/wikimedia/eslint-config-wikimedia&lt;/tvar&gt; custom config for Wikimedia] (&lt;tvar name="1"&gt;&lt;code&gt;eslint-config-wikimedia&lt;/code&gt;&lt;/tvar&gt;) contains both general and MediaWiki-specific rules for Vue code.&lt;/translate&gt;

&lt;translate&gt;
=== Making ESLint recognize component definitions === &lt;!--T:6--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:7--&gt; You must use the &lt;tvar name="1"&gt;&lt;code&gt;defineComponent()&lt;/code&gt;&lt;/tvar&gt; function from Vue for your component definition for it to be recognized as such by ESLint (see example below).&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:8--&gt; If ESLint detects that you're not using this, it will warn you and tell you to add it, but it won't be able to interpret your code as Vue code until you do so.&lt;/translate&gt;

&lt;syntaxhighlight lang="html"&gt;
&lt;script&gt;
const { defineComponent } = require( 'vue' );
const AnotherComponent = require( './AnotherComponent.vue' );

module.exports = exports = defineComponent( {
    name: 'MyComponent',
    components: { AnotherComponent },
    ...
} );
&lt;/script&gt;
&lt;/syntaxhighlight&gt;

&lt;translate&gt;

=== Setting up ESLint === &lt;!--T:9--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:10--&gt; If you are already using the &lt;tvar name="1"&gt;&lt;code&gt;wikimedia/client&lt;/code&gt;&lt;/tvar&gt; or &lt;tvar name="2"&gt;&lt;code&gt;wikimedia/client/es6&lt;/code&gt;&lt;/tvar&gt; preset from the [&lt;tvar name="url"&gt;https://www.npmjs.com/package/eslint-config-wikimedia eslint-config-wikimedia&lt;/tvar&gt; package] in your &lt;tvar name="3"&gt;&lt;code&gt;.eslintrc.json&lt;/code&gt;&lt;/tvar&gt;, lint rules for Vue are automatically applied to &lt;tvar name="4"&gt;&lt;code&gt;.vue&lt;/code&gt;&lt;/tvar&gt; files.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:11--&gt; Starting with version &lt;tvar name="1"&gt;0.23.0&lt;/tvar&gt; of eslint-config-wikimedia, the &lt;tvar name="2"&gt;ES5&lt;/tvar&gt; rules default to &lt;tvar name="3"&gt;Vue 2&lt;/tvar&gt;, and the &lt;tvar name="4"&gt;ES6&lt;/tvar&gt; rules default to &lt;tvar name="5"&gt;Vue 3&lt;/tvar&gt;.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:12--&gt; New code should be written using &lt;tvar name="1"&gt;Vue 3&lt;/tvar&gt; (and consequently, using &lt;tvar name="2"&gt;ES6&lt;/tvar&gt;); the &lt;tvar name="3"&gt;ES5+Vue2&lt;/tvar&gt; rules are only meant for legacy code.&lt;/translate&gt;

&lt;translate&gt;
== Naming == &lt;!--T:13--&gt;
&lt;/translate&gt;
{{Draft-section}}

&lt;translate&gt;
== Single-file Components == &lt;!--T:14--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:15--&gt; Vue's [&lt;tvar name=url&gt;https://vuejs.org/guide/scaling-up/sfc.html&lt;/tvar&gt; single-file components] format (&lt;tvar name=1&gt;&lt;code&gt;.vue&lt;/code&gt;&lt;/tvar&gt;) should be used wherever possible.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:16--&gt; This allows templates, logic, and (optionally) styles for a given component to live together in one file.&lt;/translate&gt;
&lt;translate&gt;&lt;tvar name=1&gt;{{ll|ResourceLoader}}&lt;/tvar&gt; supports on-the-fly compilation of &lt;tvar name=2&gt;&lt;code&gt;.vue&lt;/code&gt;&lt;/tvar&gt; files (see {{&lt;tvar name=3&gt;ll|Vue.js#Using Vue in MediaWiki&lt;/tvar&gt;|Vue.js#Using Vue in MediaWiki}} for more info about using Vue with ResourceLoader).&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:17--&gt; This allows developers to write &lt;tvar name=1&gt;&lt;code&gt;.vue&lt;/code&gt;&lt;/tvar&gt; files without needing to rely on any new build tools (Rollup, Webpack, etc), while still benefiting from the various optimizations that ResourceLoader provides for front-end code (RTL styling via CSS Janus, JS minification, etc).&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:18--&gt; Where possible, Vue code should follow the [&lt;tvar name=url&gt;https://vuejs.org/style-guide/&lt;/tvar&gt; Vue community's style guide].&lt;/translate&gt;
'''&lt;translate&gt;&lt;!--T:19--&gt; In particular, all recommendations in [&lt;tvar name=url&gt;https://vuejs.org/style-guide/#priority-a-essential-error-prevention&lt;/tvar&gt; "Priority A: Essential"] should be followed at all times.&lt;/translate&gt;'''
&lt;translate&gt;&lt;!--T:20--&gt; Any MediaWiki-specific exceptions will be called out below.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:21--&gt; If ESLint is set up correctly, it will enforce all rules from the Vue style guide (Priority A, B and C) as well as MediaWiki-specific rules and exceptions.&lt;/translate&gt;

&lt;translate&gt;
=== General Structure === &lt;!--T:22--&gt;
&lt;/translate&gt;
&lt;translate&gt;Single-file components are broken into three sections: &lt;tvar name=1&gt;{{tag|template|open}}&lt;/tvar&gt;, &lt;tvar name=2&gt;{{tag|script|open}}&lt;/tvar&gt;, and &lt;tvar name=3&gt;{{tag|style|open}}&lt;/tvar&gt;; components should follow this order, with the &lt;tvar name=3&gt;{{tag|style|open}}&lt;/tvar&gt; block being optional.&lt;/translate&gt;
&lt;translate&gt;Each component file should be listed individually under the &lt;tvar name=1&gt;&lt;code&gt;packageFiles&lt;/code&gt;&lt;/tvar&gt; property in the appropriate module definition in &lt;tvar name=2&gt;&lt;code&gt;extension.json&lt;/code&gt;&lt;/tvar&gt;.&lt;/translate&gt;
&lt;translate&gt;Make sure that the module definition also includes the &lt;tvar name=1&gt;&lt;code&gt;vue&lt;/code&gt;&lt;/tvar&gt; module as a dependency.&lt;/translate&gt;

&lt;translate&gt;
=== Template ===
&lt;/translate&gt;
* '''&lt;translate&gt;Component tags must not be self-closing&lt;/translate&gt;''' - &lt;translate&gt;this is a departure from [&lt;tvar name=url&gt;https://vuejs.org/style-guide/rules-strongly-recommended.html#self-closing-components&lt;/tvar&gt; Vue's style guide recommendations] based on current limitations in ResourceLoader.&lt;/translate&gt; &lt;translate&gt;Regardless of whether a component uses slots, it should have a closing tag.&lt;/translate&gt;

{|style="text-align: left;"
|- style="vertical-align:top;"
! scope="col" | Correct:
! scope="col" | Wrong (self-closing components):
|- style="vertical-align:top;"
|{{code convention example|posneg=positive|
&lt;syntaxhighlight lang="html"&gt;
&lt;slot-based-component&gt;
    &lt;h1&gt;Hello world&lt;/h1&gt;
&lt;/slot-based-component&gt;

&lt;props-component
  :foo="bar"
  :baz="quux"
  @click="doSomething"
&gt;&lt;/props-component&gt;

&lt;basic-component&gt;&lt;/basic-component&gt;
&lt;/syntaxhighlight&gt;
}}
|{{code convention example|posneg=negative|
&lt;syntaxhighlight lang="html"&gt;
&lt;props-component
  :foo="bar"
  :baz="quux"
  @click="doSomething"
/&gt;

&lt;basic-component /&gt;
&lt;/syntaxhighlight&gt;
}}
|}
* '''Component tags must use kebab-case''', as opposed to PascalCase. This is also a departure from [https://vuejs.org/style-guide/rules-strongly-recommended.html#component-name-casing-in-templates Vue's style guide recommendations] due to limitations in ResourceLoader.

{| style="text-align: left;"
|- style="vertical-align:top;"
! scope="col" | Correct (kebab-case):
! scope="col" | Wrong (PascalCase):
|- style="vertical-align:top;"
|{{code convention example|posneg=positive|
&lt;syntaxhighlight lang="html"&gt;
&lt;some-component :foo="bar"&gt;&lt;/some-component&gt;
&lt;/syntaxhighlight&gt;
}}
|{{code convention example|posneg=negative|
&lt;syntaxhighlight lang="html"&gt;
&lt;SomeComponent :foo="bar"&gt;&lt;/SomeComponent&gt;
&lt;/syntaxhighlight&gt;
}}
|}
*'''Use the [https://vuejs.org/style-guide/rules-strongly-recommended.html#directive-shorthands directive short-hands]''' (&lt;code&gt;:foo&lt;/code&gt; instead of &lt;code&gt;v-bind:foo&lt;/code&gt;, &lt;code&gt;@click&lt;/code&gt; instead of &lt;code&gt;v-on:click&lt;/code&gt;).
* '''[https://vuejs.org/style-guide/rules-strongly-recommended.html#multi-attribute-elements Elements with multiple attributes should break them out onto separate lines]'''
* [https://vuejs.org/style-guide/rules-strongly-recommended.html#simple-expressions-in-templates '''Component templates should only include simple expressions''']; for anything more complex, define a computed property or method in the {{tag|script|open}} section instead.
*'''Message strings in templates must be internationalized''' just like in standard JS or PHP UI development. See [[Vue.js#Internationalization|the documentation on internationalization in Vue]] for more information.
*'''Use &lt;code&gt;v-html&lt;/code&gt; sparingly and carefully''', because it can lead to XSS vulnerabilities if used incorrectly. If you must use &lt;code&gt;v-html&lt;/code&gt;, carefully audit the code that generates the HTML to ensure that all untrusted input is escaped.
**For parsed i18n messages (&lt;code&gt;mw.message( 'foo' ).parse()&lt;/code&gt;), using &lt;code&gt;v-html&lt;/code&gt; is not necessary in most cases. Use &lt;code&gt;[[Vue.js#Parsed messages|v-i18n-html]]&lt;/code&gt; instead, if possible.
**Because &lt;code&gt;v-html&lt;/code&gt; is discouraged, using it causes an ESLint error. If you must use it, add &lt;code&gt;&lt;nowiki&gt;&lt;!-- eslint-disable-next-line vue/no-v-html --&gt;&lt;/nowiki&gt;&lt;/code&gt; on the line above the tag that uses &lt;code&gt;v-html&lt;/code&gt; to dismiss the ESLint warning.
**'''Before adding this override, double-check your code''' to ensure your usage of &lt;code&gt;v-html&lt;/code&gt; is safe.
**:

=== Script ===
* '''Single-file components delivered via ResourceLoader should follow the CommonJS module format''' and should use [[ ResourceLoader/Package_files |ResourceLoader's PackageFiles feature]]. This means that each component file should include a &lt;code&gt;module.exports&lt;/code&gt; statement, and should import other code using &lt;code&gt;require():&lt;/code&gt;
*:&lt;syntaxhighlight lang="javascript"&gt;
const { defineComponent } = require( 'vue' );
const OtherComponent = require( './OtherComponent.js' );

module.exports = exports = defineComponent( {
    name: 'MyComponent',
    components: {
        OtherComponent
    }
    
    // … etc.
} );
&lt;/syntaxhighlight&gt;
* '''Component options should be specified in the order defined here''': https://github.com/wikimedia/eslint-config-wikimedia/blob/master/vue-common.json. Generally this means: &lt;code&gt;name&lt;/code&gt;, &lt;code&gt;components&lt;/code&gt;, &lt;code&gt;mixins&lt;/code&gt;, &lt;code&gt;props&lt;/code&gt;, &lt;code&gt;emits&lt;/code&gt;, &lt;code&gt;setup&lt;/code&gt;, &lt;code&gt;data&lt;/code&gt;, &lt;code&gt;computed&lt;/code&gt; properties, &lt;code&gt;methods&lt;/code&gt;, watchers, lifecycle hooks, and finally render functions (in the rare situations where those need to be defined manually).
* '''[https://vuejs.org/style-guide/rules-strongly-recommended.html#simple-expressions-in-templates Render functions] should be avoided outside of special cases'''; HTML-style templates are preferred instead. The &lt;code&gt;vue&lt;/code&gt; module provided in MediaWiki core is the [https://v2.vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only full version], which includes the template compiler.
* '''Use prop definitions''' and consider [https://vuejs.org/guide/components/props.html#prop-validation specifying defaults or validating data] where necessary. Boolean props should default to false.
* '''[https://vuejs.org/style-guide/rules-use-with-caution.html#implicit-parent-child-communication Avoid implicit parent-child communication]''' and the mutation of received props within a child component. Prefer the "props down / events up" approach

==== Options API vs. Composition API ====
Vue provides two APIs for writing components: the [https://vuejs.org/guide/introduction.html#options-api Options API] and the [https://vuejs.org/guide/introduction.html#composition-api Composition API]. Either is allowed; consult the Vue documentation on [https://vuejs.org/guide/introduction.html#which-to-choose choosing a component API]. Note that [[wmdoc:codex/main/components/overview.html|Codex component demos]] are mostly built with the Composition API, so using it may make copying code samples easier. Additionally, Codex exports several [[wmdoc:codex/main/composables/overview.html|composables]] that may be useful in feature code that uses the Composition API.

=== Style ===
* MediaWiki [[Manual:Coding_conventions/CSS|CSS and LESS conventions]] apply, styles are linted with [https://github.com/wikimedia/stylelint-config-wikimedia/ custom Wikimedia stylelint config]
* Since each component should contain a single top-level component, styles should be nested under a single selector (if using LESS)
* Conditional CSS classes should be used for dynamic styles. [https://vuejs.org/guide/essentials/class-and-style.html#binding-to-arrays Object syntax] is preferred for computed properties that are bound to class attributes.
*[https://vuejs.org/guide/built-ins/transition.html Vue transition] names should follow the same pattern as CSS class names (e.g. including an extension-specific prefix)

== Progressive Enhancement ==
TBD: define a no-JS fallback for most features you build this way.

{{Conventions navigation}}

[[Category:JavaScript{{#translation:}}|Vue]]
[[Category:Vue{{#translation:}}]]</text>
    <sha1>52d9289acf50174b3d859f220d577ab2b2326fc0</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Extension:EasyTimeline</title>
  <ns>102</ns>
  <id>23163</id>
  <revision>
    <id>6624076</id>
    <parentid>6587447</parentid>
    <timestamp>2024-07-09T04:45:47Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <comment>Lol</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="24496" xml:space="preserve">&lt;languages /&gt;
{{Extension
|type1           = tag
|status          = stable
|author          = [[w:User:Erik Zachte|Erik Zachte]]
|description     = &lt;translate&gt;&lt;!--T:120--&gt; Adds  &lt;tvar name=1&gt;{{tag|timeline|open}}&lt;/tvar&gt; tag for creating timelines&lt;/translate&gt;
|download        = {{WikimediaDownload|timeline}}
|needs-updatephp = no
|changelog       = {{git file|action=summary|project=mediawiki/extensions/timeline|branch=HEAD|text=CHANGELOG}}
|phabricator        = EasyTimeline
|pagedrive1      = true
|example         = [[#charts-examples|&lt;translate&gt;&lt;!--T:121--&gt; See below&lt;/translate&gt;]]
|translate       = ext-timeline
}}
{|
| style="padding-{{dir|{{pagelang}}|right|left}}:1em" | ''&lt;translate&gt;&lt;!--T:2--&gt; Other languages:&lt;/translate&gt;''
| {{flatlist|1=
* [[:de:Hilfe:Zeitleisten|de]]
* [[:es:Ayuda:Cronologías|es]]
* [[:eu:Laguntza:Denbora lerroak|eu]]
* [[:fr:Aide:Frise chronologique|fr]]
* [[:id:Wikipedia:Timeline|id]]
* [[:it:Aiuto:Timeline|it]]
* [[:nl:Help:EasyTimeline|nl]]
* [[:pt:Wikipedia:EasyTimeline|pt]]
* [[:zh:Help:简易时间线语法|zh]]
}}
|}

&lt;translate&gt;
&lt;!--T:3--&gt;
The '''EasyTimeline''' extension produces an embedded image from wikitext. The image can be a one-dimensional diagram (horizontally or vertically), or a two-dimensional one.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:4--&gt; See the help page on [[&lt;tvar name=1&gt;Special:MyLanguage/Extension:EasyTimeline/installation&lt;/tvar&gt;|installing EasyTimeline]] on your wiki.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:124--&gt; See also [&lt;tvar name=url&gt;http://infodisiac.com/Wikipedia/EasyTimeline/Introduction.htm&lt;/tvar&gt; this page on EasyTimeline] or play with it at &lt;tvar name=1&gt;[[testwiki:EasyTimeline|test.wikipedia.org]]&lt;/tvar&gt;.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:5--&gt;
See the help page on [[&lt;tvar name=1&gt;Special:MyLanguage/Extension:EasyTimeline/syntax&lt;/tvar&gt;|using the syntax provided by this extension]].

&lt;!--T:6--&gt;
There is a [[&lt;tvar name=1&gt;phab:T137291&lt;/tvar&gt;|long-term effort]] to get the &lt;tvar name=2&gt;{{ll|Extension:Chart|Chart}}&lt;/tvar&gt; extension to replace this extension.

== Requirements == &lt;!--T:7--&gt;

&lt;!--T:8--&gt;
This extension requires the following programs installed on the server:

&lt;!--T:94--&gt;
*[[w:Ploticus|Ploticus]]&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:95--&gt;
*[[w:perl|perl]]&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:96--&gt;
*[[w:XnView|NConvert]] (Windows only)
&lt;/translate&gt;

{{anchor|charts-examples}}
&lt;translate&gt;
==Charts examples== &lt;!--T:9--&gt;

&lt;!--T:10--&gt;
Several examples of what is possible. For more extensive examples see

&lt;!--T:97--&gt;
* [[:en:Template:Timeline WWII - Pacific Theater|WW II - Pacific Theatre]] - horizontal&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:98--&gt;
* [[:en:Timeline of aircraft carriers of the United States Navy|:en:Timeline of aircraft carriers of the United States Navy]] - horizontal&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:99--&gt;
* [[:en:Template:Timeline History of Computing|History of Computing]] - horizontal&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:100--&gt;
* [[:de:Vorlage:Zeitleiste Tour-de-France-Sieger|Tour-de-France Sieger]] - vertical&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:101--&gt;
* [[:en:Template:Vocal and instrumental pitch ranges|Vocal and instrumental pitch ranges]] (a nice example of a diagram that is not a timeline at all)  - horizontal&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:102--&gt;
* [[:en:Template:Complete timeline of Macintosh models|Complete timeline of Macintosh models]]  - horizontal&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:104--&gt;
* Simpler timelines:&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:105--&gt;
** [[:en:Template:Extinction events graphical timeline|:en:Template:Extinction events graphical timeline]]  - horizontal, uses [[w:Template:Horizontal timeline|w:Template:Horizontal timeline]]&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:106--&gt;
** [[:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players|:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players]]  - horizontal with arrows&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:107--&gt;
** [[:en:Template:Early evolution of the light bulb|:en:Template:Early evolution of the light bulb]]  - vertical&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:108--&gt;
** [[:en:Invention of radio#Radio invention timeline|:en:Invention of radio#Radio invention timeline]]  - vertical&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:109--&gt;
** [[:en:Gaius_Marius#Timeline|:en:Gaius_Marius#Timeline]]   - vertical&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:110--&gt;
** [[:en:User:Syed Atif Nazir/Template:Imam timeline|:en:User:Syed Atif Nazir/Template:Imam timeline]]   - vertical&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:112--&gt;
** [https://de.wikipedia.org/w/index.php?title=Aurich&amp;oldid=171331690#Einwohnerentwicklung Population developement] - horizontal
&lt;/translate&gt;

&lt;table&gt;&lt;tr&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize  = width:160 height:550
PlotArea   = width:50 height:530 left:50 bottom:10

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;/td&gt;

&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:proterozoic value:rgb(0.968,0.207,0.388)
  id:neoproterozoic value:rgb(0.996,0.701,0.258)
  id:ediacaran value:rgb(0.996,0.85,0.415)
  id:cryogenian value:rgb(0.996,0.8,0.36)
  id:tonian value:rgb(0.996,0.75,0.305)
  id:mesoproterozoic value:rgb(0.996,0.705,0.384)
  id:stenian value:rgb(0.996,0.85,0.604)
  id:ectasian value:rgb(0.996,0.8,0.541)
  id:calymmian value:rgb(0.996,0.75,0.478)
  id:paleoproterozoic value:rgb(0.968,0.263,0.44)
  id:statherian value:rgb(0.968,0.459,0.655)
  id:orosirian value:rgb(0.968,0.408,0.596)
  id:rhyacian value:rgb(0.968,0.357,0.537)
  id:siderian value:rgb(0.968,0.306,0.478)
  id:archean value:rgb(0.996,0.157,0.498)
  id:neoarchean value:rgb(0.976,0.608,0.757)
  id:mesoarchean value:rgb(0.968,0.408,0.662)
  id:paleoarchean value:rgb(0.96,0.266,0.624)
  id:eoarchean value:rgb(0.902,0.114,0.549)
  id:hadean value:rgb(0.717,0,0.494)
  id:black value:black
  id:white value:white

Period     = from:-4567 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:500 start:-4500
ScaleMinor = unit:year increment:100 start:-4500

Define $markred = text:"*" textcolor:red shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)


  bar:eon

  at:       0 align:right $markred
  at:    -542 align:left  $markred shift:(2,3)
  from:  -542 till:    0  text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic   
  from: -2500 till: -542  text:[[Special:MyLanguage/Proterozoic|Proterozoic]] color:proterozoic   
  from: -4000 till: -2500 text:[[Special:MyLanguage/Archean|Archean]]     color:archean   
  from: start till: -4000 text:[[Special:MyLanguage/Hadean|Hadean]]      color:hadean

  bar:era

  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|C]] color:cenozoic        
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Meso]] color:mesozoic        
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic 
  from: -1000 till: -542  text:[[Special:MyLanguage/Neoproterozoic|Neoproterozoic]] color:neoproterozoic   
  from: -1600 till: -1000 text:[[Special:MyLanguage/Mesoproterozoic|Mesoproterozoic]] color:mesoproterozoic  
  from: -2500 till: -1600 text:[[Special:MyLanguage/Paleoproterozoic|Paleoproterozoic]] color:paleoproterozoic 
  from: -2800 till: -2500 text:[[Special:MyLanguage/Neoarchean|Neoarch]] color:neoarchean       
  from: -3200 till: -2800 text:[[Special:MyLanguage/Mesoarchean|Mesoarch]] color:mesoarchean      
  from: -3600 till: -3200 text:[[Special:MyLanguage/Paleoarchean|Paleoarch]] color:paleoarchean     
  from: -4000 till: -3600 text:[[Special:MyLanguage/Eoarchean|Eoarchean]] color:eoarchean
  from: start till: -4000 color:white

  bar:period

  fontsize:6
  from: -2.6 till: 0        color:quaternary
  from: -23.03 till: -2.6   color:neogene
  from: -65.5 till: -23.03  color:paleogene
  from: -145.5 till: -65.5  color:cretaceous
  from: -199.6 till: -145.5 color:jurassic
  from: -251 till: -199.6   color:triassic
  from: -299 till: -251     color:permian
  from: -359.2 till: -299   color:carboniferous
  from: -416 till: -359.2   color:devonian
  from: -443.7 till: -416   color:silurian
  from: -488.3 till: -443.7 color:ordovician
  from: -542 till: -488.3   color:cambrian

  from: -635  till: -542  text:[[Special:MyLanguage/Ediacaran|Ed.]] color:ediacaran
  from: -850  till: -635  text:[[Special:MyLanguage/Cryogenian|Cryo]] color:cryogenian
  from: -1000 till: -850  text:[[Special:MyLanguage/Tonian|Tonian]] color:tonian
  from: -1200 till: -1000 text:[[Special:MyLanguage/Stenian|Stenian]] color:stenian
  from: -1400 till: -1200 text:[[Special:MyLanguage/Ectasian|Ectasian]] color:ectasian
  from: -1600 till: -1400 text:[[Special:MyLanguage/Calymmian|Calymm]] color:calymmian
  from: -1800 till: -1600 text:[[Special:MyLanguage/Statherian|Stather]] color:statherian
  from: -2050 till: -1800 text:[[Special:MyLanguage/Orosirian|Orosirian]] color:orosirian
  from: -2300 till: -2050 text:[[Special:MyLanguage/Rhyacian|Rhyacian]] color:rhyacian
  from: -2500 till: -2300 text:[[Special:MyLanguage/Siderian|Siderian]] color:siderian
  from: start till: -2500 color:white
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize  = width:800 height:100
PlotArea   = left:65 right:15 bottom:20 top:5
AlignBars  = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black  value:black
  id:white  value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-542 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:100 start:-500
ScaleMinor = unit:year increment:10  start:-540

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:eon
  at:      0   align:right  $markred 
  at:   -542   align:left   $markred shift:(2,3)
  from: -542   till:    0   text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic

  bar:era
  at:   0     align:right $markgreen
  at:   -65.5 align:left  $markgreen shift:(2,3)
  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Mesozoic]] color:mesozoic
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic

  bar:period fontsize:8
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neo]] color:neogene
  from: -65.5 till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene
  from: -145.5 till: -65.5 text:[[Special:MyLanguage/Cretaceous|Cretaceous]] color:cretaceous
  from: -199.6 till: -145.5 text:[[Special:MyLanguage/Jurassic|Jurassic]] color:jurassic
  from: -251.4 till: -199.6 text:[[Special:MyLanguage/Triassic|Triassic]] color:triassic
  from: -299 till: -251.4 text:[[Special:MyLanguage/Permian|Permian]] color:permian
  from: -359.2 till: -299 text:[[Special:MyLanguage/Carboniferous|Carboniferous]] color:carboniferous
  from: -416 till: -359.2 text:[[Special:MyLanguage/Devonian|Devonian]] color:devonian
  from: -443.7 till: -416 text:[[Special:MyLanguage/Silurian|Silurian]] color:silurian
  from: -488.3 till: -443.7 text:[[Special:MyLanguage/Ordovician|Ordovician]] color:ordovician
  from: -542 till: -488.3 text:[[Cambrian] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Cenozoic|Cambrian]] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic

  bar:period
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neogene]] color:neogene
  from: start  till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene

  bar:epoch
  from: -0.1 till: 0  text:[[Special:MyLanguage/Holocene|H]] color:holocene 
  from: -2.588 till: -0.1 text:[[Special:MyLanguage/Pleistocene|P]] color:pleistocene
  from: -5.332 till: -2.588 text:[[Special:MyLanguage/Pliocene|Pliocene]] color:pliocene fontsize:7
  from: -23.03 till: -5.332 text:[[Special:MyLanguage/Miocene|Miocene]] color:miocene
  from: -33.9 till: -23.03 text:[[Special:MyLanguage/Oligocene|Oligocene]] color:oligocene
  from: -55.8 till: -33.9 text:[[Special:MyLanguage/Eocene|Eocene]] color:eocene
  from: start till: -55.8 text:[[Special:MyLanguage/Paleocene|Paleocene]] color:paleocene
&lt;/timeline&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=3 align=left&gt;{{Wikimedia Growth}}&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;translate&gt;

==Code example== &lt;!--T:52--&gt;
&lt;/translate&gt;
:''&lt;translate&gt;&lt;!--T:53--&gt; See also:&lt;/translate&gt;'' {{ll|Extension:EasyTimeline/syntax}}

&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;translate&gt;
&lt;!--T:61--&gt;
Just to show you that the script syntax is reasonably intuitive,
here is the script for the image above: Soviet Leaders. 
&lt;/translate&gt;

&lt;syntaxhighlight lang="moin"&gt;
&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
&lt;!--T:69--&gt;
Double and single brackets can be used like on wikipedia, language prefix is possible, e.g. &lt;syntaxhighlight lang="moin" inline&gt;[[de:foo|more about foo]]&lt;/syntaxhighlight&gt;. Single brackets for external links are also supported.

==Great timelines elsewhere== &lt;!--T:70--&gt;

&lt;!--T:71--&gt;
Here are two great sites that may serve as inspiration, it would be very easy to recreate most of those timelines verbatim and with roughly similar layout with EasyTimeline (not yet with images but that may change), but I'm afraid that would be 'not done'.

&lt;!--T:72--&gt;
*[http://www.hyperhistory.com/online_n2/History_n2/a.html Hyperhistory] e.g. click on button 'people' left, then on 'special lifelines', right.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:113--&gt;
*I hope we will have a set like [http://chaos1.hypermart.net/fullsize.htm] in a years time (click on ''full size image'' for any map), possibly even with images. The main effort will be to gather all info without snatching everything from here (most of these maps are based exclusively on data from Britannica).

==Unicode== &lt;!--T:73--&gt;

&lt;!--T:74--&gt;
EasyTimeline does not yet support Unicode. 

&lt;!--T:75--&gt;
Aug 2004: Minimal UTF-8 support has been added, meaning that EasyTimeline now recognizes UTF-8 encoded characters. However support for directionality and complex scripts is very lacking. The default font may not have glyphs for all characters. An alternate font can be specified via &lt;code&gt;$wgTimelineFontFile&lt;/code&gt;

===SVG to PNG=== &lt;!--T:76--&gt;

&lt;!--T:77--&gt;
To show texts correctly for RTL languages (like Arabic, Persian, Hebrew,...) you can use {{&lt;tvar name=1&gt;tmpl|0={{tag|timeline|params={{attr|method|"svg2png"}}|content=$1}}&lt;/tvar&gt;|timeline code here}} instead of {{&lt;tvar name=2&gt;tmpl|0={{tag|timeline|content=$1}}&lt;/tvar&gt;|timeline code here}}. it shows timeline as png but the links will be disabled.

==Tips== &lt;!--T:78--&gt;

&lt;!--T:79--&gt;
For first time users EasyTimeline may not seem that easy at all. As with all script languages it takes some getting used to. Also the syntax description may be a bit bewildering due to its sheer size. Fortunately many elements of the script language are optional.

&lt;!--T:80--&gt;
The 'Easy' in EasyTimeline conveys the message that once a timeline exists it is not so hard to understand, enhance or correct. Also translating for use on another Wikipedia it is pretty straightforward. 

&lt;!--T:81--&gt;
Tips:

&lt;!--T:114--&gt;
* See some [[#charts-examples|chart examples]] to find something you could pick and edit for your own stuff&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:115--&gt;
*Put each timeline on a separate Template page: this makes it easier to edit, faster to preview, possible to include it in several pages

==Using the current date== &lt;!--T:82--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:83--&gt; To use the current date make sure the table opens with &lt;tvar name=1&gt;&lt;code&gt;&lt;nowiki&gt;{{#tag:timeline|&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt; and closes with &lt;tvar name=2&gt;&lt;code&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt;.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:122--&gt; Then the current date can be inserted using magic words.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:123--&gt; For example &lt;code&gt;&lt;nowiki&gt;{{#time: d/m/Y }}&lt;/nowiki&gt;&lt;/code&gt; or &lt;code&gt;&lt;nowiki&gt;{{CURRENTDAY2}}/{{CURRENTMONTH2}}/{{CURRENTYEAR}}&lt;/nowiki&gt;&lt;/code&gt; will both yield the date in format dd/mm/yyyy.&lt;/translate&gt;

&lt;translate&gt;
==See also== &lt;!--T:84--&gt;

&lt;!--T:85--&gt;
*[[&lt;tvar name=1&gt;Special:MyLanguage/Extension:EasyTimeline/syntax&lt;/tvar&gt;|EasyTimeline Coding]]&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:91--&gt;
*Presentation about EasyTimeline at Wikimania 2005 ([[m:Transwiki:Wikimania05/Workshop-EZ1|abstract]], [http://upload.wikimedia.org/wikipedia/commons/9/90/Wikimania_2005_Presentation_EasyTimeline.pdf slides], [http://upload.wikimedia.org/wikipedia/commons/7/78/Wikimania_2005_Presentation_Easytimeline_Speaker_Notes.pdf speaker notes])&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:92--&gt;
*[[m:WikiTimeScale|m:WikiTimeScale]] as a proposal for realizing timescales for wikipedia articles externally.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:93--&gt;
* [[w:Template:Simple Horizontal timeline|w:Template:Simple Horizontal timeline]] An easier timeline to use on Wikipedia.
&lt;/translate&gt;
*{{ll|Extension:Graph}}

&lt;translate&gt;
==Installation== &lt;!--T:86--&gt;

&lt;!--T:87--&gt;
See [[&lt;tvar name=1&gt;Special:MyLanguage/Extension:EasyTimeline/installation&lt;/tvar&gt;|/installation]]

==External links== &lt;!--T:88--&gt;
&lt;/translate&gt;
* [http://www.simile-widgets.org &lt;translate&gt;&lt;!--T:125--&gt; SIMILE Widgets&lt;/translate&gt;] - DHTML-based AJAXy widget for visualizing time-based events

{{OnWikimedia}}
{{Used by}}</text>
    <sha1>904e9a87f2943cc20a3def761866578e1e2ad2e7</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Extension:EasyTimeline/de</title>
  <ns>102</ns>
  <id>1326947</id>
  <revision>
    <id>6624077</id>
    <parentid>5986616</parentid>
    <timestamp>2024-07-09T04:46:02Z</timestamp>
    <contributor>
      <username>FuzzyBot</username>
      <id>451990</id>
    </contributor>
    <comment>Updating to match new version of source page</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="25249" xml:space="preserve">&lt;languages /&gt;
{{Extension
|type1           = tag
|status          = stable
|author          = [[w:User:Erik Zachte|Erik Zachte]]
|description     = &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Adds  {{tag|timeline|open}} tag for creating timelines&lt;/span&gt;
|download        = {{WikimediaDownload|timeline}}
|needs-updatephp = no
|changelog       = {{git file|action=summary|project=mediawiki/extensions/timeline|branch=HEAD|text=CHANGELOG}}
|phabricator        = EasyTimeline
|pagedrive1      = true
|example         = [[#charts-examples|Siehe unten]]
|translate       = ext-timeline
}}
{|
| style="padding-{{dir|{{pagelang}}|right|left}}:1em" | ''Andere Sprachen:''
| {{flatlist|1=
* [[:de:Hilfe:Zeitleisten|de]]
* [[:es:Ayuda:Cronologías|es]]
* [[:eu:Laguntza:Denbora lerroak|eu]]
* [[:fr:Aide:Frise chronologique|fr]]
* [[:id:Wikipedia:Timeline|id]]
* [[:it:Aiuto:Timeline|it]]
* [[:nl:Help:EasyTimeline|nl]]
* [[:pt:Wikipedia:EasyTimeline|pt]]
* [[:zh:Help:简易时间线语法|zh]]
}}
|}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The '''EasyTimeline''' extension produces an embedded image from wikitext. The image can be a one-dimensional diagram (horizontally or vertically), or a two-dimensional one.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See the help page on [[Special:MyLanguage/Extension:EasyTimeline/installation|installing EasyTimeline]] on your wiki.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See also [http://infodisiac.com/Wikipedia/EasyTimeline/Introduction.htm this page on EasyTimeline] or play with it at [[testwiki:EasyTimeline|test.wikipedia.org]].&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
See the help page on [[Special:MyLanguage/Extension:EasyTimeline/syntax|using the syntax provided by this extension]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is a [[phab:T137291|long-term effort]] to get the {{ll|Extension:Chart|Chart}} extension to replace this extension.
&lt;/div&gt;

&lt;span id="Requirements"&gt;&lt;/span&gt;
== Voraussetzungen ==

Für diese Erweiterung müssen die folgenden Programme auf dem Server installiert sein:

*[[w:Ploticus|Ploticus]]
*[[w:de:Perl (Programmiersprache)|perl]]
*[[w:de:XnView|NConvert]] (nur Windows)

{{anchor|charts-examples}}
&lt;span id="Charts_examples"&gt;&lt;/span&gt;
== Beispiele für Diagramme ==

Einige Beispiele, was möglich ist. Für Ausführlichere Beispiele siehe

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Timeline WWII - Pacific Theater|WW II - Pacific Theatre]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Timeline of aircraft carriers of the United States Navy|:en:Timeline of aircraft carriers of the United States Navy]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Timeline History of Computing|History of Computing]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:de:Vorlage:Zeitleiste Tour-de-France-Sieger|Tour-de-France Sieger]] - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Vocal and instrumental pitch ranges|Vocal and instrumental pitch ranges]] (a nice example of a diagram that is not a timeline at all)  - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Complete timeline of Macintosh models|Complete timeline of Macintosh models]]  - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Simpler timelines:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Template:Extinction events graphical timeline|:en:Template:Extinction events graphical timeline]]  - horizontal, uses [[w:Template:Horizontal timeline|w:Template:Horizontal timeline]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players|:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players]]  - horizontal with arrows
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Template:Early evolution of the light bulb|:en:Template:Early evolution of the light bulb]]  - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Invention of radio#Radio invention timeline|:en:Invention of radio#Radio invention timeline]]  - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Gaius_Marius#Timeline|:en:Gaius_Marius#Timeline]]   - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:User:Syed Atif Nazir/Template:Imam timeline|:en:User:Syed Atif Nazir/Template:Imam timeline]]   - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [https://de.wikipedia.org/w/index.php?title=Aurich&amp;oldid=171331690#Einwohnerentwicklung Population developement] - horizontal
&lt;/div&gt;

&lt;table&gt;&lt;tr&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize  = width:160 height:550
PlotArea   = width:50 height:530 left:50 bottom:10

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;/td&gt;

&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:proterozoic value:rgb(0.968,0.207,0.388)
  id:neoproterozoic value:rgb(0.996,0.701,0.258)
  id:ediacaran value:rgb(0.996,0.85,0.415)
  id:cryogenian value:rgb(0.996,0.8,0.36)
  id:tonian value:rgb(0.996,0.75,0.305)
  id:mesoproterozoic value:rgb(0.996,0.705,0.384)
  id:stenian value:rgb(0.996,0.85,0.604)
  id:ectasian value:rgb(0.996,0.8,0.541)
  id:calymmian value:rgb(0.996,0.75,0.478)
  id:paleoproterozoic value:rgb(0.968,0.263,0.44)
  id:statherian value:rgb(0.968,0.459,0.655)
  id:orosirian value:rgb(0.968,0.408,0.596)
  id:rhyacian value:rgb(0.968,0.357,0.537)
  id:siderian value:rgb(0.968,0.306,0.478)
  id:archean value:rgb(0.996,0.157,0.498)
  id:neoarchean value:rgb(0.976,0.608,0.757)
  id:mesoarchean value:rgb(0.968,0.408,0.662)
  id:paleoarchean value:rgb(0.96,0.266,0.624)
  id:eoarchean value:rgb(0.902,0.114,0.549)
  id:hadean value:rgb(0.717,0,0.494)
  id:black value:black
  id:white value:white

Period     = from:-4567 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:500 start:-4500
ScaleMinor = unit:year increment:100 start:-4500

Define $markred = text:"*" textcolor:red shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)


  bar:eon

  at:       0 align:right $markred
  at:    -542 align:left  $markred shift:(2,3)
  from:  -542 till:    0  text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic   
  from: -2500 till: -542  text:[[Special:MyLanguage/Proterozoic|Proterozoic]] color:proterozoic   
  from: -4000 till: -2500 text:[[Special:MyLanguage/Archean|Archean]]     color:archean   
  from: start till: -4000 text:[[Special:MyLanguage/Hadean|Hadean]]      color:hadean

  bar:era

  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|C]] color:cenozoic        
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Meso]] color:mesozoic        
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic 
  from: -1000 till: -542  text:[[Special:MyLanguage/Neoproterozoic|Neoproterozoic]] color:neoproterozoic   
  from: -1600 till: -1000 text:[[Special:MyLanguage/Mesoproterozoic|Mesoproterozoic]] color:mesoproterozoic  
  from: -2500 till: -1600 text:[[Special:MyLanguage/Paleoproterozoic|Paleoproterozoic]] color:paleoproterozoic 
  from: -2800 till: -2500 text:[[Special:MyLanguage/Neoarchean|Neoarch]] color:neoarchean       
  from: -3200 till: -2800 text:[[Special:MyLanguage/Mesoarchean|Mesoarch]] color:mesoarchean      
  from: -3600 till: -3200 text:[[Special:MyLanguage/Paleoarchean|Paleoarch]] color:paleoarchean     
  from: -4000 till: -3600 text:[[Special:MyLanguage/Eoarchean|Eoarchean]] color:eoarchean
  from: start till: -4000 color:white

  bar:period

  fontsize:6
  from: -2.6 till: 0        color:quaternary
  from: -23.03 till: -2.6   color:neogene
  from: -65.5 till: -23.03  color:paleogene
  from: -145.5 till: -65.5  color:cretaceous
  from: -199.6 till: -145.5 color:jurassic
  from: -251 till: -199.6   color:triassic
  from: -299 till: -251     color:permian
  from: -359.2 till: -299   color:carboniferous
  from: -416 till: -359.2   color:devonian
  from: -443.7 till: -416   color:silurian
  from: -488.3 till: -443.7 color:ordovician
  from: -542 till: -488.3   color:cambrian

  from: -635  till: -542  text:[[Special:MyLanguage/Ediacaran|Ed.]] color:ediacaran
  from: -850  till: -635  text:[[Special:MyLanguage/Cryogenian|Cryo]] color:cryogenian
  from: -1000 till: -850  text:[[Special:MyLanguage/Tonian|Tonian]] color:tonian
  from: -1200 till: -1000 text:[[Special:MyLanguage/Stenian|Stenian]] color:stenian
  from: -1400 till: -1200 text:[[Special:MyLanguage/Ectasian|Ectasian]] color:ectasian
  from: -1600 till: -1400 text:[[Special:MyLanguage/Calymmian|Calymm]] color:calymmian
  from: -1800 till: -1600 text:[[Special:MyLanguage/Statherian|Stather]] color:statherian
  from: -2050 till: -1800 text:[[Special:MyLanguage/Orosirian|Orosirian]] color:orosirian
  from: -2300 till: -2050 text:[[Special:MyLanguage/Rhyacian|Rhyacian]] color:rhyacian
  from: -2500 till: -2300 text:[[Special:MyLanguage/Siderian|Siderian]] color:siderian
  from: start till: -2500 color:white
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize  = width:800 height:100
PlotArea   = left:65 right:15 bottom:20 top:5
AlignBars  = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black  value:black
  id:white  value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-542 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:100 start:-500
ScaleMinor = unit:year increment:10  start:-540

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:eon
  at:      0   align:right  $markred 
  at:   -542   align:left   $markred shift:(2,3)
  from: -542   till:    0   text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic

  bar:era
  at:   0     align:right $markgreen
  at:   -65.5 align:left  $markgreen shift:(2,3)
  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Mesozoic]] color:mesozoic
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic

  bar:period fontsize:8
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neo]] color:neogene
  from: -65.5 till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene
  from: -145.5 till: -65.5 text:[[Special:MyLanguage/Cretaceous|Cretaceous]] color:cretaceous
  from: -199.6 till: -145.5 text:[[Special:MyLanguage/Jurassic|Jurassic]] color:jurassic
  from: -251.4 till: -199.6 text:[[Special:MyLanguage/Triassic|Triassic]] color:triassic
  from: -299 till: -251.4 text:[[Special:MyLanguage/Permian|Permian]] color:permian
  from: -359.2 till: -299 text:[[Special:MyLanguage/Carboniferous|Carboniferous]] color:carboniferous
  from: -416 till: -359.2 text:[[Special:MyLanguage/Devonian|Devonian]] color:devonian
  from: -443.7 till: -416 text:[[Special:MyLanguage/Silurian|Silurian]] color:silurian
  from: -488.3 till: -443.7 text:[[Special:MyLanguage/Ordovician|Ordovician]] color:ordovician
  from: -542 till: -488.3 text:[[Cambrian] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Cenozoic|Cambrian]] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic

  bar:period
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neogene]] color:neogene
  from: start  till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene

  bar:epoch
  from: -0.1 till: 0  text:[[Special:MyLanguage/Holocene|H]] color:holocene 
  from: -2.588 till: -0.1 text:[[Special:MyLanguage/Pleistocene|P]] color:pleistocene
  from: -5.332 till: -2.588 text:[[Special:MyLanguage/Pliocene|Pliocene]] color:pliocene fontsize:7
  from: -23.03 till: -5.332 text:[[Special:MyLanguage/Miocene|Miocene]] color:miocene
  from: -33.9 till: -23.03 text:[[Special:MyLanguage/Oligocene|Oligocene]] color:oligocene
  from: -55.8 till: -33.9 text:[[Special:MyLanguage/Eocene|Eocene]] color:eocene
  from: start till: -55.8 text:[[Special:MyLanguage/Paleocene|Paleocene]] color:paleocene
&lt;/timeline&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=3 align=left&gt;{{Wikimedia Growth}}&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;


&lt;span id="Code_example"&gt;&lt;/span&gt;
== Codebeispiel ==
:''Siehe auch:'' {{ll|Extension:EasyTimeline/syntax}}

&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Just to show you that the script syntax is reasonably intuitive,
here is the script for the image above: Soviet Leaders.
&lt;/div&gt; 

&lt;syntaxhighlight lang="moin"&gt;
&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Double and single brackets can be used like on wikipedia, language prefix is possible, e.g. &lt;syntaxhighlight lang="moin" inline&gt;[[de:foo|more about foo]]&lt;/syntaxhighlight&gt;. Single brackets for external links are also supported.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Great timelines elsewhere==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Here are two great sites that may serve as inspiration, it would be very easy to recreate most of those timelines verbatim and with roughly similar layout with EasyTimeline (not yet with images but that may change), but I'm afraid that would be 'not done'.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[http://www.hyperhistory.com/online_n2/History_n2/a.html Hyperhistory] e.g. click on button 'people' left, then on 'special lifelines', right.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*I hope we will have a set like [http://chaos1.hypermart.net/fullsize.htm] in a years time (click on ''full size image'' for any map), possibly even with images. The main effort will be to gather all info without snatching everything from here (most of these maps are based exclusively on data from Britannica).
&lt;/div&gt;

==Unicode==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
EasyTimeline does not yet support Unicode.
&lt;/div&gt; 

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Aug 2004: Minimal UTF-8 support has been added, meaning that EasyTimeline now recognizes UTF-8 encoded characters. However support for directionality and complex scripts is very lacking. The default font may not have glyphs for all characters. An alternate font can be specified via &lt;code&gt;$wgTimelineFontFile&lt;/code&gt;
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===SVG to PNG===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
To show texts correctly for RTL languages (like Arabic, Persian, Hebrew,...) you can use {{tmpl|0={{tag|timeline|params={{attr|method|"svg2png"}}|content=$1}}|timeline code here}} instead of {{tmpl|0={{tag|timeline|content=$1}}|timeline code here}}. it shows timeline as png but the links will be disabled.
&lt;/div&gt;

&lt;span id="Tips"&gt;&lt;/span&gt;
== Tipps ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For first time users EasyTimeline may not seem that easy at all. As with all script languages it takes some getting used to. Also the syntax description may be a bit bewildering due to its sheer size. Fortunately many elements of the script language are optional.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The 'Easy' in EasyTimeline conveys the message that once a timeline exists it is not so hard to understand, enhance or correct. Also translating for use on another Wikipedia it is pretty straightforward.
&lt;/div&gt; 

Tipps:

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See some [[#charts-examples|chart examples]] to find something you could pick and edit for your own stuff
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*Put each timeline on a separate Template page: this makes it easier to edit, faster to preview, possible to include it in several pages
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Using the current date==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use the current date make sure the table opens with &lt;code&gt;&lt;nowiki&gt;{{#tag:timeline|&lt;/nowiki&gt;&lt;/code&gt; and closes with &lt;code&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then the current date can be inserted using magic words.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example &lt;code&gt;&lt;nowiki&gt;{{#time: d/m/Y }}&lt;/nowiki&gt;&lt;/code&gt; or &lt;code&gt;&lt;nowiki&gt;{{CURRENTDAY2}}/{{CURRENTMONTH2}}/{{CURRENTYEAR}}&lt;/nowiki&gt;&lt;/code&gt; will both yield the date in format dd/mm/yyyy.&lt;/span&gt;

&lt;span id="See_also"&gt;&lt;/span&gt;
== Siehe auch ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[Special:MyLanguage/Extension:EasyTimeline/syntax|EasyTimeline Coding]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*Presentation about EasyTimeline at Wikimania 2005 ([[m:Transwiki:Wikimania05/Workshop-EZ1|abstract]], [http://upload.wikimedia.org/wikipedia/commons/9/90/Wikimania_2005_Presentation_EasyTimeline.pdf slides], [http://upload.wikimedia.org/wikipedia/commons/7/78/Wikimania_2005_Presentation_Easytimeline_Speaker_Notes.pdf speaker notes])
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[m:WikiTimeScale|m:WikiTimeScale]] as a proposal for realizing timescales for wikipedia articles externally.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[w:Template:Simple Horizontal timeline|w:Template:Simple Horizontal timeline]] An easier timeline to use on Wikipedia.
&lt;/div&gt;
*{{ll|Extension:Graph}}

==Installation==

Siehe [[Special:MyLanguage/Extension:EasyTimeline/installation|/installation]]

&lt;span id="External_links"&gt;&lt;/span&gt;
== Externe Links ==
* [http://www.simile-widgets.org &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;SIMILE Widgets&lt;/span&gt;] - DHTML-based AJAXy widget for visualizing time-based events

{{OnWikimedia}}
{{Used by}}</text>
    <sha1>a5ba87eb17d06581f73e3221aec8286a97ce83e8</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Extension:EasyTimeline/cs</title>
  <ns>102</ns>
  <id>821711</id>
  <revision>
    <id>6624078</id>
    <parentid>6585736</parentid>
    <timestamp>2024-07-09T04:46:02Z</timestamp>
    <contributor>
      <username>FuzzyBot</username>
      <id>451990</id>
    </contributor>
    <comment>Updating to match new version of source page</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="23936" xml:space="preserve">&lt;languages /&gt;
{{Extension
|type1           = tag
|status          = stable
|author          = [[w:User:Erik Zachte|Erik Zachte]]
|description     = Přidá {{tag|timeline|open}} tag pro vytváření časových os
|download        = {{WikimediaDownload|timeline}}
|needs-updatephp = no
|changelog       = {{git file|action=summary|project=mediawiki/extensions/timeline|branch=HEAD|text=CHANGELOG}}
|phabricator        = EasyTimeline
|pagedrive1      = true
|example         = [[#charts-examples|Viz níže]]
|translate       = ext-timeline
}}
{|
| style="padding-{{dir|{{pagelang}}|right|left}}:1em" | ''Další jazyky:''
| {{flatlist|1=
* [[:de:Hilfe:Zeitleisten|de]]
* [[:es:Ayuda:Cronologías|es]]
* [[:eu:Laguntza:Denbora lerroak|eu]]
* [[:fr:Aide:Frise chronologique|fr]]
* [[:id:Wikipedia:Timeline|id]]
* [[:it:Aiuto:Timeline|it]]
* [[:nl:Help:EasyTimeline|nl]]
* [[:pt:Wikipedia:EasyTimeline|pt]]
* [[:zh:Help:简易时间线语法|zh]]
}}
|}

Rozšíření '''EasyTimeline''' generuje z wikitextu graf, který vkládá do stránky jako bitmapový obrázek. Může to být buď jednoduchá časová osa (vertikální či horizontální) nebo dvourozměrný graf.

[[Special:MyLanguage/Extension:EasyTimeline/installation|Jak nainstalovat rozšíření EasyTimeline]] je popsané ve zdejší nápovědě.
Nejprve si prostudujte ukázkové příklady  [http://infodisiac.com/Wikipedia/EasyTimeline/Introduction.htm na stránce o EasyTimeline] a pak si je můžete zkusit na [[testwiki:EasyTimeline|test.wikipedia.org]]

[[Special:MyLanguage/Extension:EasyTimeline/syntax|K syntaxi EasyTimeline]] je zde v dispozici samostatná stránka.

Existuje [[phab:T137291|dlouhodobé úsilí]] získat rozšíření {{ll|Extension:Chart|Chart}}, které toto rozšíření nahradí.

&lt;span id="Requirements"&gt;&lt;/span&gt;
== Požadavky ==

Toto rozšíření vyžaduje aby na vašem serveru byly nainstalované následující aplikace:

* [[w:Ploticus|Ploticus]]
* [[w:perl|perl]]
* [[w:XnView|NConvert]] (pouze Windows)

{{anchor|charts-examples}}
&lt;span id="Charts_examples"&gt;&lt;/span&gt;
== Příklady grafů ==

Zde je několik příkladů, které demonstrují co všechno je možné. Pro složitější grafy viz

* [[:en:Template:Timeline WWII - Pacific Theater|WW II - Pacific Theatre]] - horizontální
* [[:en:Timeline of aircraft carriers of the United States Navy|Časová osa letadlových lodí námořnictva Spojených států]] - horizontální
* [[:en:Template:Timeline History of Computing|Historie výpočetní techniky]] - horizontální
* [[:de:Vorlage:Zeitleiste Tour-de-France-Sieger|Tour-de-France Sieger]] - vertikální
* [[:en:Template:Vocal and instrumental pitch ranges|Vokální a instrumentální rozsahy výšek]] (pěkný příklad diagramu, který vůbec není časovou osou)  - horizontální
* [[:en:Template:Complete timeline of Macintosh models|Kompletní časová osa modelů Macintosh]]  - horizontální
* Jednodušší časové osy:
** [[:en:Template:Extinction events graphical timeline|Šablona:Grafická časová osa událostí vyhynutí]]  - horizontální, používá [[w:Template:Horizontal timeline|Šablona:Horizontální časová osa]]
** [[:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players|:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players]]  - vodorovně se šipkami
** [[:en:Template:Early evolution of the light bulb|Šablona:Ranný vývoj žárovky]]  - vertikální
** [[:en:Invention of radio#Radio invention timeline|Vynález rádia#Časová osa vynálezu rádia]]  - vertikální
** [[:en:Gaius_Marius#Timeline|Gaius_Marius#Časová osa]]   - vertikální
** [[:en:User:Syed Atif Nazir/Template:Imam timeline|User:Syed Atif Nazir/Šablona:Časová osa imáma]]   - vertikální
** [https://de.wikipedia.org/w/index.php?title=Aurich&amp;oldid=171331690#Einwohnerentwicklung Populační vývoj] - horizontální

&lt;table&gt;&lt;tr&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize  = width:160 height:550
PlotArea   = width:50 height:530 left:50 bottom:10

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;/td&gt;

&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:proterozoic value:rgb(0.968,0.207,0.388)
  id:neoproterozoic value:rgb(0.996,0.701,0.258)
  id:ediacaran value:rgb(0.996,0.85,0.415)
  id:cryogenian value:rgb(0.996,0.8,0.36)
  id:tonian value:rgb(0.996,0.75,0.305)
  id:mesoproterozoic value:rgb(0.996,0.705,0.384)
  id:stenian value:rgb(0.996,0.85,0.604)
  id:ectasian value:rgb(0.996,0.8,0.541)
  id:calymmian value:rgb(0.996,0.75,0.478)
  id:paleoproterozoic value:rgb(0.968,0.263,0.44)
  id:statherian value:rgb(0.968,0.459,0.655)
  id:orosirian value:rgb(0.968,0.408,0.596)
  id:rhyacian value:rgb(0.968,0.357,0.537)
  id:siderian value:rgb(0.968,0.306,0.478)
  id:archean value:rgb(0.996,0.157,0.498)
  id:neoarchean value:rgb(0.976,0.608,0.757)
  id:mesoarchean value:rgb(0.968,0.408,0.662)
  id:paleoarchean value:rgb(0.96,0.266,0.624)
  id:eoarchean value:rgb(0.902,0.114,0.549)
  id:hadean value:rgb(0.717,0,0.494)
  id:black value:black
  id:white value:white

Period     = from:-4567 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:500 start:-4500
ScaleMinor = unit:year increment:100 start:-4500

Define $markred = text:"*" textcolor:red shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)


  bar:eon

  at:       0 align:right $markred
  at:    -542 align:left  $markred shift:(2,3)
  from:  -542 till:    0  text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic   
  from: -2500 till: -542  text:[[Special:MyLanguage/Proterozoic|Proterozoic]] color:proterozoic   
  from: -4000 till: -2500 text:[[Special:MyLanguage/Archean|Archean]]     color:archean   
  from: start till: -4000 text:[[Special:MyLanguage/Hadean|Hadean]]      color:hadean

  bar:era

  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|C]] color:cenozoic        
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Meso]] color:mesozoic        
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic 
  from: -1000 till: -542  text:[[Special:MyLanguage/Neoproterozoic|Neoproterozoic]] color:neoproterozoic   
  from: -1600 till: -1000 text:[[Special:MyLanguage/Mesoproterozoic|Mesoproterozoic]] color:mesoproterozoic  
  from: -2500 till: -1600 text:[[Special:MyLanguage/Paleoproterozoic|Paleoproterozoic]] color:paleoproterozoic 
  from: -2800 till: -2500 text:[[Special:MyLanguage/Neoarchean|Neoarch]] color:neoarchean       
  from: -3200 till: -2800 text:[[Special:MyLanguage/Mesoarchean|Mesoarch]] color:mesoarchean      
  from: -3600 till: -3200 text:[[Special:MyLanguage/Paleoarchean|Paleoarch]] color:paleoarchean     
  from: -4000 till: -3600 text:[[Special:MyLanguage/Eoarchean|Eoarchean]] color:eoarchean
  from: start till: -4000 color:white

  bar:period

  fontsize:6
  from: -2.6 till: 0        color:quaternary
  from: -23.03 till: -2.6   color:neogene
  from: -65.5 till: -23.03  color:paleogene
  from: -145.5 till: -65.5  color:cretaceous
  from: -199.6 till: -145.5 color:jurassic
  from: -251 till: -199.6   color:triassic
  from: -299 till: -251     color:permian
  from: -359.2 till: -299   color:carboniferous
  from: -416 till: -359.2   color:devonian
  from: -443.7 till: -416   color:silurian
  from: -488.3 till: -443.7 color:ordovician
  from: -542 till: -488.3   color:cambrian

  from: -635  till: -542  text:[[Special:MyLanguage/Ediacaran|Ed.]] color:ediacaran
  from: -850  till: -635  text:[[Special:MyLanguage/Cryogenian|Cryo]] color:cryogenian
  from: -1000 till: -850  text:[[Special:MyLanguage/Tonian|Tonian]] color:tonian
  from: -1200 till: -1000 text:[[Special:MyLanguage/Stenian|Stenian]] color:stenian
  from: -1400 till: -1200 text:[[Special:MyLanguage/Ectasian|Ectasian]] color:ectasian
  from: -1600 till: -1400 text:[[Special:MyLanguage/Calymmian|Calymm]] color:calymmian
  from: -1800 till: -1600 text:[[Special:MyLanguage/Statherian|Stather]] color:statherian
  from: -2050 till: -1800 text:[[Special:MyLanguage/Orosirian|Orosirian]] color:orosirian
  from: -2300 till: -2050 text:[[Special:MyLanguage/Rhyacian|Rhyacian]] color:rhyacian
  from: -2500 till: -2300 text:[[Special:MyLanguage/Siderian|Siderian]] color:siderian
  from: start till: -2500 color:white
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize  = width:800 height:100
PlotArea   = left:65 right:15 bottom:20 top:5
AlignBars  = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black  value:black
  id:white  value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-542 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:100 start:-500
ScaleMinor = unit:year increment:10  start:-540

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:eon
  at:      0   align:right  $markred 
  at:   -542   align:left   $markred shift:(2,3)
  from: -542   till:    0   text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic

  bar:era
  at:   0     align:right $markgreen
  at:   -65.5 align:left  $markgreen shift:(2,3)
  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Mesozoic]] color:mesozoic
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic

  bar:period fontsize:8
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neo]] color:neogene
  from: -65.5 till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene
  from: -145.5 till: -65.5 text:[[Special:MyLanguage/Cretaceous|Cretaceous]] color:cretaceous
  from: -199.6 till: -145.5 text:[[Special:MyLanguage/Jurassic|Jurassic]] color:jurassic
  from: -251.4 till: -199.6 text:[[Special:MyLanguage/Triassic|Triassic]] color:triassic
  from: -299 till: -251.4 text:[[Special:MyLanguage/Permian|Permian]] color:permian
  from: -359.2 till: -299 text:[[Special:MyLanguage/Carboniferous|Carboniferous]] color:carboniferous
  from: -416 till: -359.2 text:[[Special:MyLanguage/Devonian|Devonian]] color:devonian
  from: -443.7 till: -416 text:[[Special:MyLanguage/Silurian|Silurian]] color:silurian
  from: -488.3 till: -443.7 text:[[Special:MyLanguage/Ordovician|Ordovician]] color:ordovician
  from: -542 till: -488.3 text:[[Cambrian] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Cenozoic|Cambrian]] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic

  bar:period
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neogene]] color:neogene
  from: start  till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene

  bar:epoch
  from: -0.1 till: 0  text:[[Special:MyLanguage/Holocene|H]] color:holocene 
  from: -2.588 till: -0.1 text:[[Special:MyLanguage/Pleistocene|P]] color:pleistocene
  from: -5.332 till: -2.588 text:[[Special:MyLanguage/Pliocene|Pliocene]] color:pliocene fontsize:7
  from: -23.03 till: -5.332 text:[[Special:MyLanguage/Miocene|Miocene]] color:miocene
  from: -33.9 till: -23.03 text:[[Special:MyLanguage/Oligocene|Oligocene]] color:oligocene
  from: -55.8 till: -33.9 text:[[Special:MyLanguage/Eocene|Eocene]] color:eocene
  from: start till: -55.8 text:[[Special:MyLanguage/Paleocene|Paleocene]] color:paleocene
&lt;/timeline&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=3 align=left&gt;{{Wikimedia Growth}}&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;


&lt;span id="Code_example"&gt;&lt;/span&gt;
== Příklady kódu ==
:''Související stránky:'' {{ll|Extension:EasyTimeline/syntax}}

&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

Pro demonstraci intuitivní syntaxe kódu následuje ukázkový kód výše uvedeného grafu s přehledem funkčního období sovětských vůdců v čase. 

&lt;syntaxhighlight lang="moin"&gt;
&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;
&lt;/syntaxhighlight&gt;

Dvojité a jednoduché hranaté závorky lze normálně použít, včetně jazykového prefixu, např. &lt;syntaxhighlight lang="moin" inline&gt;[[de:foo|více o foo v němčině]]&lt;/syntaxhighlight&gt;. Externí odkazy, uzavřené do jednoduchých hranatých závorek lze rovněž použít.

&lt;span id="Great_timelines_elsewhere"&gt;&lt;/span&gt;
== Skvělé časové osy jinde ==

Zde jsou dvě skvělé stránky, které mohou sloužit jako inspirace, bylo by velmi snadné znovu vytvořit většinu těchto časových os doslovně a se zhruba podobným rozložením s EasyTimeline (zatím ne s obrázky, ale to se může změnit), ale obávám se, že by to bylo 'nedodělané'.

*[http://www.hyperhistory.com/online_n2/History_n2/a.html Hyperhistory] např. klikněte na tlačítko 'people' (lidé) vlevo, poté na 'special lifelines' (zvláštní záchranná lana), vpravo.
*Doufám, že za rok budeme mít sadu jako [http://chaos1.hypermart.net/fullsize.htm] (klikněte na ''obrázek v plné velikosti'' pro jakoukoli mapu), možná i s obrázky. Hlavní snahou bude shromáždit všechny informace, aniž byste odtud všechno vytrhávali (většina těchto map je založena výhradně na datech z Britannica).

&lt;span id="Unicode"&gt;&lt;/span&gt;
== Unicode ==

EasyTimeline nemá plnou podporu unicode. 

Srpen 2004: Byla přidaná alespoň minimální podpora UTF-8, což znamená že EasyTimeline umí rozeznat znaky v UTF-8. Ale podpora směru toku textu a komplexních znaků je velmi špatná. Výchozí font totiž neobsahuje všechna písmena. Ale prostřednictvím proměnné &lt;code&gt;$wgTimelineFontFile&lt;/code&gt; se dá nastavit jiný font.

&lt;span id="SVG_to_PNG"&gt;&lt;/span&gt;
=== SVG na PNG ===

Aby se zobrazovaly texty v RTL jazycích (psaných zprava doleva, jako je Arabština, Perština, Hebrejština,…) správně, můžete využít '''svg2png'''. Stačí když uvedete {{tmpl|0={{tag|timeline|params={{attr|method|"svg2png"}}|content=$1}}|…}} místo {{tmpl|0={{tag|timeline|content=$1}}|…}}. Graf se vygeneruje jako SVG obrázek, který se následně převede do PNG, takže RTL texty budou zobrazeny správně, ale bohužel nebudou aktivní linky.

&lt;span id="Tips"&gt;&lt;/span&gt;
== Tipy ==

Zpočátku se může zdát použití EasyTimeline složité, ale je to pouze otázka zvyku. Orientace může být  komplikovaná obzvláště u rozsáhlejších grafů. Naštěstí je mnoho prvků syntaxe nepovinných a lze používat i komentáře.

'Easy' v EasyTimeline totiž neznamená, že je jednoduché časovou osu vytvořit, ale to, že je snadné obsah generovaného grafu upravit. Také je snadné tímto způsobem dělat překlady grafů pro jejich využití na jinojazyčné Wikipedii. 

Tipy:

* Podívejte se na některé [[#charts-examples|příklady grafů]] a najděte něco, co byste si mohli vybrat a upravit pro své vlastní věci
* Umístěte každou časovou osu na samostatnou stránku šablony: Usnadňuje to úpravy, urychluje zobrazení náhledu, je možné ji zahrnout na několik stránek

&lt;span id="Using_the_current_date"&gt;&lt;/span&gt;
== Použití aktuálního data ==
Pokud chcete pracovat s aktuálním datem, pak musíte použít místo tagu syntaxi podobnou parametrizované šabloně, kdy oblast s kódem bude začínat &lt;code&gt;&lt;nowiki&gt;{{#tag:timeline|&lt;/nowiki&gt;&lt;/code&gt; a uzavřou ji dvojité složené závorky &lt;code&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;.
Poté lze pomocí kouzelných slov vložit aktuální datum.
Například &lt;code&gt;&lt;nowiki&gt;{{#time: d/m/Y }}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code&gt;&lt;nowiki&gt;{{CURRENTDAY2}}/{{CURRENTMONTH2}}/{{CURRENTYEAR}}&lt;/nowiki&gt;&lt;/code&gt; oba zobrazí datum ve formátu dd/mm/rrrr.

&lt;span id="See_also"&gt;&lt;/span&gt;
== Související odkazy ==

*[[Special:MyLanguage/Extension:EasyTimeline/syntax|Syntaxe kódu pro EasyTimeline]]
*Prezentace o EasyTimeline z Wikimanie 2005 ([[m:Transwiki:Wikimania05/Workshop-EZ1|abstrakt]], [http://upload.wikimedia.org/wikipedia/commons/9/90/Wikimania_2005_Presentation_EasyTimeline.pdf prezentace], [http://upload.wikimedia.org/wikipedia/commons/7/78/Wikimania_2005_Presentation_Easytimeline_Speaker_Notes.pdf poznámky přednášejícího])
*[[m:WikiTimeScale|m:WikiTimeScale]] jako návrh na externí realizaci časových os pro články wikipedie.
* [[w:Template:Simple Horizontal timeline|Šablona:Jednoduchá horizontální časová osa]] Jednodušší časová osa k použití na Wikipedii.
*{{ll|Extension:Graph}}

&lt;span id="Installation"&gt;&lt;/span&gt;
== Instalace ==

Viz [[Special:MyLanguage/Extension:EasyTimeline/installation|/instalace]]

&lt;span id="External_links"&gt;&lt;/span&gt;
== Externí odkazy ==
* [http://www.simile-widgets.org SIMILE Widgets] - DHTML-based AJAXy widget for visualizing time-based events

{{OnWikimedia}}
{{Used by}}</text>
    <sha1>a68a8b8563d5d66f94b6fb7aa0ded8690091dee2</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Extension:EasyTimeline/ar</title>
  <ns>102</ns>
  <id>821013</id>
  <revision>
    <id>6624079</id>
    <parentid>5986613</parentid>
    <timestamp>2024-07-09T04:46:02Z</timestamp>
    <contributor>
      <username>FuzzyBot</username>
      <id>451990</id>
    </contributor>
    <comment>Updating to match new version of source page</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="25959" xml:space="preserve">&lt;languages /&gt;
{{Extension
|type1           = tag
|status          = stable
|author          = [[w:User:Erik Zachte|Erik Zachte]]
|description     = &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Adds  {{tag|timeline|open}} tag for creating timelines&lt;/span&gt;
|download        = {{WikimediaDownload|timeline}}
|needs-updatephp = no
|changelog       = {{git file|action=summary|project=mediawiki/extensions/timeline|branch=HEAD|text=CHANGELOG}}
|phabricator        = EasyTimeline
|pagedrive1      = true
|example         = [[#charts-examples|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See below&lt;/span&gt;]]
|translate       = ext-timeline
}}
{|
| style="padding-{{dir|{{pagelang}}|right|left}}:1em" | ''لغات أخرى:''
| {{flatlist|1=
* [[:de:Hilfe:Zeitleisten|de]]
* [[:es:Ayuda:Cronologías|es]]
* [[:eu:Laguntza:Denbora lerroak|eu]]
* [[:fr:Aide:Frise chronologique|fr]]
* [[:id:Wikipedia:Timeline|id]]
* [[:it:Aiuto:Timeline|it]]
* [[:nl:Help:EasyTimeline|nl]]
* [[:pt:Wikipedia:EasyTimeline|pt]]
* [[:zh:Help:简易时间线语法|zh]]
}}
|}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The '''EasyTimeline''' extension produces an embedded image from wikitext. The image can be a one-dimensional diagram (horizontally or vertically), or a two-dimensional one.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See the help page on [[Special:MyLanguage/Extension:EasyTimeline/installation|installing EasyTimeline]] on your wiki.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See also [http://infodisiac.com/Wikipedia/EasyTimeline/Introduction.htm this page on EasyTimeline] or play with it at [[testwiki:EasyTimeline|test.wikipedia.org]].&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
See the help page on [[Special:MyLanguage/Extension:EasyTimeline/syntax|using the syntax provided by this extension]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is a [[phab:T137291|long-term effort]] to get the {{ll|Extension:Chart|Chart}} extension to replace this extension.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Requirements ==
&lt;/div&gt;

لتفعيل هذه الخاصية على موقعك الالكتروني لا بد من تحميل/توفر هذه البرامج على السيرفر:

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[w:Ploticus|Ploticus]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[w:perl|perl]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[w:XnView|NConvert]] (Windows only)
&lt;/div&gt;

{{anchor|charts-examples}}
&lt;span id="Charts_examples"&gt;&lt;/span&gt;
== أمثلة تطبيقية ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Several examples of what is possible. For more extensive examples see
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Timeline WWII - Pacific Theater|WW II - Pacific Theatre]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Timeline of aircraft carriers of the United States Navy|:en:Timeline of aircraft carriers of the United States Navy]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Timeline History of Computing|History of Computing]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:de:Vorlage:Zeitleiste Tour-de-France-Sieger|Tour-de-France Sieger]] - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Vocal and instrumental pitch ranges|Vocal and instrumental pitch ranges]] (a nice example of a diagram that is not a timeline at all)  - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Complete timeline of Macintosh models|Complete timeline of Macintosh models]]  - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Simpler timelines:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Template:Extinction events graphical timeline|:en:Template:Extinction events graphical timeline]]  - horizontal, uses [[w:Template:Horizontal timeline|w:Template:Horizontal timeline]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players|:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players]]  - horizontal with arrows
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Template:Early evolution of the light bulb|:en:Template:Early evolution of the light bulb]]  - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Invention of radio#Radio invention timeline|:en:Invention of radio#Radio invention timeline]]  - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Gaius_Marius#Timeline|:en:Gaius_Marius#Timeline]]   - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:User:Syed Atif Nazir/Template:Imam timeline|:en:User:Syed Atif Nazir/Template:Imam timeline]]   - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [https://de.wikipedia.org/w/index.php?title=Aurich&amp;oldid=171331690#Einwohnerentwicklung Population developement] - horizontal
&lt;/div&gt;

&lt;table&gt;&lt;tr&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize  = width:160 height:550
PlotArea   = width:50 height:530 left:50 bottom:10

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;/td&gt;

&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:proterozoic value:rgb(0.968,0.207,0.388)
  id:neoproterozoic value:rgb(0.996,0.701,0.258)
  id:ediacaran value:rgb(0.996,0.85,0.415)
  id:cryogenian value:rgb(0.996,0.8,0.36)
  id:tonian value:rgb(0.996,0.75,0.305)
  id:mesoproterozoic value:rgb(0.996,0.705,0.384)
  id:stenian value:rgb(0.996,0.85,0.604)
  id:ectasian value:rgb(0.996,0.8,0.541)
  id:calymmian value:rgb(0.996,0.75,0.478)
  id:paleoproterozoic value:rgb(0.968,0.263,0.44)
  id:statherian value:rgb(0.968,0.459,0.655)
  id:orosirian value:rgb(0.968,0.408,0.596)
  id:rhyacian value:rgb(0.968,0.357,0.537)
  id:siderian value:rgb(0.968,0.306,0.478)
  id:archean value:rgb(0.996,0.157,0.498)
  id:neoarchean value:rgb(0.976,0.608,0.757)
  id:mesoarchean value:rgb(0.968,0.408,0.662)
  id:paleoarchean value:rgb(0.96,0.266,0.624)
  id:eoarchean value:rgb(0.902,0.114,0.549)
  id:hadean value:rgb(0.717,0,0.494)
  id:black value:black
  id:white value:white

Period     = from:-4567 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:500 start:-4500
ScaleMinor = unit:year increment:100 start:-4500

Define $markred = text:"*" textcolor:red shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)


  bar:eon

  at:       0 align:right $markred
  at:    -542 align:left  $markred shift:(2,3)
  from:  -542 till:    0  text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic   
  from: -2500 till: -542  text:[[Special:MyLanguage/Proterozoic|Proterozoic]] color:proterozoic   
  from: -4000 till: -2500 text:[[Special:MyLanguage/Archean|Archean]]     color:archean   
  from: start till: -4000 text:[[Special:MyLanguage/Hadean|Hadean]]      color:hadean

  bar:era

  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|C]] color:cenozoic        
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Meso]] color:mesozoic        
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic 
  from: -1000 till: -542  text:[[Special:MyLanguage/Neoproterozoic|Neoproterozoic]] color:neoproterozoic   
  from: -1600 till: -1000 text:[[Special:MyLanguage/Mesoproterozoic|Mesoproterozoic]] color:mesoproterozoic  
  from: -2500 till: -1600 text:[[Special:MyLanguage/Paleoproterozoic|Paleoproterozoic]] color:paleoproterozoic 
  from: -2800 till: -2500 text:[[Special:MyLanguage/Neoarchean|Neoarch]] color:neoarchean       
  from: -3200 till: -2800 text:[[Special:MyLanguage/Mesoarchean|Mesoarch]] color:mesoarchean      
  from: -3600 till: -3200 text:[[Special:MyLanguage/Paleoarchean|Paleoarch]] color:paleoarchean     
  from: -4000 till: -3600 text:[[Special:MyLanguage/Eoarchean|Eoarchean]] color:eoarchean
  from: start till: -4000 color:white

  bar:period

  fontsize:6
  from: -2.6 till: 0        color:quaternary
  from: -23.03 till: -2.6   color:neogene
  from: -65.5 till: -23.03  color:paleogene
  from: -145.5 till: -65.5  color:cretaceous
  from: -199.6 till: -145.5 color:jurassic
  from: -251 till: -199.6   color:triassic
  from: -299 till: -251     color:permian
  from: -359.2 till: -299   color:carboniferous
  from: -416 till: -359.2   color:devonian
  from: -443.7 till: -416   color:silurian
  from: -488.3 till: -443.7 color:ordovician
  from: -542 till: -488.3   color:cambrian

  from: -635  till: -542  text:[[Special:MyLanguage/Ediacaran|Ed.]] color:ediacaran
  from: -850  till: -635  text:[[Special:MyLanguage/Cryogenian|Cryo]] color:cryogenian
  from: -1000 till: -850  text:[[Special:MyLanguage/Tonian|Tonian]] color:tonian
  from: -1200 till: -1000 text:[[Special:MyLanguage/Stenian|Stenian]] color:stenian
  from: -1400 till: -1200 text:[[Special:MyLanguage/Ectasian|Ectasian]] color:ectasian
  from: -1600 till: -1400 text:[[Special:MyLanguage/Calymmian|Calymm]] color:calymmian
  from: -1800 till: -1600 text:[[Special:MyLanguage/Statherian|Stather]] color:statherian
  from: -2050 till: -1800 text:[[Special:MyLanguage/Orosirian|Orosirian]] color:orosirian
  from: -2300 till: -2050 text:[[Special:MyLanguage/Rhyacian|Rhyacian]] color:rhyacian
  from: -2500 till: -2300 text:[[Special:MyLanguage/Siderian|Siderian]] color:siderian
  from: start till: -2500 color:white
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize  = width:800 height:100
PlotArea   = left:65 right:15 bottom:20 top:5
AlignBars  = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black  value:black
  id:white  value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-542 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:100 start:-500
ScaleMinor = unit:year increment:10  start:-540

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:eon
  at:      0   align:right  $markred 
  at:   -542   align:left   $markred shift:(2,3)
  from: -542   till:    0   text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic

  bar:era
  at:   0     align:right $markgreen
  at:   -65.5 align:left  $markgreen shift:(2,3)
  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Mesozoic]] color:mesozoic
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic

  bar:period fontsize:8
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neo]] color:neogene
  from: -65.5 till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene
  from: -145.5 till: -65.5 text:[[Special:MyLanguage/Cretaceous|Cretaceous]] color:cretaceous
  from: -199.6 till: -145.5 text:[[Special:MyLanguage/Jurassic|Jurassic]] color:jurassic
  from: -251.4 till: -199.6 text:[[Special:MyLanguage/Triassic|Triassic]] color:triassic
  from: -299 till: -251.4 text:[[Special:MyLanguage/Permian|Permian]] color:permian
  from: -359.2 till: -299 text:[[Special:MyLanguage/Carboniferous|Carboniferous]] color:carboniferous
  from: -416 till: -359.2 text:[[Special:MyLanguage/Devonian|Devonian]] color:devonian
  from: -443.7 till: -416 text:[[Special:MyLanguage/Silurian|Silurian]] color:silurian
  from: -488.3 till: -443.7 text:[[Special:MyLanguage/Ordovician|Ordovician]] color:ordovician
  from: -542 till: -488.3 text:[[Cambrian] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Cenozoic|Cambrian]] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic

  bar:period
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neogene]] color:neogene
  from: start  till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene

  bar:epoch
  from: -0.1 till: 0  text:[[Special:MyLanguage/Holocene|H]] color:holocene 
  from: -2.588 till: -0.1 text:[[Special:MyLanguage/Pleistocene|P]] color:pleistocene
  from: -5.332 till: -2.588 text:[[Special:MyLanguage/Pliocene|Pliocene]] color:pliocene fontsize:7
  from: -23.03 till: -5.332 text:[[Special:MyLanguage/Miocene|Miocene]] color:miocene
  from: -33.9 till: -23.03 text:[[Special:MyLanguage/Oligocene|Oligocene]] color:oligocene
  from: -55.8 till: -33.9 text:[[Special:MyLanguage/Eocene|Eocene]] color:eocene
  from: start till: -55.8 text:[[Special:MyLanguage/Paleocene|Paleocene]] color:paleocene
&lt;/timeline&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=3 align=left&gt;{{Wikimedia Growth}}&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Code example==
&lt;/div&gt;
:''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See also:&lt;/span&gt;'' {{ll|Extension:EasyTimeline/syntax}}

&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Just to show you that the script syntax is reasonably intuitive,
here is the script for the image above: Soviet Leaders.
&lt;/div&gt; 

&lt;syntaxhighlight lang="moin"&gt;
&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Double and single brackets can be used like on wikipedia, language prefix is possible, e.g. &lt;syntaxhighlight lang="moin" inline&gt;[[de:foo|more about foo]]&lt;/syntaxhighlight&gt;. Single brackets for external links are also supported.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Great timelines elsewhere==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Here are two great sites that may serve as inspiration, it would be very easy to recreate most of those timelines verbatim and with roughly similar layout with EasyTimeline (not yet with images but that may change), but I'm afraid that would be 'not done'.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[http://www.hyperhistory.com/online_n2/History_n2/a.html Hyperhistory] e.g. click on button 'people' left, then on 'special lifelines', right.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*I hope we will have a set like [http://chaos1.hypermart.net/fullsize.htm] in a years time (click on ''full size image'' for any map), possibly even with images. The main effort will be to gather all info without snatching everything from here (most of these maps are based exclusively on data from Britannica).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Unicode==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
EasyTimeline does not yet support Unicode.
&lt;/div&gt; 

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Aug 2004: Minimal UTF-8 support has been added, meaning that EasyTimeline now recognizes UTF-8 encoded characters. However support for directionality and complex scripts is very lacking. The default font may not have glyphs for all characters. An alternate font can be specified via &lt;code&gt;$wgTimelineFontFile&lt;/code&gt;
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===SVG to PNG===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
To show texts correctly for RTL languages (like Arabic, Persian, Hebrew,...) you can use {{tmpl|0={{tag|timeline|params={{attr|method|"svg2png"}}|content=$1}}|timeline code here}} instead of {{tmpl|0={{tag|timeline|content=$1}}|timeline code here}}. it shows timeline as png but the links will be disabled.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Tips==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For first time users EasyTimeline may not seem that easy at all. As with all script languages it takes some getting used to. Also the syntax description may be a bit bewildering due to its sheer size. Fortunately many elements of the script language are optional.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The 'Easy' in EasyTimeline conveys the message that once a timeline exists it is not so hard to understand, enhance or correct. Also translating for use on another Wikipedia it is pretty straightforward.
&lt;/div&gt; 

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tips:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See some [[#charts-examples|chart examples]] to find something you could pick and edit for your own stuff
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*Put each timeline on a separate Template page: this makes it easier to edit, faster to preview, possible to include it in several pages
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Using the current date==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use the current date make sure the table opens with &lt;code&gt;&lt;nowiki&gt;{{#tag:timeline|&lt;/nowiki&gt;&lt;/code&gt; and closes with &lt;code&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then the current date can be inserted using magic words.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example &lt;code&gt;&lt;nowiki&gt;{{#time: d/m/Y }}&lt;/nowiki&gt;&lt;/code&gt; or &lt;code&gt;&lt;nowiki&gt;{{CURRENTDAY2}}/{{CURRENTMONTH2}}/{{CURRENTYEAR}}&lt;/nowiki&gt;&lt;/code&gt; will both yield the date in format dd/mm/yyyy.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==See also==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[Special:MyLanguage/Extension:EasyTimeline/syntax|EasyTimeline Coding]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*Presentation about EasyTimeline at Wikimania 2005 ([[m:Transwiki:Wikimania05/Workshop-EZ1|abstract]], [http://upload.wikimedia.org/wikipedia/commons/9/90/Wikimania_2005_Presentation_EasyTimeline.pdf slides], [http://upload.wikimedia.org/wikipedia/commons/7/78/Wikimania_2005_Presentation_Easytimeline_Speaker_Notes.pdf speaker notes])
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[m:WikiTimeScale|m:WikiTimeScale]] as a proposal for realizing timescales for wikipedia articles externally.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[w:Template:Simple Horizontal timeline|w:Template:Simple Horizontal timeline]] An easier timeline to use on Wikipedia.
&lt;/div&gt;
*{{ll|Extension:Graph}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Installation==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
See [[Special:MyLanguage/Extension:EasyTimeline/installation|/installation]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==External links==
&lt;/div&gt;
* [http://www.simile-widgets.org &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;SIMILE Widgets&lt;/span&gt;] - DHTML-based AJAXy widget for visualizing time-based events

{{OnWikimedia}}
{{Used by}}</text>
    <sha1>6633ef944815d71f7c272e473e15a60ef7d98c2a</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Extension:EasyTimeline/fr</title>
  <ns>102</ns>
  <id>1098272</id>
  <revision>
    <id>6624080</id>
    <parentid>5986619</parentid>
    <timestamp>2024-07-09T04:46:04Z</timestamp>
    <contributor>
      <username>FuzzyBot</username>
      <id>451990</id>
    </contributor>
    <comment>Updating to match new version of source page</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="23855" xml:space="preserve">&lt;languages /&gt;
{{Extension
|type1           = tag
|status          = stable
|author          = [[w:User:Erik Zachte|Erik Zachte]]
|description     = Ajoute la balise {{tag|timeline|open}} pour la création de chronologies
|download        = {{WikimediaDownload|timeline}}
|needs-updatephp = no
|changelog       = {{git file|action=summary|project=mediawiki/extensions/timeline|branch=HEAD|text=CHANGELOG}}
|phabricator        = EasyTimeline
|pagedrive1      = true
|example         = [[#charts-examples|Voir ci-dessous]]
|translate       = ext-timeline
}}
{|
| style="padding-{{dir|{{pagelang}}|right|left}}:1em" | ''Autres langues :''
| {{flatlist|1=
* [[:de:Hilfe:Zeitleisten|de]]
* [[:es:Ayuda:Cronologías|es]]
* [[:eu:Laguntza:Denbora lerroak|eu]]
* [[:fr:Aide:Frise chronologique|fr]]
* [[:id:Wikipedia:Timeline|id]]
* [[:it:Aiuto:Timeline|it]]
* [[:nl:Help:EasyTimeline|nl]]
* [[:pt:Wikipedia:EasyTimeline|pt]]
* [[:zh:Help:简易时间线语法|zh]]
}}
|}

L'extension '''EasyTimeline''' produit une image intégrée à partir du wikicode. L'image peut être un diagramme à une dimension (horizontalement ou verticalement) ou à deux dimensions.

Voir la page d'aide sur l'[[Special:MyLanguage/Extension:EasyTimeline/installation|Installation d'EasyTimeline]] sur votre wiki.
Voir aussi [http://infodisiac.com/Wikipedia/EasyTimeline/Introduction.htm cette page sur EasyTimeline] ou jouer avec sur [[testwiki:EasyTimeline|test.wikipedia.org]].

Voir la page d'aide [[Special:MyLanguage/Extension:EasyTimeline/syntax|Utiliser la syntaxe fournie par cette extension]].

Il faudra un [[phab:T137291|effort à long terme]] avant que l'extension {{ll|Extension:Chart|Chart}} ne remplace cette extension.

&lt;span id="Requirements"&gt;&lt;/span&gt;
== Prérequis ==

Cette extension nécessite que les programmes suivants soient installés sur le serveur :

*[[w:en:Ploticus|Ploticus]]
*[[w:en:perl|Perl]]
*[[w:en:XnView|NConvert]] (Windows seulement)

{{anchor|charts-examples}}
&lt;span id="Charts_examples"&gt;&lt;/span&gt;
== Exemples de diagrammes ==

Plusieurs exemples de ce qui est possible d'obtenir. Pour les exemples plus détaillés, voir

* [[:en:Template:Timeline WWII - Pacific Theater|WW II - Théâtre du Pacifique]] - horizontal
* [[:en:Timeline of aircraft carriers of the United States Navy|Chronologie des porte-avions de la marine américaine (en)]] - horizontal
* [[:en:Template:Timeline History of Computing|Histoire de l'informatique (en)]] - horizontal
* [[:de:Vorlage:Zeitleiste Tour-de-France-Sieger|Tour-de-France Sieger]] - vertical
* [[:en:Template:Vocal and instrumental pitch ranges|Plages de hauteur vocale et instrumentale]] (un bel exemple de diagramme qui n'est pas du tout une chronologie) - horizontal
* [[:en:Template:Complete timeline of Macintosh models|Chronologie complète des modèles Macintosh]] - horizontal
* Des temps plus simples :
** [[:en:Template:Extinction events graphical timeline|Template:Extinction events graphical timeline]]  - horizontal, utilise le [[w:Template:Horizontal timeline|Modèle Horizontal timeline]]
** [[:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players|Invention_of_radio / Players]]  - horizontale avec des flèches
** Modèle [[:en:Template:Early evolution of the light bulb|Early evolution of the light bulb]]  - vertical
** [[:en:Invention of radio#Radio invention timeline|Invention of radio]]  - vertical
** [[:en:Gaius_Marius#Timeline|Gaius Marius]]   - vertical
** Modèle [[:en:User:Syed Atif Nazir/Template:Imam timeline|Imam timeline]] de l'utilisateur [[User:Syed Atif Nazir]] - vertical
** [https://de.wikipedia.org/w/index.php?title=Aurich&amp;oldid=171331690#Einwohnerentwicklung Evolution démographique] - horizontal

&lt;table&gt;&lt;tr&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize  = width:160 height:550
PlotArea   = width:50 height:530 left:50 bottom:10

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;/td&gt;

&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:proterozoic value:rgb(0.968,0.207,0.388)
  id:neoproterozoic value:rgb(0.996,0.701,0.258)
  id:ediacaran value:rgb(0.996,0.85,0.415)
  id:cryogenian value:rgb(0.996,0.8,0.36)
  id:tonian value:rgb(0.996,0.75,0.305)
  id:mesoproterozoic value:rgb(0.996,0.705,0.384)
  id:stenian value:rgb(0.996,0.85,0.604)
  id:ectasian value:rgb(0.996,0.8,0.541)
  id:calymmian value:rgb(0.996,0.75,0.478)
  id:paleoproterozoic value:rgb(0.968,0.263,0.44)
  id:statherian value:rgb(0.968,0.459,0.655)
  id:orosirian value:rgb(0.968,0.408,0.596)
  id:rhyacian value:rgb(0.968,0.357,0.537)
  id:siderian value:rgb(0.968,0.306,0.478)
  id:archean value:rgb(0.996,0.157,0.498)
  id:neoarchean value:rgb(0.976,0.608,0.757)
  id:mesoarchean value:rgb(0.968,0.408,0.662)
  id:paleoarchean value:rgb(0.96,0.266,0.624)
  id:eoarchean value:rgb(0.902,0.114,0.549)
  id:hadean value:rgb(0.717,0,0.494)
  id:black value:black
  id:white value:white

Period     = from:-4567 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:500 start:-4500
ScaleMinor = unit:year increment:100 start:-4500

Define $markred = text:"*" textcolor:red shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)


  bar:eon

  at:       0 align:right $markred
  at:    -542 align:left  $markred shift:(2,3)
  from:  -542 till:    0  text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic   
  from: -2500 till: -542  text:[[Special:MyLanguage/Proterozoic|Proterozoic]] color:proterozoic   
  from: -4000 till: -2500 text:[[Special:MyLanguage/Archean|Archean]]     color:archean   
  from: start till: -4000 text:[[Special:MyLanguage/Hadean|Hadean]]      color:hadean

  bar:era

  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|C]] color:cenozoic        
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Meso]] color:mesozoic        
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic 
  from: -1000 till: -542  text:[[Special:MyLanguage/Neoproterozoic|Neoproterozoic]] color:neoproterozoic   
  from: -1600 till: -1000 text:[[Special:MyLanguage/Mesoproterozoic|Mesoproterozoic]] color:mesoproterozoic  
  from: -2500 till: -1600 text:[[Special:MyLanguage/Paleoproterozoic|Paleoproterozoic]] color:paleoproterozoic 
  from: -2800 till: -2500 text:[[Special:MyLanguage/Neoarchean|Neoarch]] color:neoarchean       
  from: -3200 till: -2800 text:[[Special:MyLanguage/Mesoarchean|Mesoarch]] color:mesoarchean      
  from: -3600 till: -3200 text:[[Special:MyLanguage/Paleoarchean|Paleoarch]] color:paleoarchean     
  from: -4000 till: -3600 text:[[Special:MyLanguage/Eoarchean|Eoarchean]] color:eoarchean
  from: start till: -4000 color:white

  bar:period

  fontsize:6
  from: -2.6 till: 0        color:quaternary
  from: -23.03 till: -2.6   color:neogene
  from: -65.5 till: -23.03  color:paleogene
  from: -145.5 till: -65.5  color:cretaceous
  from: -199.6 till: -145.5 color:jurassic
  from: -251 till: -199.6   color:triassic
  from: -299 till: -251     color:permian
  from: -359.2 till: -299   color:carboniferous
  from: -416 till: -359.2   color:devonian
  from: -443.7 till: -416   color:silurian
  from: -488.3 till: -443.7 color:ordovician
  from: -542 till: -488.3   color:cambrian

  from: -635  till: -542  text:[[Special:MyLanguage/Ediacaran|Ed.]] color:ediacaran
  from: -850  till: -635  text:[[Special:MyLanguage/Cryogenian|Cryo]] color:cryogenian
  from: -1000 till: -850  text:[[Special:MyLanguage/Tonian|Tonian]] color:tonian
  from: -1200 till: -1000 text:[[Special:MyLanguage/Stenian|Stenian]] color:stenian
  from: -1400 till: -1200 text:[[Special:MyLanguage/Ectasian|Ectasian]] color:ectasian
  from: -1600 till: -1400 text:[[Special:MyLanguage/Calymmian|Calymm]] color:calymmian
  from: -1800 till: -1600 text:[[Special:MyLanguage/Statherian|Stather]] color:statherian
  from: -2050 till: -1800 text:[[Special:MyLanguage/Orosirian|Orosirian]] color:orosirian
  from: -2300 till: -2050 text:[[Special:MyLanguage/Rhyacian|Rhyacian]] color:rhyacian
  from: -2500 till: -2300 text:[[Special:MyLanguage/Siderian|Siderian]] color:siderian
  from: start till: -2500 color:white
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize  = width:800 height:100
PlotArea   = left:65 right:15 bottom:20 top:5
AlignBars  = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black  value:black
  id:white  value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-542 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:100 start:-500
ScaleMinor = unit:year increment:10  start:-540

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:eon
  at:      0   align:right  $markred 
  at:   -542   align:left   $markred shift:(2,3)
  from: -542   till:    0   text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic

  bar:era
  at:   0     align:right $markgreen
  at:   -65.5 align:left  $markgreen shift:(2,3)
  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Mesozoic]] color:mesozoic
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic

  bar:period fontsize:8
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neo]] color:neogene
  from: -65.5 till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene
  from: -145.5 till: -65.5 text:[[Special:MyLanguage/Cretaceous|Cretaceous]] color:cretaceous
  from: -199.6 till: -145.5 text:[[Special:MyLanguage/Jurassic|Jurassic]] color:jurassic
  from: -251.4 till: -199.6 text:[[Special:MyLanguage/Triassic|Triassic]] color:triassic
  from: -299 till: -251.4 text:[[Special:MyLanguage/Permian|Permian]] color:permian
  from: -359.2 till: -299 text:[[Special:MyLanguage/Carboniferous|Carboniferous]] color:carboniferous
  from: -416 till: -359.2 text:[[Special:MyLanguage/Devonian|Devonian]] color:devonian
  from: -443.7 till: -416 text:[[Special:MyLanguage/Silurian|Silurian]] color:silurian
  from: -488.3 till: -443.7 text:[[Special:MyLanguage/Ordovician|Ordovician]] color:ordovician
  from: -542 till: -488.3 text:[[Cambrian] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Cenozoic|Cambrian]] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic

  bar:period
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neogene]] color:neogene
  from: start  till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene

  bar:epoch
  from: -0.1 till: 0  text:[[Special:MyLanguage/Holocene|H]] color:holocene 
  from: -2.588 till: -0.1 text:[[Special:MyLanguage/Pleistocene|P]] color:pleistocene
  from: -5.332 till: -2.588 text:[[Special:MyLanguage/Pliocene|Pliocene]] color:pliocene fontsize:7
  from: -23.03 till: -5.332 text:[[Special:MyLanguage/Miocene|Miocene]] color:miocene
  from: -33.9 till: -23.03 text:[[Special:MyLanguage/Oligocene|Oligocene]] color:oligocene
  from: -55.8 till: -33.9 text:[[Special:MyLanguage/Eocene|Eocene]] color:eocene
  from: start till: -55.8 text:[[Special:MyLanguage/Paleocene|Paleocene]] color:paleocene
&lt;/timeline&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=3 align=left&gt;{{Wikimedia Growth}}&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;


&lt;span id="Code_example"&gt;&lt;/span&gt;
== Exemple de code ==
:''Voir aussi :'' {{ll|Extension:EasyTimeline/syntax}}

&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

Juste pour vous montrer que la syntaxe du script est raisonnablement intuitive,
voici le script de l'image ci-dessus : Leaders soviétiques. 

&lt;syntaxhighlight lang="moin"&gt;
&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;
&lt;/syntaxhighlight&gt;

Les crochets doubles '[[ ]]' et simples '[ ]' peuvent être utilisés comme sur wikipedia, le préfixe de langue est possible, par ex. &lt;syntaxhighlight lang="moin" inline&gt;[[de:foo|en savoir plus sur foo]]&lt;/syntaxhighlight&gt;. Les crochets simples pour les liens externes sont également pris en charge.

&lt;span id="Great_timelines_elsewhere"&gt;&lt;/span&gt;
== Excellents délais ailleurs ==

Voici deux excellents sites qui peuvent servir d'inspiration, il serait très facile de recréer la plupart de ces chronologies textuellement et avec une mise en page à peu près similaire avec EasyTimeline (pas encore avec des images mais cela peut changer), mais j'ai bien peur que ce ne soit 'pas fini'.

*[http://www.hyperhistory.com/online_n2/History_n2/a.html Hyperhistory] par exemple. Cliquer sur le bouton 'people' à gauche, puis sur 'special lifelines', à droite.
* J'espère que nous aurons un ensemble comme [http://chaos1.hypermart.net/fullsize.htm] dans quelques années (cliquez sur ''image pleine taille'' pour n'importe quelle carte), peut-être même avec des images. L'effort principal sera de rassembler toutes les informations sans tout saisir d'ici (la plupart de ces cartes sont basées exclusivement sur des données de Britannica).

&lt;span id="Unicode"&gt;&lt;/span&gt;
== Unicode ==

EasyTimeline ne prend pas encore en charge Unicode. 

Août 2004 : la prise en charge minimale de l'UTF-8 a été ajoutée, ce qui signifie qu'EasyTimeline reconnaît désormais les caractères encodés en UTF-8. Cependant, la prise en charge de la directivité et des scripts complexes est très insuffisante. La police par défaut peut ne pas avoir de glyphes pour tous les caractères. Une police alternative peut être spécifiée via &lt;code&gt;$wgTimelineFontFile&lt;/code&gt;

&lt;span id="SVG_to_PNG"&gt;&lt;/span&gt;
=== Passer de SVG à PNG ===

Pour afficher correctement les textes pour les langues ayant RTL pour directivité (comme l'arabe, le persan, l'hébreu,...) vous pouvez utiliser {{tmpl|0={{tag|timeline|params={{attr|method|"svg2png"}}|content=$1}}|code de chronologie ici}} au lieu de {{tmpl|0={{tag|timeline|content=$1}}|code de chronologie ici}}. Il affiche la chronologie au format ''png'' mais les liens seront désactivés.

&lt;span id="Tips"&gt;&lt;/span&gt;
== Conseils ==

Pour les utilisateurs novices, EasyTimeline peut ne pas sembler facile du tout. Comme pour tous les langages de script, il faut un certain temps pour s'y habituer. De plus, la description de la syntaxe peut être un peu déroutante en raison de sa taille. Heureusement, de nombreux éléments du langage de script sont facultatifs.

'Easy' dans EasyTimeline ne transmet le message une fois que la chronologie existe; il n'est pas si difficile à comprendre, à améliorer ou à corriger. Il est également très simple de le traduire pour être utilisé sur un autre Wikipédia. 

Astuces :

* Voir quelques [[#charts-examples|Exemples de graphiques]] pour trouver quelque chose que vous pourriez choisir et adapter à vos propres besoins
* Mettez chaque chronologie ''timeline'' sur une page de modèle distincte : cela facilite l'édition, accélère la prévisualisation, et permet de les inclure dans plusieurs pages

&lt;span id="Using_the_current_date"&gt;&lt;/span&gt;
== Utiliser la date actuelle ==
Pour utiliser la date actuelle, assurez-vous que le tableau s'ouvre avec &lt;code&gt;&lt;nowiki&gt;{{#tag:timeline|&lt;/nowiki&gt;&lt;/code&gt; et se ferme avec &lt;code&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;.
Ensuite, la date actuelle peut être insérée à l'aide des mots magiques.
Par exemple &lt;code&gt;&lt;nowiki&gt;{{#time : d/m/Y }}&lt;/nowiki&gt;&lt;/code&gt; ou &lt;code&gt;&lt;nowiki&gt;{{CURRENTDAY2}}/{{CURRENTMONTH2}}/{{CURRENTYEAR }}&lt;/nowiki&gt;&lt;/code&gt; renverra tous les deux la date au format jj/mm/aaaa.

&lt;span id="See_also"&gt;&lt;/span&gt;
== Voir aussi ==

* [[Special:MyLanguage/Extension:EasyTimeline/syntax|Codage EasyTimeline]]
* Présentation sur EasyTimeline au Wikimania 2005 ([[m:Transwiki:Wikimania05/Workshop-EZ1|résumé]], [http://upload.wikimedia.org/wikipedia/commons/9/90/Wikimania_2005_Presentation_EasyTimeline.pdf diapositives], [http://upload.wikimedia.org/wikipedia/commons/7/78/Wikimania_2005_Presentation_Easytimeline_Speaker_Notes.pdf notes du conférencier])
* [[m:WikiTimeScale|WikiTimeScale]] en tant que proposition pour réaliser des échelles de temps pour les articles Wikipedia en externe.
* Modèle [[w:Template:Simple Horizontal Timeline|Simple Horizontal timeline]] &amp;mdash; une chronologie plus facile à utiliser sur Wikipedia.
*{{ll|Extension:Graph}}

&lt;span id="Installation"&gt;&lt;/span&gt;
== Installation ==

Voir [[Special:MyLanguage/Extension:EasyTimeline/installation|/installation]]

&lt;span id="External_links"&gt;&lt;/span&gt;
== Liens externes ==
* [http://www.simile-widgets.org Widgets SIMILE] - DHTML-based AJAXy widget for visualizing time-based events

{{OnWikimedia}}
{{Used by}}</text>
    <sha1>1cc775ed57ed247fdee83d7a4762bdb1cc3b63db</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Extension:EasyTimeline/en</title>
  <ns>102</ns>
  <id>820738</id>
  <revision>
    <id>6624081</id>
    <parentid>5986618</parentid>
    <timestamp>2024-07-09T04:46:04Z</timestamp>
    <contributor>
      <username>FuzzyBot</username>
      <id>451990</id>
    </contributor>
    <comment>Updating to match new version of source page</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="22580" xml:space="preserve">&lt;languages /&gt;
{{Extension
|type1           = tag
|status          = stable
|author          = [[w:User:Erik Zachte|Erik Zachte]]
|description     = Adds  {{tag|timeline|open}} tag for creating timelines
|download        = {{WikimediaDownload|timeline}}
|needs-updatephp = no
|changelog       = {{git file|action=summary|project=mediawiki/extensions/timeline|branch=HEAD|text=CHANGELOG}}
|phabricator        = EasyTimeline
|pagedrive1      = true
|example         = [[#charts-examples|See below]]
|translate       = ext-timeline
}}
{|
| style="padding-{{dir|{{pagelang}}|right|left}}:1em" | ''Other languages:''
| {{flatlist|1=
* [[:de:Hilfe:Zeitleisten|de]]
* [[:es:Ayuda:Cronologías|es]]
* [[:eu:Laguntza:Denbora lerroak|eu]]
* [[:fr:Aide:Frise chronologique|fr]]
* [[:id:Wikipedia:Timeline|id]]
* [[:it:Aiuto:Timeline|it]]
* [[:nl:Help:EasyTimeline|nl]]
* [[:pt:Wikipedia:EasyTimeline|pt]]
* [[:zh:Help:简易时间线语法|zh]]
}}
|}

The '''EasyTimeline''' extension produces an embedded image from wikitext. The image can be a one-dimensional diagram (horizontally or vertically), or a two-dimensional one.

See the help page on [[Special:MyLanguage/Extension:EasyTimeline/installation|installing EasyTimeline]] on your wiki.
See also [http://infodisiac.com/Wikipedia/EasyTimeline/Introduction.htm this page on EasyTimeline] or play with it at [[testwiki:EasyTimeline|test.wikipedia.org]].

See the help page on [[Special:MyLanguage/Extension:EasyTimeline/syntax|using the syntax provided by this extension]].

There is a [[phab:T137291|long-term effort]] to get the {{ll|Extension:Chart|Chart}} extension to replace this extension.

== Requirements ==

This extension requires the following programs installed on the server:

*[[w:Ploticus|Ploticus]]
*[[w:perl|perl]]
*[[w:XnView|NConvert]] (Windows only)

{{anchor|charts-examples}}
==Charts examples==

Several examples of what is possible. For more extensive examples see

* [[:en:Template:Timeline WWII - Pacific Theater|WW II - Pacific Theatre]] - horizontal
* [[:en:Timeline of aircraft carriers of the United States Navy|:en:Timeline of aircraft carriers of the United States Navy]] - horizontal
* [[:en:Template:Timeline History of Computing|History of Computing]] - horizontal
* [[:de:Vorlage:Zeitleiste Tour-de-France-Sieger|Tour-de-France Sieger]] - vertical
* [[:en:Template:Vocal and instrumental pitch ranges|Vocal and instrumental pitch ranges]] (a nice example of a diagram that is not a timeline at all)  - horizontal
* [[:en:Template:Complete timeline of Macintosh models|Complete timeline of Macintosh models]]  - horizontal
* Simpler timelines:
** [[:en:Template:Extinction events graphical timeline|:en:Template:Extinction events graphical timeline]]  - horizontal, uses [[w:Template:Horizontal timeline|w:Template:Horizontal timeline]]
** [[:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players|:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players]]  - horizontal with arrows
** [[:en:Template:Early evolution of the light bulb|:en:Template:Early evolution of the light bulb]]  - vertical
** [[:en:Invention of radio#Radio invention timeline|:en:Invention of radio#Radio invention timeline]]  - vertical
** [[:en:Gaius_Marius#Timeline|:en:Gaius_Marius#Timeline]]   - vertical
** [[:en:User:Syed Atif Nazir/Template:Imam timeline|:en:User:Syed Atif Nazir/Template:Imam timeline]]   - vertical
** [https://de.wikipedia.org/w/index.php?title=Aurich&amp;oldid=171331690#Einwohnerentwicklung Population developement] - horizontal

&lt;table&gt;&lt;tr&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize  = width:160 height:550
PlotArea   = width:50 height:530 left:50 bottom:10

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;/td&gt;

&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:proterozoic value:rgb(0.968,0.207,0.388)
  id:neoproterozoic value:rgb(0.996,0.701,0.258)
  id:ediacaran value:rgb(0.996,0.85,0.415)
  id:cryogenian value:rgb(0.996,0.8,0.36)
  id:tonian value:rgb(0.996,0.75,0.305)
  id:mesoproterozoic value:rgb(0.996,0.705,0.384)
  id:stenian value:rgb(0.996,0.85,0.604)
  id:ectasian value:rgb(0.996,0.8,0.541)
  id:calymmian value:rgb(0.996,0.75,0.478)
  id:paleoproterozoic value:rgb(0.968,0.263,0.44)
  id:statherian value:rgb(0.968,0.459,0.655)
  id:orosirian value:rgb(0.968,0.408,0.596)
  id:rhyacian value:rgb(0.968,0.357,0.537)
  id:siderian value:rgb(0.968,0.306,0.478)
  id:archean value:rgb(0.996,0.157,0.498)
  id:neoarchean value:rgb(0.976,0.608,0.757)
  id:mesoarchean value:rgb(0.968,0.408,0.662)
  id:paleoarchean value:rgb(0.96,0.266,0.624)
  id:eoarchean value:rgb(0.902,0.114,0.549)
  id:hadean value:rgb(0.717,0,0.494)
  id:black value:black
  id:white value:white

Period     = from:-4567 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:500 start:-4500
ScaleMinor = unit:year increment:100 start:-4500

Define $markred = text:"*" textcolor:red shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)


  bar:eon

  at:       0 align:right $markred
  at:    -542 align:left  $markred shift:(2,3)
  from:  -542 till:    0  text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic   
  from: -2500 till: -542  text:[[Special:MyLanguage/Proterozoic|Proterozoic]] color:proterozoic   
  from: -4000 till: -2500 text:[[Special:MyLanguage/Archean|Archean]]     color:archean   
  from: start till: -4000 text:[[Special:MyLanguage/Hadean|Hadean]]      color:hadean

  bar:era

  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|C]] color:cenozoic        
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Meso]] color:mesozoic        
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic 
  from: -1000 till: -542  text:[[Special:MyLanguage/Neoproterozoic|Neoproterozoic]] color:neoproterozoic   
  from: -1600 till: -1000 text:[[Special:MyLanguage/Mesoproterozoic|Mesoproterozoic]] color:mesoproterozoic  
  from: -2500 till: -1600 text:[[Special:MyLanguage/Paleoproterozoic|Paleoproterozoic]] color:paleoproterozoic 
  from: -2800 till: -2500 text:[[Special:MyLanguage/Neoarchean|Neoarch]] color:neoarchean       
  from: -3200 till: -2800 text:[[Special:MyLanguage/Mesoarchean|Mesoarch]] color:mesoarchean      
  from: -3600 till: -3200 text:[[Special:MyLanguage/Paleoarchean|Paleoarch]] color:paleoarchean     
  from: -4000 till: -3600 text:[[Special:MyLanguage/Eoarchean|Eoarchean]] color:eoarchean
  from: start till: -4000 color:white

  bar:period

  fontsize:6
  from: -2.6 till: 0        color:quaternary
  from: -23.03 till: -2.6   color:neogene
  from: -65.5 till: -23.03  color:paleogene
  from: -145.5 till: -65.5  color:cretaceous
  from: -199.6 till: -145.5 color:jurassic
  from: -251 till: -199.6   color:triassic
  from: -299 till: -251     color:permian
  from: -359.2 till: -299   color:carboniferous
  from: -416 till: -359.2   color:devonian
  from: -443.7 till: -416   color:silurian
  from: -488.3 till: -443.7 color:ordovician
  from: -542 till: -488.3   color:cambrian

  from: -635  till: -542  text:[[Special:MyLanguage/Ediacaran|Ed.]] color:ediacaran
  from: -850  till: -635  text:[[Special:MyLanguage/Cryogenian|Cryo]] color:cryogenian
  from: -1000 till: -850  text:[[Special:MyLanguage/Tonian|Tonian]] color:tonian
  from: -1200 till: -1000 text:[[Special:MyLanguage/Stenian|Stenian]] color:stenian
  from: -1400 till: -1200 text:[[Special:MyLanguage/Ectasian|Ectasian]] color:ectasian
  from: -1600 till: -1400 text:[[Special:MyLanguage/Calymmian|Calymm]] color:calymmian
  from: -1800 till: -1600 text:[[Special:MyLanguage/Statherian|Stather]] color:statherian
  from: -2050 till: -1800 text:[[Special:MyLanguage/Orosirian|Orosirian]] color:orosirian
  from: -2300 till: -2050 text:[[Special:MyLanguage/Rhyacian|Rhyacian]] color:rhyacian
  from: -2500 till: -2300 text:[[Special:MyLanguage/Siderian|Siderian]] color:siderian
  from: start till: -2500 color:white
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize  = width:800 height:100
PlotArea   = left:65 right:15 bottom:20 top:5
AlignBars  = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black  value:black
  id:white  value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-542 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:100 start:-500
ScaleMinor = unit:year increment:10  start:-540

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:eon
  at:      0   align:right  $markred 
  at:   -542   align:left   $markred shift:(2,3)
  from: -542   till:    0   text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic

  bar:era
  at:   0     align:right $markgreen
  at:   -65.5 align:left  $markgreen shift:(2,3)
  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Mesozoic]] color:mesozoic
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic

  bar:period fontsize:8
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neo]] color:neogene
  from: -65.5 till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene
  from: -145.5 till: -65.5 text:[[Special:MyLanguage/Cretaceous|Cretaceous]] color:cretaceous
  from: -199.6 till: -145.5 text:[[Special:MyLanguage/Jurassic|Jurassic]] color:jurassic
  from: -251.4 till: -199.6 text:[[Special:MyLanguage/Triassic|Triassic]] color:triassic
  from: -299 till: -251.4 text:[[Special:MyLanguage/Permian|Permian]] color:permian
  from: -359.2 till: -299 text:[[Special:MyLanguage/Carboniferous|Carboniferous]] color:carboniferous
  from: -416 till: -359.2 text:[[Special:MyLanguage/Devonian|Devonian]] color:devonian
  from: -443.7 till: -416 text:[[Special:MyLanguage/Silurian|Silurian]] color:silurian
  from: -488.3 till: -443.7 text:[[Special:MyLanguage/Ordovician|Ordovician]] color:ordovician
  from: -542 till: -488.3 text:[[Cambrian] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Cenozoic|Cambrian]] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic

  bar:period
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neogene]] color:neogene
  from: start  till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene

  bar:epoch
  from: -0.1 till: 0  text:[[Special:MyLanguage/Holocene|H]] color:holocene 
  from: -2.588 till: -0.1 text:[[Special:MyLanguage/Pleistocene|P]] color:pleistocene
  from: -5.332 till: -2.588 text:[[Special:MyLanguage/Pliocene|Pliocene]] color:pliocene fontsize:7
  from: -23.03 till: -5.332 text:[[Special:MyLanguage/Miocene|Miocene]] color:miocene
  from: -33.9 till: -23.03 text:[[Special:MyLanguage/Oligocene|Oligocene]] color:oligocene
  from: -55.8 till: -33.9 text:[[Special:MyLanguage/Eocene|Eocene]] color:eocene
  from: start till: -55.8 text:[[Special:MyLanguage/Paleocene|Paleocene]] color:paleocene
&lt;/timeline&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=3 align=left&gt;{{Wikimedia Growth}}&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;


==Code example==
:''See also:'' {{ll|Extension:EasyTimeline/syntax}}

&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

Just to show you that the script syntax is reasonably intuitive,
here is the script for the image above: Soviet Leaders. 

&lt;syntaxhighlight lang="moin"&gt;
&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;
&lt;/syntaxhighlight&gt;

Double and single brackets can be used like on wikipedia, language prefix is possible, e.g. &lt;syntaxhighlight lang="moin" inline&gt;[[de:foo|more about foo]]&lt;/syntaxhighlight&gt;. Single brackets for external links are also supported.

==Great timelines elsewhere==

Here are two great sites that may serve as inspiration, it would be very easy to recreate most of those timelines verbatim and with roughly similar layout with EasyTimeline (not yet with images but that may change), but I'm afraid that would be 'not done'.

*[http://www.hyperhistory.com/online_n2/History_n2/a.html Hyperhistory] e.g. click on button 'people' left, then on 'special lifelines', right.
*I hope we will have a set like [http://chaos1.hypermart.net/fullsize.htm] in a years time (click on ''full size image'' for any map), possibly even with images. The main effort will be to gather all info without snatching everything from here (most of these maps are based exclusively on data from Britannica).

==Unicode==

EasyTimeline does not yet support Unicode. 

Aug 2004: Minimal UTF-8 support has been added, meaning that EasyTimeline now recognizes UTF-8 encoded characters. However support for directionality and complex scripts is very lacking. The default font may not have glyphs for all characters. An alternate font can be specified via &lt;code&gt;$wgTimelineFontFile&lt;/code&gt;

===SVG to PNG===

To show texts correctly for RTL languages (like Arabic, Persian, Hebrew,...) you can use {{tmpl|0={{tag|timeline|params={{attr|method|"svg2png"}}|content=$1}}|timeline code here}} instead of {{tmpl|0={{tag|timeline|content=$1}}|timeline code here}}. it shows timeline as png but the links will be disabled.

==Tips==

For first time users EasyTimeline may not seem that easy at all. As with all script languages it takes some getting used to. Also the syntax description may be a bit bewildering due to its sheer size. Fortunately many elements of the script language are optional.

The 'Easy' in EasyTimeline conveys the message that once a timeline exists it is not so hard to understand, enhance or correct. Also translating for use on another Wikipedia it is pretty straightforward. 

Tips:

* See some [[#charts-examples|chart examples]] to find something you could pick and edit for your own stuff
*Put each timeline on a separate Template page: this makes it easier to edit, faster to preview, possible to include it in several pages

==Using the current date==
To use the current date make sure the table opens with &lt;code&gt;&lt;nowiki&gt;{{#tag:timeline|&lt;/nowiki&gt;&lt;/code&gt; and closes with &lt;code&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;.
Then the current date can be inserted using magic words.
For example &lt;code&gt;&lt;nowiki&gt;{{#time: d/m/Y }}&lt;/nowiki&gt;&lt;/code&gt; or &lt;code&gt;&lt;nowiki&gt;{{CURRENTDAY2}}/{{CURRENTMONTH2}}/{{CURRENTYEAR}}&lt;/nowiki&gt;&lt;/code&gt; will both yield the date in format dd/mm/yyyy.

==See also==

*[[Special:MyLanguage/Extension:EasyTimeline/syntax|EasyTimeline Coding]]
*Presentation about EasyTimeline at Wikimania 2005 ([[m:Transwiki:Wikimania05/Workshop-EZ1|abstract]], [http://upload.wikimedia.org/wikipedia/commons/9/90/Wikimania_2005_Presentation_EasyTimeline.pdf slides], [http://upload.wikimedia.org/wikipedia/commons/7/78/Wikimania_2005_Presentation_Easytimeline_Speaker_Notes.pdf speaker notes])
*[[m:WikiTimeScale|m:WikiTimeScale]] as a proposal for realizing timescales for wikipedia articles externally.
* [[w:Template:Simple Horizontal timeline|w:Template:Simple Horizontal timeline]] An easier timeline to use on Wikipedia.
*{{ll|Extension:Graph}}

==Installation==

See [[Special:MyLanguage/Extension:EasyTimeline/installation|/installation]]

==External links==
* [http://www.simile-widgets.org SIMILE Widgets] - DHTML-based AJAXy widget for visualizing time-based events

{{OnWikimedia}}
{{Used by}}</text>
    <sha1>3bf10d55e536ee81ee700aea9533758983dcfa57</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Extension:EasyTimeline/it</title>
  <ns>102</ns>
  <id>1542937</id>
  <revision>
    <id>6624082</id>
    <parentid>5986620</parentid>
    <timestamp>2024-07-09T04:46:05Z</timestamp>
    <contributor>
      <username>FuzzyBot</username>
      <id>451990</id>
    </contributor>
    <comment>Updating to match new version of source page</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="25605" xml:space="preserve">&lt;languages /&gt;
{{Extension
|type1           = tag
|status          = stable
|author          = [[w:User:Erik Zachte|Erik Zachte]]
|description     = Aggiungi il tag {{tag|timeline|open}} per creare delle timeline
|download        = {{WikimediaDownload|timeline}}
|needs-updatephp = no
|changelog       = {{git file|action=summary|project=mediawiki/extensions/timeline|branch=HEAD|text=CHANGELOG}}
|phabricator        = EasyTimeline
|pagedrive1      = true
|example         = [[#charts-examples|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See below&lt;/span&gt;]]
|translate       = ext-timeline
}}
{|
| style="padding-{{dir|{{pagelang}}|right|left}}:1em" | ''Altre lingue:''
| {{flatlist|1=
* [[:de:Hilfe:Zeitleisten|de]]
* [[:es:Ayuda:Cronologías|es]]
* [[:eu:Laguntza:Denbora lerroak|eu]]
* [[:fr:Aide:Frise chronologique|fr]]
* [[:id:Wikipedia:Timeline|id]]
* [[:it:Aiuto:Timeline|it]]
* [[:nl:Help:EasyTimeline|nl]]
* [[:pt:Wikipedia:EasyTimeline|pt]]
* [[:zh:Help:简易时间线语法|zh]]
}}
|}

L'estensione '''EasyTimeline''' produce un'immagine incorporata dal wikitext. L'immagine può essere un diagramma monodimensionale ( orizzontale o verticale) o bidimensionale.

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See the help page on [[Special:MyLanguage/Extension:EasyTimeline/installation|installing EasyTimeline]] on your wiki.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See also [http://infodisiac.com/Wikipedia/EasyTimeline/Introduction.htm this page on EasyTimeline] or play with it at [[testwiki:EasyTimeline|test.wikipedia.org]].&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
See the help page on [[Special:MyLanguage/Extension:EasyTimeline/syntax|using the syntax provided by this extension]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is a [[phab:T137291|long-term effort]] to get the {{ll|Extension:Chart|Chart}} extension to replace this extension.
&lt;/div&gt;

&lt;span id="Requirements"&gt;&lt;/span&gt;
== Requisiti ==

Questa estensione richiede i seguenti programmi installati sul server:

*[[wikipedia:it:Ploticus|Ploticus]]
*[[wikipedia:it:perl|perl]]
*[[wikipedia:it:XnView|NConvert]] (solo per Windows)

{{anchor|charts-examples}}
&lt;span id="Charts_examples"&gt;&lt;/span&gt;
== Grafici di esempio ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Several examples of what is possible. For more extensive examples see
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Timeline WWII - Pacific Theater|WW II - Pacific Theatre]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Timeline of aircraft carriers of the United States Navy|:en:Timeline of aircraft carriers of the United States Navy]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Timeline History of Computing|History of Computing]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:de:Vorlage:Zeitleiste Tour-de-France-Sieger|Tour-de-France Sieger]] - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Vocal and instrumental pitch ranges|Vocal and instrumental pitch ranges]] (a nice example of a diagram that is not a timeline at all)  - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Complete timeline of Macintosh models|Complete timeline of Macintosh models]]  - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Simpler timelines:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Template:Extinction events graphical timeline|:en:Template:Extinction events graphical timeline]]  - horizontal, uses [[w:Template:Horizontal timeline|w:Template:Horizontal timeline]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players|:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players]]  - horizontal with arrows
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Template:Early evolution of the light bulb|:en:Template:Early evolution of the light bulb]]  - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Invention of radio#Radio invention timeline|:en:Invention of radio#Radio invention timeline]]  - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Gaius_Marius#Timeline|:en:Gaius_Marius#Timeline]]   - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:User:Syed Atif Nazir/Template:Imam timeline|:en:User:Syed Atif Nazir/Template:Imam timeline]]   - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [https://de.wikipedia.org/w/index.php?title=Aurich&amp;oldid=171331690#Einwohnerentwicklung Population developement] - horizontal
&lt;/div&gt;

&lt;table&gt;&lt;tr&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize  = width:160 height:550
PlotArea   = width:50 height:530 left:50 bottom:10

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;/td&gt;

&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:proterozoic value:rgb(0.968,0.207,0.388)
  id:neoproterozoic value:rgb(0.996,0.701,0.258)
  id:ediacaran value:rgb(0.996,0.85,0.415)
  id:cryogenian value:rgb(0.996,0.8,0.36)
  id:tonian value:rgb(0.996,0.75,0.305)
  id:mesoproterozoic value:rgb(0.996,0.705,0.384)
  id:stenian value:rgb(0.996,0.85,0.604)
  id:ectasian value:rgb(0.996,0.8,0.541)
  id:calymmian value:rgb(0.996,0.75,0.478)
  id:paleoproterozoic value:rgb(0.968,0.263,0.44)
  id:statherian value:rgb(0.968,0.459,0.655)
  id:orosirian value:rgb(0.968,0.408,0.596)
  id:rhyacian value:rgb(0.968,0.357,0.537)
  id:siderian value:rgb(0.968,0.306,0.478)
  id:archean value:rgb(0.996,0.157,0.498)
  id:neoarchean value:rgb(0.976,0.608,0.757)
  id:mesoarchean value:rgb(0.968,0.408,0.662)
  id:paleoarchean value:rgb(0.96,0.266,0.624)
  id:eoarchean value:rgb(0.902,0.114,0.549)
  id:hadean value:rgb(0.717,0,0.494)
  id:black value:black
  id:white value:white

Period     = from:-4567 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:500 start:-4500
ScaleMinor = unit:year increment:100 start:-4500

Define $markred = text:"*" textcolor:red shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)


  bar:eon

  at:       0 align:right $markred
  at:    -542 align:left  $markred shift:(2,3)
  from:  -542 till:    0  text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic   
  from: -2500 till: -542  text:[[Special:MyLanguage/Proterozoic|Proterozoic]] color:proterozoic   
  from: -4000 till: -2500 text:[[Special:MyLanguage/Archean|Archean]]     color:archean   
  from: start till: -4000 text:[[Special:MyLanguage/Hadean|Hadean]]      color:hadean

  bar:era

  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|C]] color:cenozoic        
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Meso]] color:mesozoic        
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic 
  from: -1000 till: -542  text:[[Special:MyLanguage/Neoproterozoic|Neoproterozoic]] color:neoproterozoic   
  from: -1600 till: -1000 text:[[Special:MyLanguage/Mesoproterozoic|Mesoproterozoic]] color:mesoproterozoic  
  from: -2500 till: -1600 text:[[Special:MyLanguage/Paleoproterozoic|Paleoproterozoic]] color:paleoproterozoic 
  from: -2800 till: -2500 text:[[Special:MyLanguage/Neoarchean|Neoarch]] color:neoarchean       
  from: -3200 till: -2800 text:[[Special:MyLanguage/Mesoarchean|Mesoarch]] color:mesoarchean      
  from: -3600 till: -3200 text:[[Special:MyLanguage/Paleoarchean|Paleoarch]] color:paleoarchean     
  from: -4000 till: -3600 text:[[Special:MyLanguage/Eoarchean|Eoarchean]] color:eoarchean
  from: start till: -4000 color:white

  bar:period

  fontsize:6
  from: -2.6 till: 0        color:quaternary
  from: -23.03 till: -2.6   color:neogene
  from: -65.5 till: -23.03  color:paleogene
  from: -145.5 till: -65.5  color:cretaceous
  from: -199.6 till: -145.5 color:jurassic
  from: -251 till: -199.6   color:triassic
  from: -299 till: -251     color:permian
  from: -359.2 till: -299   color:carboniferous
  from: -416 till: -359.2   color:devonian
  from: -443.7 till: -416   color:silurian
  from: -488.3 till: -443.7 color:ordovician
  from: -542 till: -488.3   color:cambrian

  from: -635  till: -542  text:[[Special:MyLanguage/Ediacaran|Ed.]] color:ediacaran
  from: -850  till: -635  text:[[Special:MyLanguage/Cryogenian|Cryo]] color:cryogenian
  from: -1000 till: -850  text:[[Special:MyLanguage/Tonian|Tonian]] color:tonian
  from: -1200 till: -1000 text:[[Special:MyLanguage/Stenian|Stenian]] color:stenian
  from: -1400 till: -1200 text:[[Special:MyLanguage/Ectasian|Ectasian]] color:ectasian
  from: -1600 till: -1400 text:[[Special:MyLanguage/Calymmian|Calymm]] color:calymmian
  from: -1800 till: -1600 text:[[Special:MyLanguage/Statherian|Stather]] color:statherian
  from: -2050 till: -1800 text:[[Special:MyLanguage/Orosirian|Orosirian]] color:orosirian
  from: -2300 till: -2050 text:[[Special:MyLanguage/Rhyacian|Rhyacian]] color:rhyacian
  from: -2500 till: -2300 text:[[Special:MyLanguage/Siderian|Siderian]] color:siderian
  from: start till: -2500 color:white
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize  = width:800 height:100
PlotArea   = left:65 right:15 bottom:20 top:5
AlignBars  = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black  value:black
  id:white  value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-542 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:100 start:-500
ScaleMinor = unit:year increment:10  start:-540

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:eon
  at:      0   align:right  $markred 
  at:   -542   align:left   $markred shift:(2,3)
  from: -542   till:    0   text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic

  bar:era
  at:   0     align:right $markgreen
  at:   -65.5 align:left  $markgreen shift:(2,3)
  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Mesozoic]] color:mesozoic
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic

  bar:period fontsize:8
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neo]] color:neogene
  from: -65.5 till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene
  from: -145.5 till: -65.5 text:[[Special:MyLanguage/Cretaceous|Cretaceous]] color:cretaceous
  from: -199.6 till: -145.5 text:[[Special:MyLanguage/Jurassic|Jurassic]] color:jurassic
  from: -251.4 till: -199.6 text:[[Special:MyLanguage/Triassic|Triassic]] color:triassic
  from: -299 till: -251.4 text:[[Special:MyLanguage/Permian|Permian]] color:permian
  from: -359.2 till: -299 text:[[Special:MyLanguage/Carboniferous|Carboniferous]] color:carboniferous
  from: -416 till: -359.2 text:[[Special:MyLanguage/Devonian|Devonian]] color:devonian
  from: -443.7 till: -416 text:[[Special:MyLanguage/Silurian|Silurian]] color:silurian
  from: -488.3 till: -443.7 text:[[Special:MyLanguage/Ordovician|Ordovician]] color:ordovician
  from: -542 till: -488.3 text:[[Cambrian] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Cenozoic|Cambrian]] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic

  bar:period
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neogene]] color:neogene
  from: start  till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene

  bar:epoch
  from: -0.1 till: 0  text:[[Special:MyLanguage/Holocene|H]] color:holocene 
  from: -2.588 till: -0.1 text:[[Special:MyLanguage/Pleistocene|P]] color:pleistocene
  from: -5.332 till: -2.588 text:[[Special:MyLanguage/Pliocene|Pliocene]] color:pliocene fontsize:7
  from: -23.03 till: -5.332 text:[[Special:MyLanguage/Miocene|Miocene]] color:miocene
  from: -33.9 till: -23.03 text:[[Special:MyLanguage/Oligocene|Oligocene]] color:oligocene
  from: -55.8 till: -33.9 text:[[Special:MyLanguage/Eocene|Eocene]] color:eocene
  from: start till: -55.8 text:[[Special:MyLanguage/Paleocene|Paleocene]] color:paleocene
&lt;/timeline&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=3 align=left&gt;{{Wikimedia Growth}}&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;


&lt;span id="Code_example"&gt;&lt;/span&gt;
== Esempio di utilizzo ==
:''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See also:&lt;/span&gt;'' {{ll|Extension:EasyTimeline/syntax}}

&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Just to show you that the script syntax is reasonably intuitive,
here is the script for the image above: Soviet Leaders.
&lt;/div&gt; 

&lt;syntaxhighlight lang="moin"&gt;
&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Double and single brackets can be used like on wikipedia, language prefix is possible, e.g. &lt;syntaxhighlight lang="moin" inline&gt;[[de:foo|more about foo]]&lt;/syntaxhighlight&gt;. Single brackets for external links are also supported.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Great timelines elsewhere==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Here are two great sites that may serve as inspiration, it would be very easy to recreate most of those timelines verbatim and with roughly similar layout with EasyTimeline (not yet with images but that may change), but I'm afraid that would be 'not done'.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[http://www.hyperhistory.com/online_n2/History_n2/a.html Hyperhistory] e.g. click on button 'people' left, then on 'special lifelines', right.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*I hope we will have a set like [http://chaos1.hypermart.net/fullsize.htm] in a years time (click on ''full size image'' for any map), possibly even with images. The main effort will be to gather all info without snatching everything from here (most of these maps are based exclusively on data from Britannica).
&lt;/div&gt;

&lt;span id="Unicode"&gt;&lt;/span&gt;
== Unicode ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
EasyTimeline does not yet support Unicode.
&lt;/div&gt; 

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Aug 2004: Minimal UTF-8 support has been added, meaning that EasyTimeline now recognizes UTF-8 encoded characters. However support for directionality and complex scripts is very lacking. The default font may not have glyphs for all characters. An alternate font can be specified via &lt;code&gt;$wgTimelineFontFile&lt;/code&gt;
&lt;/div&gt;

&lt;span id="SVG_to_PNG"&gt;&lt;/span&gt;
=== Da SVG a PNG ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
To show texts correctly for RTL languages (like Arabic, Persian, Hebrew,...) you can use {{tmpl|0={{tag|timeline|params={{attr|method|"svg2png"}}|content=$1}}|timeline code here}} instead of {{tmpl|0={{tag|timeline|content=$1}}|timeline code here}}. it shows timeline as png but the links will be disabled.
&lt;/div&gt;

&lt;span id="Tips"&gt;&lt;/span&gt;
== Suggerimenti ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For first time users EasyTimeline may not seem that easy at all. As with all script languages it takes some getting used to. Also the syntax description may be a bit bewildering due to its sheer size. Fortunately many elements of the script language are optional.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The 'Easy' in EasyTimeline conveys the message that once a timeline exists it is not so hard to understand, enhance or correct. Also translating for use on another Wikipedia it is pretty straightforward.
&lt;/div&gt; 

Suggerimenti:

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See some [[#charts-examples|chart examples]] to find something you could pick and edit for your own stuff
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*Put each timeline on a separate Template page: this makes it easier to edit, faster to preview, possible to include it in several pages
&lt;/div&gt;

&lt;span id="Using_the_current_date"&gt;&lt;/span&gt;
== Utilizzo della data odierna ==
&lt;span class="mw-translate-fuzzy"&gt;Per utilizzare la data odierna, assicurati che la tabella inizi con &lt;code&gt;&lt;nowiki&gt;{{#tag:timeline|&lt;/nowiki&gt;&lt;/code&gt; e termini con &lt;code&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;. Poi, la data attuale, si può inserire usando le magic words. Per esempio &lt;code&gt;&lt;nowiki&gt;{{#time: d/m/Y }}&lt;/nowiki&gt;&lt;/code&gt; or &lt;code&gt;&lt;nowiki&gt;{{CURRENTDAY2}}/{{CURRENTMONTH2}}/{{CURRENTYEAR}}&lt;/nowiki&gt;&lt;/code&gt; entrambi produrranno la data nel formato dd/mm/yyyy.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then the current date can be inserted using magic words.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example &lt;code&gt;&lt;nowiki&gt;{{#time: d/m/Y }}&lt;/nowiki&gt;&lt;/code&gt; or &lt;code&gt;&lt;nowiki&gt;{{CURRENTDAY2}}/{{CURRENTMONTH2}}/{{CURRENTYEAR}}&lt;/nowiki&gt;&lt;/code&gt; will both yield the date in format dd/mm/yyyy.&lt;/span&gt;

&lt;span id="See_also"&gt;&lt;/span&gt;
== Vedi anche ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[Special:MyLanguage/Extension:EasyTimeline/syntax|EasyTimeline Coding]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*Presentation about EasyTimeline at Wikimania 2005 ([[m:Transwiki:Wikimania05/Workshop-EZ1|abstract]], [http://upload.wikimedia.org/wikipedia/commons/9/90/Wikimania_2005_Presentation_EasyTimeline.pdf slides], [http://upload.wikimedia.org/wikipedia/commons/7/78/Wikimania_2005_Presentation_Easytimeline_Speaker_Notes.pdf speaker notes])
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[m:WikiTimeScale|m:WikiTimeScale]] as a proposal for realizing timescales for wikipedia articles externally.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[w:Template:Simple Horizontal timeline|w:Template:Simple Horizontal timeline]] An easier timeline to use on Wikipedia.
&lt;/div&gt;
*{{ll|Extension:Graph}}

&lt;span id="Installation"&gt;&lt;/span&gt;
== Installazione ==

* Vedi [[Special:MyLanguage/Extension:EasyTimeline/installation|Installazione]]

&lt;span id="External_links"&gt;&lt;/span&gt;
== Collegamenti esterni ==
* [http://www.simile-widgets.org &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;SIMILE Widgets&lt;/span&gt;] - DHTML-based AJAXy widget for visualizing time-based events

{{OnWikimedia}}
{{Used by}}</text>
    <sha1>ee26485113008a028e16e6f507c11f21f95d3863</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Extension:EasyTimeline/pl</title>
  <ns>102</ns>
  <id>1511181</id>
  <revision>
    <id>6624083</id>
    <parentid>5986622</parentid>
    <timestamp>2024-07-09T04:46:06Z</timestamp>
    <contributor>
      <username>FuzzyBot</username>
      <id>451990</id>
    </contributor>
    <comment>Updating to match new version of source page</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="25920" xml:space="preserve">&lt;languages /&gt;
{{Extension
|type1           = tag
|status          = stable
|author          = [[w:User:Erik Zachte|Erik Zachte]]
|description     = &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Adds  {{tag|timeline|open}} tag for creating timelines&lt;/span&gt;
|download        = {{WikimediaDownload|timeline}}
|needs-updatephp = no
|changelog       = {{git file|action=summary|project=mediawiki/extensions/timeline|branch=HEAD|text=CHANGELOG}}
|phabricator        = EasyTimeline
|pagedrive1      = true
|example         = [[#charts-examples|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See below&lt;/span&gt;]]
|translate       = ext-timeline
}}
{|
| style="padding-{{dir|{{pagelang}}|right|left}}:1em" | ''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Other languages:&lt;/span&gt;''
| {{flatlist|1=
* [[:de:Hilfe:Zeitleisten|de]]
* [[:es:Ayuda:Cronologías|es]]
* [[:eu:Laguntza:Denbora lerroak|eu]]
* [[:fr:Aide:Frise chronologique|fr]]
* [[:id:Wikipedia:Timeline|id]]
* [[:it:Aiuto:Timeline|it]]
* [[:nl:Help:EasyTimeline|nl]]
* [[:pt:Wikipedia:EasyTimeline|pt]]
* [[:zh:Help:简易时间线语法|zh]]
}}
|}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The '''EasyTimeline''' extension produces an embedded image from wikitext. The image can be a one-dimensional diagram (horizontally or vertically), or a two-dimensional one.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See the help page on [[Special:MyLanguage/Extension:EasyTimeline/installation|installing EasyTimeline]] on your wiki.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See also [http://infodisiac.com/Wikipedia/EasyTimeline/Introduction.htm this page on EasyTimeline] or play with it at [[testwiki:EasyTimeline|test.wikipedia.org]].&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
See the help page on [[Special:MyLanguage/Extension:EasyTimeline/syntax|using the syntax provided by this extension]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is a [[phab:T137291|long-term effort]] to get the {{ll|Extension:Chart|Chart}} extension to replace this extension.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Requirements ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This extension requires the following programs installed on the server:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[w:Ploticus|Ploticus]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[w:perl|perl]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[w:XnView|NConvert]] (Windows only)
&lt;/div&gt;

{{anchor|charts-examples}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Charts examples==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Several examples of what is possible. For more extensive examples see
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Timeline WWII - Pacific Theater|WW II - Pacific Theatre]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Timeline of aircraft carriers of the United States Navy|:en:Timeline of aircraft carriers of the United States Navy]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Timeline History of Computing|History of Computing]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:de:Vorlage:Zeitleiste Tour-de-France-Sieger|Tour-de-France Sieger]] - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Vocal and instrumental pitch ranges|Vocal and instrumental pitch ranges]] (a nice example of a diagram that is not a timeline at all)  - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Complete timeline of Macintosh models|Complete timeline of Macintosh models]]  - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Simpler timelines:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Template:Extinction events graphical timeline|:en:Template:Extinction events graphical timeline]]  - horizontal, uses [[w:Template:Horizontal timeline|w:Template:Horizontal timeline]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players|:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players]]  - horizontal with arrows
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Template:Early evolution of the light bulb|:en:Template:Early evolution of the light bulb]]  - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Invention of radio#Radio invention timeline|:en:Invention of radio#Radio invention timeline]]  - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Gaius_Marius#Timeline|:en:Gaius_Marius#Timeline]]   - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:User:Syed Atif Nazir/Template:Imam timeline|:en:User:Syed Atif Nazir/Template:Imam timeline]]   - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [https://de.wikipedia.org/w/index.php?title=Aurich&amp;oldid=171331690#Einwohnerentwicklung Population developement] - horizontal
&lt;/div&gt;

&lt;table&gt;&lt;tr&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize  = width:160 height:550
PlotArea   = width:50 height:530 left:50 bottom:10

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;/td&gt;

&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:proterozoic value:rgb(0.968,0.207,0.388)
  id:neoproterozoic value:rgb(0.996,0.701,0.258)
  id:ediacaran value:rgb(0.996,0.85,0.415)
  id:cryogenian value:rgb(0.996,0.8,0.36)
  id:tonian value:rgb(0.996,0.75,0.305)
  id:mesoproterozoic value:rgb(0.996,0.705,0.384)
  id:stenian value:rgb(0.996,0.85,0.604)
  id:ectasian value:rgb(0.996,0.8,0.541)
  id:calymmian value:rgb(0.996,0.75,0.478)
  id:paleoproterozoic value:rgb(0.968,0.263,0.44)
  id:statherian value:rgb(0.968,0.459,0.655)
  id:orosirian value:rgb(0.968,0.408,0.596)
  id:rhyacian value:rgb(0.968,0.357,0.537)
  id:siderian value:rgb(0.968,0.306,0.478)
  id:archean value:rgb(0.996,0.157,0.498)
  id:neoarchean value:rgb(0.976,0.608,0.757)
  id:mesoarchean value:rgb(0.968,0.408,0.662)
  id:paleoarchean value:rgb(0.96,0.266,0.624)
  id:eoarchean value:rgb(0.902,0.114,0.549)
  id:hadean value:rgb(0.717,0,0.494)
  id:black value:black
  id:white value:white

Period     = from:-4567 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:500 start:-4500
ScaleMinor = unit:year increment:100 start:-4500

Define $markred = text:"*" textcolor:red shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)


  bar:eon

  at:       0 align:right $markred
  at:    -542 align:left  $markred shift:(2,3)
  from:  -542 till:    0  text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic   
  from: -2500 till: -542  text:[[Special:MyLanguage/Proterozoic|Proterozoic]] color:proterozoic   
  from: -4000 till: -2500 text:[[Special:MyLanguage/Archean|Archean]]     color:archean   
  from: start till: -4000 text:[[Special:MyLanguage/Hadean|Hadean]]      color:hadean

  bar:era

  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|C]] color:cenozoic        
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Meso]] color:mesozoic        
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic 
  from: -1000 till: -542  text:[[Special:MyLanguage/Neoproterozoic|Neoproterozoic]] color:neoproterozoic   
  from: -1600 till: -1000 text:[[Special:MyLanguage/Mesoproterozoic|Mesoproterozoic]] color:mesoproterozoic  
  from: -2500 till: -1600 text:[[Special:MyLanguage/Paleoproterozoic|Paleoproterozoic]] color:paleoproterozoic 
  from: -2800 till: -2500 text:[[Special:MyLanguage/Neoarchean|Neoarch]] color:neoarchean       
  from: -3200 till: -2800 text:[[Special:MyLanguage/Mesoarchean|Mesoarch]] color:mesoarchean      
  from: -3600 till: -3200 text:[[Special:MyLanguage/Paleoarchean|Paleoarch]] color:paleoarchean     
  from: -4000 till: -3600 text:[[Special:MyLanguage/Eoarchean|Eoarchean]] color:eoarchean
  from: start till: -4000 color:white

  bar:period

  fontsize:6
  from: -2.6 till: 0        color:quaternary
  from: -23.03 till: -2.6   color:neogene
  from: -65.5 till: -23.03  color:paleogene
  from: -145.5 till: -65.5  color:cretaceous
  from: -199.6 till: -145.5 color:jurassic
  from: -251 till: -199.6   color:triassic
  from: -299 till: -251     color:permian
  from: -359.2 till: -299   color:carboniferous
  from: -416 till: -359.2   color:devonian
  from: -443.7 till: -416   color:silurian
  from: -488.3 till: -443.7 color:ordovician
  from: -542 till: -488.3   color:cambrian

  from: -635  till: -542  text:[[Special:MyLanguage/Ediacaran|Ed.]] color:ediacaran
  from: -850  till: -635  text:[[Special:MyLanguage/Cryogenian|Cryo]] color:cryogenian
  from: -1000 till: -850  text:[[Special:MyLanguage/Tonian|Tonian]] color:tonian
  from: -1200 till: -1000 text:[[Special:MyLanguage/Stenian|Stenian]] color:stenian
  from: -1400 till: -1200 text:[[Special:MyLanguage/Ectasian|Ectasian]] color:ectasian
  from: -1600 till: -1400 text:[[Special:MyLanguage/Calymmian|Calymm]] color:calymmian
  from: -1800 till: -1600 text:[[Special:MyLanguage/Statherian|Stather]] color:statherian
  from: -2050 till: -1800 text:[[Special:MyLanguage/Orosirian|Orosirian]] color:orosirian
  from: -2300 till: -2050 text:[[Special:MyLanguage/Rhyacian|Rhyacian]] color:rhyacian
  from: -2500 till: -2300 text:[[Special:MyLanguage/Siderian|Siderian]] color:siderian
  from: start till: -2500 color:white
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize  = width:800 height:100
PlotArea   = left:65 right:15 bottom:20 top:5
AlignBars  = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black  value:black
  id:white  value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-542 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:100 start:-500
ScaleMinor = unit:year increment:10  start:-540

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:eon
  at:      0   align:right  $markred 
  at:   -542   align:left   $markred shift:(2,3)
  from: -542   till:    0   text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic

  bar:era
  at:   0     align:right $markgreen
  at:   -65.5 align:left  $markgreen shift:(2,3)
  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Mesozoic]] color:mesozoic
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic

  bar:period fontsize:8
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neo]] color:neogene
  from: -65.5 till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene
  from: -145.5 till: -65.5 text:[[Special:MyLanguage/Cretaceous|Cretaceous]] color:cretaceous
  from: -199.6 till: -145.5 text:[[Special:MyLanguage/Jurassic|Jurassic]] color:jurassic
  from: -251.4 till: -199.6 text:[[Special:MyLanguage/Triassic|Triassic]] color:triassic
  from: -299 till: -251.4 text:[[Special:MyLanguage/Permian|Permian]] color:permian
  from: -359.2 till: -299 text:[[Special:MyLanguage/Carboniferous|Carboniferous]] color:carboniferous
  from: -416 till: -359.2 text:[[Special:MyLanguage/Devonian|Devonian]] color:devonian
  from: -443.7 till: -416 text:[[Special:MyLanguage/Silurian|Silurian]] color:silurian
  from: -488.3 till: -443.7 text:[[Special:MyLanguage/Ordovician|Ordovician]] color:ordovician
  from: -542 till: -488.3 text:[[Cambrian] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Cenozoic|Cambrian]] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic

  bar:period
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neogene]] color:neogene
  from: start  till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene

  bar:epoch
  from: -0.1 till: 0  text:[[Special:MyLanguage/Holocene|H]] color:holocene 
  from: -2.588 till: -0.1 text:[[Special:MyLanguage/Pleistocene|P]] color:pleistocene
  from: -5.332 till: -2.588 text:[[Special:MyLanguage/Pliocene|Pliocene]] color:pliocene fontsize:7
  from: -23.03 till: -5.332 text:[[Special:MyLanguage/Miocene|Miocene]] color:miocene
  from: -33.9 till: -23.03 text:[[Special:MyLanguage/Oligocene|Oligocene]] color:oligocene
  from: -55.8 till: -33.9 text:[[Special:MyLanguage/Eocene|Eocene]] color:eocene
  from: start till: -55.8 text:[[Special:MyLanguage/Paleocene|Paleocene]] color:paleocene
&lt;/timeline&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=3 align=left&gt;{{Wikimedia Growth}}&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Code example==
&lt;/div&gt;
:''Zobacz też:'' {{ll|Extension:EasyTimeline/syntax}}

&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Just to show you that the script syntax is reasonably intuitive,
here is the script for the image above: Soviet Leaders.
&lt;/div&gt; 

&lt;syntaxhighlight lang="moin"&gt;
&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Double and single brackets can be used like on wikipedia, language prefix is possible, e.g. &lt;syntaxhighlight lang="moin" inline&gt;[[de:foo|more about foo]]&lt;/syntaxhighlight&gt;. Single brackets for external links are also supported.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Great timelines elsewhere==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Here are two great sites that may serve as inspiration, it would be very easy to recreate most of those timelines verbatim and with roughly similar layout with EasyTimeline (not yet with images but that may change), but I'm afraid that would be 'not done'.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[http://www.hyperhistory.com/online_n2/History_n2/a.html Hyperhistory] e.g. click on button 'people' left, then on 'special lifelines', right.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*I hope we will have a set like [http://chaos1.hypermart.net/fullsize.htm] in a years time (click on ''full size image'' for any map), possibly even with images. The main effort will be to gather all info without snatching everything from here (most of these maps are based exclusively on data from Britannica).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Unicode==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
EasyTimeline does not yet support Unicode.
&lt;/div&gt; 

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Aug 2004: Minimal UTF-8 support has been added, meaning that EasyTimeline now recognizes UTF-8 encoded characters. However support for directionality and complex scripts is very lacking. The default font may not have glyphs for all characters. An alternate font can be specified via &lt;code&gt;$wgTimelineFontFile&lt;/code&gt;
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===SVG to PNG===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
To show texts correctly for RTL languages (like Arabic, Persian, Hebrew,...) you can use {{tmpl|0={{tag|timeline|params={{attr|method|"svg2png"}}|content=$1}}|timeline code here}} instead of {{tmpl|0={{tag|timeline|content=$1}}|timeline code here}}. it shows timeline as png but the links will be disabled.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Tips==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For first time users EasyTimeline may not seem that easy at all. As with all script languages it takes some getting used to. Also the syntax description may be a bit bewildering due to its sheer size. Fortunately many elements of the script language are optional.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The 'Easy' in EasyTimeline conveys the message that once a timeline exists it is not so hard to understand, enhance or correct. Also translating for use on another Wikipedia it is pretty straightforward.
&lt;/div&gt; 

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tips:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See some [[#charts-examples|chart examples]] to find something you could pick and edit for your own stuff
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*Put each timeline on a separate Template page: this makes it easier to edit, faster to preview, possible to include it in several pages
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Using the current date==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use the current date make sure the table opens with &lt;code&gt;&lt;nowiki&gt;{{#tag:timeline|&lt;/nowiki&gt;&lt;/code&gt; and closes with &lt;code&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then the current date can be inserted using magic words.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example &lt;code&gt;&lt;nowiki&gt;{{#time: d/m/Y }}&lt;/nowiki&gt;&lt;/code&gt; or &lt;code&gt;&lt;nowiki&gt;{{CURRENTDAY2}}/{{CURRENTMONTH2}}/{{CURRENTYEAR}}&lt;/nowiki&gt;&lt;/code&gt; will both yield the date in format dd/mm/yyyy.&lt;/span&gt;

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[Special:MyLanguage/Extension:EasyTimeline/syntax|EasyTimeline Coding]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*Presentation about EasyTimeline at Wikimania 2005 ([[m:Transwiki:Wikimania05/Workshop-EZ1|abstract]], [http://upload.wikimedia.org/wikipedia/commons/9/90/Wikimania_2005_Presentation_EasyTimeline.pdf slides], [http://upload.wikimedia.org/wikipedia/commons/7/78/Wikimania_2005_Presentation_Easytimeline_Speaker_Notes.pdf speaker notes])
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[m:WikiTimeScale|m:WikiTimeScale]] as a proposal for realizing timescales for wikipedia articles externally.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[w:Template:Simple Horizontal timeline|w:Template:Simple Horizontal timeline]] An easier timeline to use on Wikipedia.
&lt;/div&gt;
*{{ll|Extension:Graph}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Installation==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
See [[Special:MyLanguage/Extension:EasyTimeline/installation|/installation]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==External links==
&lt;/div&gt;
* [http://www.simile-widgets.org &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;SIMILE Widgets&lt;/span&gt;] - DHTML-based AJAXy widget for visualizing time-based events

{{OnWikimedia}}
{{Used by}}</text>
    <sha1>44f2dc0ff7753b891cadfe8365275515edaf24da</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Extension:EasyTimeline/ja</title>
  <ns>102</ns>
  <id>23165</id>
  <revision>
    <id>6624084</id>
    <parentid>5986621</parentid>
    <timestamp>2024-07-09T04:46:07Z</timestamp>
    <contributor>
      <username>FuzzyBot</username>
      <id>451990</id>
    </contributor>
    <comment>Updating to match new version of source page</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="24628" xml:space="preserve">&lt;languages /&gt;
{{Extension
|type1           = tag
|status          = stable
|author          = [[w:User:Erik Zachte|Erik Zachte]]
|description     = &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Adds  {{tag|timeline|open}} tag for creating timelines&lt;/span&gt;
|download        = {{WikimediaDownload|timeline}}
|needs-updatephp = no
|changelog       = {{git file|action=summary|project=mediawiki/extensions/timeline|branch=HEAD|text=CHANGELOG}}
|phabricator        = EasyTimeline
|pagedrive1      = true
|example         = [[#charts-examples|下記参照]]
|translate       = ext-timeline
}}
{|
| style="padding-{{dir|{{pagelang}}|right|left}}:1em" | ''その他の言語:''
| {{flatlist|1=
* [[:de:Hilfe:Zeitleisten|de]]
* [[:es:Ayuda:Cronologías|es]]
* [[:eu:Laguntza:Denbora lerroak|eu]]
* [[:fr:Aide:Frise chronologique|fr]]
* [[:id:Wikipedia:Timeline|id]]
* [[:it:Aiuto:Timeline|it]]
* [[:nl:Help:EasyTimeline|nl]]
* [[:pt:Wikipedia:EasyTimeline|pt]]
* [[:zh:Help:简易时间线语法|zh]]
}}
|}

'''EasyTimeline'''（イージータイムライン）拡張機能はウィキ文から埋め込み画像を生成します。1次元（縦軸または横軸方向のみ）または2次元の画像です。

ヘルプページを参照してローカルに [[Special:MyLanguage/Extension:EasyTimeline/installation|EasyTimeline をインストール]]します。
また [http://infodisiac.com/Wikipedia/EasyTimeline/Introduction.htm EasyTimeline 公式のこのページ]も参考になり、[[testwiki:EasyTimeline|test.wikipedia.org]] で試用できます。

[[Special:MyLanguage/Extension:EasyTimeline/syntax|この拡張機能が提供する構文]]のヘルプページをご参照ください。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is a [[phab:T137291|long-term effort]] to get the {{ll|Extension:Chart|Chart}} extension to replace this extension.
&lt;/div&gt;

&lt;span id="Requirements"&gt;&lt;/span&gt;
== 要件 ==

この拡張機能を利用するにはサーバに以下のプログラムがインストールされていることが前提です。

*[[wikipedia:ja:Ploticus|Ploticus]]
*[[wikipedia:ja:perl|perl]]
*[[wikipedia:ja:XnView|NConvert]]（Windows 版のみ）

{{anchor|charts-examples}}
&lt;span id="Charts_examples"&gt;&lt;/span&gt;
== 表の例 ==

作成可能な表の例です。詳細は次をご参照ください。

* [[:en:Template:Timeline WWII - Pacific Theater|WW II - Pacific Theatre]] 太平洋戦争の展開 - 横位置
* [[:en:Timeline of aircraft carriers of the United States Navy|:en:Timeline of aircraft carriers of the United States Navy]] アメリカ海軍の歴代の航空母艦 - 縦位置
* [[:en:Template:Timeline History of Computing|History of Computing]] 電子演算機の歴史 - 横位置
* [[:de:Vorlage:Zeitleiste Tour-de-France-Sieger|Tour-de-France Sieger]] ツールドフランスの優勝者 - 縦位置
* [[:en:Template:Vocal and instrumental pitch ranges|Vocal and instrumental pitch ranges]] 声と楽器の音域 - 横位置（年表以外に使った例）
* [[:en:Template:Complete timeline of Macintosh models|Complete timeline of Macintosh models]] マッキントッシュの型番 - 横位置
* 単純な年表 :
** [[:en:Template:Extinction events graphical timeline|:en:Template:Extinction events graphical timeline]] 絶滅の歴史 - 横位置で、[[w:en:Template:Horizontal timeline|w:en:Template:Horizontal timeline]]テンプレートを使用
** [[:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players|:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players]] ラジオ開発の関係者（アーカイブ） - 横位置で矢印入り
** [[:en:Template:Early evolution of the light bulb|:en:Template:Early evolution of the light bulb]] 電球の開発初期 - 縦位置
** [[:en:Invention of radio#Radio invention timeline|:en:Invention of radio#Radio invention timeline]] ラジオの開発史 - 縦位置
** [[:en:Gaius_Marius#Timeline|:en:Gaius_Marius#Timeline]] 人物の履歴 - 縦位置
** [[:en:User:Syed Atif Nazir/Template:Imam timeline|:en:User:Syed Atif Nazir/Template:Imam timeline]] イマームの時間  - 縦位置
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [https://de.wikipedia.org/w/index.php?title=Aurich&amp;oldid=171331690#Einwohnerentwicklung Population developement] - horizontal
&lt;/div&gt;

&lt;table&gt;&lt;tr&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize  = width:160 height:550
PlotArea   = width:50 height:530 left:50 bottom:10

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;/td&gt;

&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:proterozoic value:rgb(0.968,0.207,0.388)
  id:neoproterozoic value:rgb(0.996,0.701,0.258)
  id:ediacaran value:rgb(0.996,0.85,0.415)
  id:cryogenian value:rgb(0.996,0.8,0.36)
  id:tonian value:rgb(0.996,0.75,0.305)
  id:mesoproterozoic value:rgb(0.996,0.705,0.384)
  id:stenian value:rgb(0.996,0.85,0.604)
  id:ectasian value:rgb(0.996,0.8,0.541)
  id:calymmian value:rgb(0.996,0.75,0.478)
  id:paleoproterozoic value:rgb(0.968,0.263,0.44)
  id:statherian value:rgb(0.968,0.459,0.655)
  id:orosirian value:rgb(0.968,0.408,0.596)
  id:rhyacian value:rgb(0.968,0.357,0.537)
  id:siderian value:rgb(0.968,0.306,0.478)
  id:archean value:rgb(0.996,0.157,0.498)
  id:neoarchean value:rgb(0.976,0.608,0.757)
  id:mesoarchean value:rgb(0.968,0.408,0.662)
  id:paleoarchean value:rgb(0.96,0.266,0.624)
  id:eoarchean value:rgb(0.902,0.114,0.549)
  id:hadean value:rgb(0.717,0,0.494)
  id:black value:black
  id:white value:white

Period     = from:-4567 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:500 start:-4500
ScaleMinor = unit:year increment:100 start:-4500

Define $markred = text:"*" textcolor:red shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)


  bar:eon

  at:       0 align:right $markred
  at:    -542 align:left  $markred shift:(2,3)
  from:  -542 till:    0  text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic   
  from: -2500 till: -542  text:[[Special:MyLanguage/Proterozoic|Proterozoic]] color:proterozoic   
  from: -4000 till: -2500 text:[[Special:MyLanguage/Archean|Archean]]     color:archean   
  from: start till: -4000 text:[[Special:MyLanguage/Hadean|Hadean]]      color:hadean

  bar:era

  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|C]] color:cenozoic        
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Meso]] color:mesozoic        
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic 
  from: -1000 till: -542  text:[[Special:MyLanguage/Neoproterozoic|Neoproterozoic]] color:neoproterozoic   
  from: -1600 till: -1000 text:[[Special:MyLanguage/Mesoproterozoic|Mesoproterozoic]] color:mesoproterozoic  
  from: -2500 till: -1600 text:[[Special:MyLanguage/Paleoproterozoic|Paleoproterozoic]] color:paleoproterozoic 
  from: -2800 till: -2500 text:[[Special:MyLanguage/Neoarchean|Neoarch]] color:neoarchean       
  from: -3200 till: -2800 text:[[Special:MyLanguage/Mesoarchean|Mesoarch]] color:mesoarchean      
  from: -3600 till: -3200 text:[[Special:MyLanguage/Paleoarchean|Paleoarch]] color:paleoarchean     
  from: -4000 till: -3600 text:[[Special:MyLanguage/Eoarchean|Eoarchean]] color:eoarchean
  from: start till: -4000 color:white

  bar:period

  fontsize:6
  from: -2.6 till: 0        color:quaternary
  from: -23.03 till: -2.6   color:neogene
  from: -65.5 till: -23.03  color:paleogene
  from: -145.5 till: -65.5  color:cretaceous
  from: -199.6 till: -145.5 color:jurassic
  from: -251 till: -199.6   color:triassic
  from: -299 till: -251     color:permian
  from: -359.2 till: -299   color:carboniferous
  from: -416 till: -359.2   color:devonian
  from: -443.7 till: -416   color:silurian
  from: -488.3 till: -443.7 color:ordovician
  from: -542 till: -488.3   color:cambrian

  from: -635  till: -542  text:[[Special:MyLanguage/Ediacaran|Ed.]] color:ediacaran
  from: -850  till: -635  text:[[Special:MyLanguage/Cryogenian|Cryo]] color:cryogenian
  from: -1000 till: -850  text:[[Special:MyLanguage/Tonian|Tonian]] color:tonian
  from: -1200 till: -1000 text:[[Special:MyLanguage/Stenian|Stenian]] color:stenian
  from: -1400 till: -1200 text:[[Special:MyLanguage/Ectasian|Ectasian]] color:ectasian
  from: -1600 till: -1400 text:[[Special:MyLanguage/Calymmian|Calymm]] color:calymmian
  from: -1800 till: -1600 text:[[Special:MyLanguage/Statherian|Stather]] color:statherian
  from: -2050 till: -1800 text:[[Special:MyLanguage/Orosirian|Orosirian]] color:orosirian
  from: -2300 till: -2050 text:[[Special:MyLanguage/Rhyacian|Rhyacian]] color:rhyacian
  from: -2500 till: -2300 text:[[Special:MyLanguage/Siderian|Siderian]] color:siderian
  from: start till: -2500 color:white
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize  = width:800 height:100
PlotArea   = left:65 right:15 bottom:20 top:5
AlignBars  = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black  value:black
  id:white  value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-542 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:100 start:-500
ScaleMinor = unit:year increment:10  start:-540

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:eon
  at:      0   align:right  $markred 
  at:   -542   align:left   $markred shift:(2,3)
  from: -542   till:    0   text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic

  bar:era
  at:   0     align:right $markgreen
  at:   -65.5 align:left  $markgreen shift:(2,3)
  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Mesozoic]] color:mesozoic
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic

  bar:period fontsize:8
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neo]] color:neogene
  from: -65.5 till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene
  from: -145.5 till: -65.5 text:[[Special:MyLanguage/Cretaceous|Cretaceous]] color:cretaceous
  from: -199.6 till: -145.5 text:[[Special:MyLanguage/Jurassic|Jurassic]] color:jurassic
  from: -251.4 till: -199.6 text:[[Special:MyLanguage/Triassic|Triassic]] color:triassic
  from: -299 till: -251.4 text:[[Special:MyLanguage/Permian|Permian]] color:permian
  from: -359.2 till: -299 text:[[Special:MyLanguage/Carboniferous|Carboniferous]] color:carboniferous
  from: -416 till: -359.2 text:[[Special:MyLanguage/Devonian|Devonian]] color:devonian
  from: -443.7 till: -416 text:[[Special:MyLanguage/Silurian|Silurian]] color:silurian
  from: -488.3 till: -443.7 text:[[Special:MyLanguage/Ordovician|Ordovician]] color:ordovician
  from: -542 till: -488.3 text:[[Cambrian] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Cenozoic|Cambrian]] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic

  bar:period
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neogene]] color:neogene
  from: start  till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene

  bar:epoch
  from: -0.1 till: 0  text:[[Special:MyLanguage/Holocene|H]] color:holocene 
  from: -2.588 till: -0.1 text:[[Special:MyLanguage/Pleistocene|P]] color:pleistocene
  from: -5.332 till: -2.588 text:[[Special:MyLanguage/Pliocene|Pliocene]] color:pliocene fontsize:7
  from: -23.03 till: -5.332 text:[[Special:MyLanguage/Miocene|Miocene]] color:miocene
  from: -33.9 till: -23.03 text:[[Special:MyLanguage/Oligocene|Oligocene]] color:oligocene
  from: -55.8 till: -33.9 text:[[Special:MyLanguage/Eocene|Eocene]] color:eocene
  from: start till: -55.8 text:[[Special:MyLanguage/Paleocene|Paleocene]] color:paleocene
&lt;/timeline&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=3 align=left&gt;{{Wikimedia Growth}}&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;


&lt;span id="Code_example"&gt;&lt;/span&gt;
==コードの例==
:''関連項目:'' {{ll|Extension:EasyTimeline/syntax}}

&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

スクリプトの構文は容認できる程度には直感的で、スクリプトを使って表を示します : Soviet Leaders 

&lt;syntaxhighlight lang="moin"&gt;
&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;
&lt;/syntaxhighlight&gt;

半角カッコの単数と複数 の使い分けはウィキペディア同様で、言語接頭辞も使えます。例えば &lt;syntaxhighlight lang="moin" inline&gt;[[de:foo|more about foo]]&lt;/syntaxhighlight&gt;。外部リンクを示す単数の半角角カッコも使えます。

&lt;span id="Great_timelines_elsewhere"&gt;&lt;/span&gt;
== 年表のすぐれた例をあちこちから ==

発想の源としてすばらしいサイトを2件紹介し、ほとんどの年表は苦労なく文字単位で再作成が可能で あり、見た目のレイアウトはほぼ EasyTimeline そっくりで（画像部分は改善待ち）、ただし実現は〈しない〉予感がします。

*[http://www.hyperhistory.com/online_n2/History_n2/a.html Hyperhistory] とは、ボタン配置を〈people〉が左、〈special lifelines〉が右。
*希望的には1年以内に [http://chaos1.hypermart.net/fullsize.htm] みたいなセット（地図の全体表示に''full size image'' ボタン）の開発と、もしかしたら画像にも応用できると期待しています。注力する点はここにあげた各点を盗まずに情報を収集することです（地図の大部分はブリタニカ百科事典のデータに特異的に依存）。

==Unicode==

EasyTimeline はまだ Unicode をサポートしていません。 

2004年8月：UTF-8 の最低限のサポートを導入し EasyTimeline でも UTF-8 形式の文字を認識可能になる。ただし右書き・左書きもしくは縦書きか、あるいは複雑なスクリプトへの対応は大幅に不足。既定のフォントが備えるグリフに非対応の文字がある。そこで代替フォントは &lt;code&gt;$wgTimelineFontFile&lt;/code&gt;で指定できる。

&lt;span id="SVG_to_PNG"&gt;&lt;/span&gt;
=== SVGをPNGに変換 ===

右横書き言語（RTL＝アラビア語、ペルシャ語、ヘブライ語ほか）で正しく表示するには {{tmpl|0={{tag|timeline|content=$1}}|timeline コード}} の代わりに {{tmpl|0={{tag|timeline|params={{attr|method|"svg2png"}}|content=$1}}|timeline コード}} を使用します。 年表は表示されるものの、リンクは無効化されます。

&lt;span id="Tips"&gt;&lt;/span&gt;
==ヒント==

初学者にとって EasyTimeline はかなり複雑に見えるかもしれません。 スクリプト言語にありがちなように、慣れが必要です。どの構文も記述がとても長く、気持ちが落ち込むかもしれません。幸運にも、スクリプト言語のほとんどの要素はオプショナルです。

EasyTimeline の〈Easy〉（簡単）が何を意味するかというと、これのインストールが終わって年表ができると、理解も実行も訂正もあまり難しくない点です。また他のウィキペディアで使うために翻訳するのも、かなりの確率で直訳で通せます。 

ヒント集：

* 皆さんの目指す表に使えそうなものを探すには、[[#charts-examples|表のサンプル]]をご参照ください
*年表単位でテンプレートを作ります。プレビューがすぐに表示され、編集がしやすく、また複数ページへの導入がしやすくなります。

&lt;span id="Using_the_current_date"&gt;&lt;/span&gt;
== 現在時刻を使用する ==
現在時刻の表示には、必ず表の冒頭に &lt;code&gt;&lt;nowiki&gt;{{#tag:timeline|&lt;/nowiki&gt;&lt;/code&gt; と書き、&lt;code&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; で閉じます。
次に現在時刻はマジックワードを使って挿入します。
たとえば&lt;code&gt;&lt;nowiki&gt;{{#time: d/m/Y }}&lt;/nowiki&gt;&lt;/code&gt; でも、&lt;code&gt;&lt;nowiki&gt;{{CURRENTDAY2}}/{{CURRENTMONTH2}}/{{CURRENTYEAR}}&lt;/nowiki&gt;&lt;/code&gt; でも、 日付の書式は dd/mm/yyyy（日月年）となります。

&lt;span id="See_also"&gt;&lt;/span&gt;
==関連項目==

*[[Special:MyLanguage/Extension:EasyTimeline/syntax|EasyTimeline コード]]
*ウィキマニア2005における EasyTimeline の発表（[[m:Transwiki:Wikimania05/Workshop-EZ1|概要]]、[http://upload.wikimedia.org/wikipedia/commons/9/90/Wikimania_2005_Presentation_EasyTimeline.pdf スライド集]、[http://upload.wikimedia.org/wikipedia/commons/7/78/Wikimania_2005_Presentation_Easytimeline_Speaker_Notes.pdf 発表者による注釈]）。
*[[m:WikiTimeScale|m:WikiTimeScale]] ではウィキペディアの外部でタイムスケールを実現する方法を提言。
* [[w:Template:Simple Horizontal timeline|w:Template:Simple Horizontal timeline]]はウィキペディアでもっと使いやすい年表。
*{{ll|Extension:Graph}}

&lt;span id="Installation"&gt;&lt;/span&gt;
==インストール==

[[Special:MyLanguage/Extension:EasyTimeline/installation|インストール]]節を参照してください

&lt;span id="External_links"&gt;&lt;/span&gt;
==外部リンク==
* [http://www.simile-widgets.org &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;SIMILE Widgets&lt;/span&gt;] - DHTML-based AJAXy widget for visualizing time-based events

{{OnWikimedia}}
{{Used by}}</text>
    <sha1>fbabe35937a418a2047b6429436adaa7ac429d37</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Extension:EasyTimeline/pt-br</title>
  <ns>102</ns>
  <id>1097363</id>
  <revision>
    <id>6624085</id>
    <parentid>5986623</parentid>
    <timestamp>2024-07-09T04:46:07Z</timestamp>
    <contributor>
      <username>FuzzyBot</username>
      <id>451990</id>
    </contributor>
    <comment>Updating to match new version of source page</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="25888" xml:space="preserve">&lt;languages /&gt;
{{Extension
|type1           = tag
|status          = stable
|author          = [[w:User:Erik Zachte|Erik Zachte]]
|description     = &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Adds  {{tag|timeline|open}} tag for creating timelines&lt;/span&gt;
|download        = {{WikimediaDownload|timeline}}
|needs-updatephp = no
|changelog       = {{git file|action=summary|project=mediawiki/extensions/timeline|branch=HEAD|text=CHANGELOG}}
|phabricator        = EasyTimeline
|pagedrive1      = true
|example         = [[#charts-examples|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See below&lt;/span&gt;]]
|translate       = ext-timeline
}}
{|
| style="padding-{{dir|{{pagelang}}|right|left}}:1em" | ''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Other languages:&lt;/span&gt;''
| {{flatlist|1=
* [[:de:Hilfe:Zeitleisten|de]]
* [[:es:Ayuda:Cronologías|es]]
* [[:eu:Laguntza:Denbora lerroak|eu]]
* [[:fr:Aide:Frise chronologique|fr]]
* [[:id:Wikipedia:Timeline|id]]
* [[:it:Aiuto:Timeline|it]]
* [[:nl:Help:EasyTimeline|nl]]
* [[:pt:Wikipedia:EasyTimeline|pt]]
* [[:zh:Help:简易时间线语法|zh]]
}}
|}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The '''EasyTimeline''' extension produces an embedded image from wikitext. The image can be a one-dimensional diagram (horizontally or vertically), or a two-dimensional one.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See the help page on [[Special:MyLanguage/Extension:EasyTimeline/installation|installing EasyTimeline]] on your wiki.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See also [http://infodisiac.com/Wikipedia/EasyTimeline/Introduction.htm this page on EasyTimeline] or play with it at [[testwiki:EasyTimeline|test.wikipedia.org]].&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
See the help page on [[Special:MyLanguage/Extension:EasyTimeline/syntax|using the syntax provided by this extension]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is a [[phab:T137291|long-term effort]] to get the {{ll|Extension:Chart|Chart}} extension to replace this extension.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Requirements ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This extension requires the following programs installed on the server:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[w:Ploticus|Ploticus]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[w:perl|perl]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[w:XnView|NConvert]] (Windows only)
&lt;/div&gt;

{{anchor|charts-examples}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Charts examples==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Several examples of what is possible. For more extensive examples see
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Timeline WWII - Pacific Theater|WW II - Pacific Theatre]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Timeline of aircraft carriers of the United States Navy|:en:Timeline of aircraft carriers of the United States Navy]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Timeline History of Computing|History of Computing]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:de:Vorlage:Zeitleiste Tour-de-France-Sieger|Tour-de-France Sieger]] - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Vocal and instrumental pitch ranges|Vocal and instrumental pitch ranges]] (a nice example of a diagram that is not a timeline at all)  - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Complete timeline of Macintosh models|Complete timeline of Macintosh models]]  - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Simpler timelines:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Template:Extinction events graphical timeline|:en:Template:Extinction events graphical timeline]]  - horizontal, uses [[w:Template:Horizontal timeline|w:Template:Horizontal timeline]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players|:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players]]  - horizontal with arrows
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Template:Early evolution of the light bulb|:en:Template:Early evolution of the light bulb]]  - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Invention of radio#Radio invention timeline|:en:Invention of radio#Radio invention timeline]]  - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Gaius_Marius#Timeline|:en:Gaius_Marius#Timeline]]   - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:User:Syed Atif Nazir/Template:Imam timeline|:en:User:Syed Atif Nazir/Template:Imam timeline]]   - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [https://de.wikipedia.org/w/index.php?title=Aurich&amp;oldid=171331690#Einwohnerentwicklung Population developement] - horizontal
&lt;/div&gt;

&lt;table&gt;&lt;tr&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize  = width:160 height:550
PlotArea   = width:50 height:530 left:50 bottom:10

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;/td&gt;

&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:proterozoic value:rgb(0.968,0.207,0.388)
  id:neoproterozoic value:rgb(0.996,0.701,0.258)
  id:ediacaran value:rgb(0.996,0.85,0.415)
  id:cryogenian value:rgb(0.996,0.8,0.36)
  id:tonian value:rgb(0.996,0.75,0.305)
  id:mesoproterozoic value:rgb(0.996,0.705,0.384)
  id:stenian value:rgb(0.996,0.85,0.604)
  id:ectasian value:rgb(0.996,0.8,0.541)
  id:calymmian value:rgb(0.996,0.75,0.478)
  id:paleoproterozoic value:rgb(0.968,0.263,0.44)
  id:statherian value:rgb(0.968,0.459,0.655)
  id:orosirian value:rgb(0.968,0.408,0.596)
  id:rhyacian value:rgb(0.968,0.357,0.537)
  id:siderian value:rgb(0.968,0.306,0.478)
  id:archean value:rgb(0.996,0.157,0.498)
  id:neoarchean value:rgb(0.976,0.608,0.757)
  id:mesoarchean value:rgb(0.968,0.408,0.662)
  id:paleoarchean value:rgb(0.96,0.266,0.624)
  id:eoarchean value:rgb(0.902,0.114,0.549)
  id:hadean value:rgb(0.717,0,0.494)
  id:black value:black
  id:white value:white

Period     = from:-4567 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:500 start:-4500
ScaleMinor = unit:year increment:100 start:-4500

Define $markred = text:"*" textcolor:red shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)


  bar:eon

  at:       0 align:right $markred
  at:    -542 align:left  $markred shift:(2,3)
  from:  -542 till:    0  text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic   
  from: -2500 till: -542  text:[[Special:MyLanguage/Proterozoic|Proterozoic]] color:proterozoic   
  from: -4000 till: -2500 text:[[Special:MyLanguage/Archean|Archean]]     color:archean   
  from: start till: -4000 text:[[Special:MyLanguage/Hadean|Hadean]]      color:hadean

  bar:era

  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|C]] color:cenozoic        
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Meso]] color:mesozoic        
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic 
  from: -1000 till: -542  text:[[Special:MyLanguage/Neoproterozoic|Neoproterozoic]] color:neoproterozoic   
  from: -1600 till: -1000 text:[[Special:MyLanguage/Mesoproterozoic|Mesoproterozoic]] color:mesoproterozoic  
  from: -2500 till: -1600 text:[[Special:MyLanguage/Paleoproterozoic|Paleoproterozoic]] color:paleoproterozoic 
  from: -2800 till: -2500 text:[[Special:MyLanguage/Neoarchean|Neoarch]] color:neoarchean       
  from: -3200 till: -2800 text:[[Special:MyLanguage/Mesoarchean|Mesoarch]] color:mesoarchean      
  from: -3600 till: -3200 text:[[Special:MyLanguage/Paleoarchean|Paleoarch]] color:paleoarchean     
  from: -4000 till: -3600 text:[[Special:MyLanguage/Eoarchean|Eoarchean]] color:eoarchean
  from: start till: -4000 color:white

  bar:period

  fontsize:6
  from: -2.6 till: 0        color:quaternary
  from: -23.03 till: -2.6   color:neogene
  from: -65.5 till: -23.03  color:paleogene
  from: -145.5 till: -65.5  color:cretaceous
  from: -199.6 till: -145.5 color:jurassic
  from: -251 till: -199.6   color:triassic
  from: -299 till: -251     color:permian
  from: -359.2 till: -299   color:carboniferous
  from: -416 till: -359.2   color:devonian
  from: -443.7 till: -416   color:silurian
  from: -488.3 till: -443.7 color:ordovician
  from: -542 till: -488.3   color:cambrian

  from: -635  till: -542  text:[[Special:MyLanguage/Ediacaran|Ed.]] color:ediacaran
  from: -850  till: -635  text:[[Special:MyLanguage/Cryogenian|Cryo]] color:cryogenian
  from: -1000 till: -850  text:[[Special:MyLanguage/Tonian|Tonian]] color:tonian
  from: -1200 till: -1000 text:[[Special:MyLanguage/Stenian|Stenian]] color:stenian
  from: -1400 till: -1200 text:[[Special:MyLanguage/Ectasian|Ectasian]] color:ectasian
  from: -1600 till: -1400 text:[[Special:MyLanguage/Calymmian|Calymm]] color:calymmian
  from: -1800 till: -1600 text:[[Special:MyLanguage/Statherian|Stather]] color:statherian
  from: -2050 till: -1800 text:[[Special:MyLanguage/Orosirian|Orosirian]] color:orosirian
  from: -2300 till: -2050 text:[[Special:MyLanguage/Rhyacian|Rhyacian]] color:rhyacian
  from: -2500 till: -2300 text:[[Special:MyLanguage/Siderian|Siderian]] color:siderian
  from: start till: -2500 color:white
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize  = width:800 height:100
PlotArea   = left:65 right:15 bottom:20 top:5
AlignBars  = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black  value:black
  id:white  value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-542 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:100 start:-500
ScaleMinor = unit:year increment:10  start:-540

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:eon
  at:      0   align:right  $markred 
  at:   -542   align:left   $markred shift:(2,3)
  from: -542   till:    0   text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic

  bar:era
  at:   0     align:right $markgreen
  at:   -65.5 align:left  $markgreen shift:(2,3)
  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Mesozoic]] color:mesozoic
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic

  bar:period fontsize:8
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neo]] color:neogene
  from: -65.5 till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene
  from: -145.5 till: -65.5 text:[[Special:MyLanguage/Cretaceous|Cretaceous]] color:cretaceous
  from: -199.6 till: -145.5 text:[[Special:MyLanguage/Jurassic|Jurassic]] color:jurassic
  from: -251.4 till: -199.6 text:[[Special:MyLanguage/Triassic|Triassic]] color:triassic
  from: -299 till: -251.4 text:[[Special:MyLanguage/Permian|Permian]] color:permian
  from: -359.2 till: -299 text:[[Special:MyLanguage/Carboniferous|Carboniferous]] color:carboniferous
  from: -416 till: -359.2 text:[[Special:MyLanguage/Devonian|Devonian]] color:devonian
  from: -443.7 till: -416 text:[[Special:MyLanguage/Silurian|Silurian]] color:silurian
  from: -488.3 till: -443.7 text:[[Special:MyLanguage/Ordovician|Ordovician]] color:ordovician
  from: -542 till: -488.3 text:[[Cambrian] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Cenozoic|Cambrian]] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic

  bar:period
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neogene]] color:neogene
  from: start  till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene

  bar:epoch
  from: -0.1 till: 0  text:[[Special:MyLanguage/Holocene|H]] color:holocene 
  from: -2.588 till: -0.1 text:[[Special:MyLanguage/Pleistocene|P]] color:pleistocene
  from: -5.332 till: -2.588 text:[[Special:MyLanguage/Pliocene|Pliocene]] color:pliocene fontsize:7
  from: -23.03 till: -5.332 text:[[Special:MyLanguage/Miocene|Miocene]] color:miocene
  from: -33.9 till: -23.03 text:[[Special:MyLanguage/Oligocene|Oligocene]] color:oligocene
  from: -55.8 till: -33.9 text:[[Special:MyLanguage/Eocene|Eocene]] color:eocene
  from: start till: -55.8 text:[[Special:MyLanguage/Paleocene|Paleocene]] color:paleocene
&lt;/timeline&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=3 align=left&gt;{{Wikimedia Growth}}&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Code example==
&lt;/div&gt;
:''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See also:&lt;/span&gt;'' {{ll|Extension:EasyTimeline/syntax}}

&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Just to show you that the script syntax is reasonably intuitive,
here is the script for the image above: Soviet Leaders.
&lt;/div&gt; 

&lt;syntaxhighlight lang="moin"&gt;
&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;
&lt;/syntaxhighlight&gt;

É possível usar colchetes duplos e simples como na wikipédia, o prefixo do idioma é possível, por exemplo &lt;syntaxhighlight lang="moin" inline&gt;[[de:foo|mais sobre foo]]&lt;/syntaxhighlight&gt;. Parênteses únicos para links externos também são suportados.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Great timelines elsewhere==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Here are two great sites that may serve as inspiration, it would be very easy to recreate most of those timelines verbatim and with roughly similar layout with EasyTimeline (not yet with images but that may change), but I'm afraid that would be 'not done'.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[http://www.hyperhistory.com/online_n2/History_n2/a.html Hyperhistory] e.g. click on button 'people' left, then on 'special lifelines', right.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*I hope we will have a set like [http://chaos1.hypermart.net/fullsize.htm] in a years time (click on ''full size image'' for any map), possibly even with images. The main effort will be to gather all info without snatching everything from here (most of these maps are based exclusively on data from Britannica).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Unicode==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
EasyTimeline does not yet support Unicode.
&lt;/div&gt; 

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Aug 2004: Minimal UTF-8 support has been added, meaning that EasyTimeline now recognizes UTF-8 encoded characters. However support for directionality and complex scripts is very lacking. The default font may not have glyphs for all characters. An alternate font can be specified via &lt;code&gt;$wgTimelineFontFile&lt;/code&gt;
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===SVG to PNG===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
To show texts correctly for RTL languages (like Arabic, Persian, Hebrew,...) you can use {{tmpl|0={{tag|timeline|params={{attr|method|"svg2png"}}|content=$1}}|timeline code here}} instead of {{tmpl|0={{tag|timeline|content=$1}}|timeline code here}}. it shows timeline as png but the links will be disabled.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Tips==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For first time users EasyTimeline may not seem that easy at all. As with all script languages it takes some getting used to. Also the syntax description may be a bit bewildering due to its sheer size. Fortunately many elements of the script language are optional.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The 'Easy' in EasyTimeline conveys the message that once a timeline exists it is not so hard to understand, enhance or correct. Also translating for use on another Wikipedia it is pretty straightforward.
&lt;/div&gt; 

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tips:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See some [[#charts-examples|chart examples]] to find something you could pick and edit for your own stuff
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*Put each timeline on a separate Template page: this makes it easier to edit, faster to preview, possible to include it in several pages
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Using the current date==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use the current date make sure the table opens with &lt;code&gt;&lt;nowiki&gt;{{#tag:timeline|&lt;/nowiki&gt;&lt;/code&gt; and closes with &lt;code&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then the current date can be inserted using magic words.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example &lt;code&gt;&lt;nowiki&gt;{{#time: d/m/Y }}&lt;/nowiki&gt;&lt;/code&gt; or &lt;code&gt;&lt;nowiki&gt;{{CURRENTDAY2}}/{{CURRENTMONTH2}}/{{CURRENTYEAR}}&lt;/nowiki&gt;&lt;/code&gt; will both yield the date in format dd/mm/yyyy.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==See also==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[Special:MyLanguage/Extension:EasyTimeline/syntax|EasyTimeline Coding]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*Presentation about EasyTimeline at Wikimania 2005 ([[m:Transwiki:Wikimania05/Workshop-EZ1|abstract]], [http://upload.wikimedia.org/wikipedia/commons/9/90/Wikimania_2005_Presentation_EasyTimeline.pdf slides], [http://upload.wikimedia.org/wikipedia/commons/7/78/Wikimania_2005_Presentation_Easytimeline_Speaker_Notes.pdf speaker notes])
&lt;/div&gt;
* [[m:WikiTimeScale|m:WikiTimeScale]] como uma proposta para realizar escalas de tempo para artigos da Wikipédia externamente.
* [[w:Template:Simple Horizontal timeline|w:Template:Simple Horizontal timeline]] Uma linha do tempo mais fácil de usar na Wikipédia.
*{{ll|Extension:Graph}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Installation==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
See [[Special:MyLanguage/Extension:EasyTimeline/installation|/installation]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==External links==
&lt;/div&gt;
* [http://www.simile-widgets.org &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;SIMILE Widgets&lt;/span&gt;] - DHTML-based AJAXy widget for visualizing time-based events

{{OnWikimedia}}
{{Used by}}</text>
    <sha1>a7d9a88e0bb237d93b8f7aec820292a542141025</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Extension:EasyTimeline/ru</title>
  <ns>102</ns>
  <id>1425853</id>
  <revision>
    <id>6624086</id>
    <parentid>6491540</parentid>
    <timestamp>2024-07-09T04:46:09Z</timestamp>
    <contributor>
      <username>FuzzyBot</username>
      <id>451990</id>
    </contributor>
    <comment>Updating to match new version of source page</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="25668" xml:space="preserve">&lt;languages /&gt;
{{Extension
|type1           = tag
|status          = stable
|author          = [[w:User:Erik Zachte|Erik Zachte]]
|description     = Добавляет тег {{tag|timeline|open}} для создания временных шкал
|download        = {{WikimediaDownload|timeline}}
|needs-updatephp = no
|changelog       = {{git file|action=summary|project=mediawiki/extensions/timeline|branch=HEAD|text=CHANGELOG}}
|phabricator        = EasyTimeline
|pagedrive1      = true
|example         = [[#charts-examples|См. ниже]]
|translate       = ext-timeline
}}
{|
| style="padding-{{dir|{{pagelang}}|right|left}}:1em" | ''Другие языки:''
| {{flatlist|1=
* [[:de:Hilfe:Zeitleisten|de]]
* [[:es:Ayuda:Cronologías|es]]
* [[:eu:Laguntza:Denbora lerroak|eu]]
* [[:fr:Aide:Frise chronologique|fr]]
* [[:id:Wikipedia:Timeline|id]]
* [[:it:Aiuto:Timeline|it]]
* [[:nl:Help:EasyTimeline|nl]]
* [[:pt:Wikipedia:EasyTimeline|pt]]
* [[:zh:Help:简易时间线语法|zh]]
}}
|}

Расширение '''EasyTimeline''' создает встроенное изображение из вики-текста. Изображение может быть как одномерной диаграммой (горизонтальной или вертикальной), так и двумерной.

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See the help page on [[Special:MyLanguage/Extension:EasyTimeline/installation|installing EasyTimeline]] on your wiki.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See also [http://infodisiac.com/Wikipedia/EasyTimeline/Introduction.htm this page on EasyTimeline] or play with it at [[testwiki:EasyTimeline|test.wikipedia.org]].&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
See the help page on [[Special:MyLanguage/Extension:EasyTimeline/syntax|using the syntax provided by this extension]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is a [[phab:T137291|long-term effort]] to get the {{ll|Extension:Chart|Chart}} extension to replace this extension.
&lt;/div&gt;

&lt;span id="Requirements"&gt;&lt;/span&gt;
== Требования ==

Для этого расширения на сервере должны быть установлены следующие программы:

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[w:Ploticus|Ploticus]]
&lt;/div&gt;
*[[w:ru:perl|perl]]
*[[w:ru:XnView|NConvert]] (только Windows)

{{anchor|charts-examples}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Charts examples==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Several examples of what is possible. For more extensive examples see
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Timeline WWII - Pacific Theater|WW II - Pacific Theatre]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Timeline of aircraft carriers of the United States Navy|:en:Timeline of aircraft carriers of the United States Navy]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Timeline History of Computing|History of Computing]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:de:Vorlage:Zeitleiste Tour-de-France-Sieger|Tour-de-France Sieger]] - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Vocal and instrumental pitch ranges|Vocal and instrumental pitch ranges]] (a nice example of a diagram that is not a timeline at all)  - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Complete timeline of Macintosh models|Complete timeline of Macintosh models]]  - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Simpler timelines:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Template:Extinction events graphical timeline|:en:Template:Extinction events graphical timeline]]  - horizontal, uses [[w:Template:Horizontal timeline|w:Template:Horizontal timeline]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players|:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players]]  - horizontal with arrows
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Template:Early evolution of the light bulb|:en:Template:Early evolution of the light bulb]]  - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Invention of radio#Radio invention timeline|:en:Invention of radio#Radio invention timeline]]  - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Gaius_Marius#Timeline|:en:Gaius_Marius#Timeline]]   - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:User:Syed Atif Nazir/Template:Imam timeline|:en:User:Syed Atif Nazir/Template:Imam timeline]]   - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [https://de.wikipedia.org/w/index.php?title=Aurich&amp;oldid=171331690#Einwohnerentwicklung Population developement] - horizontal
&lt;/div&gt;

&lt;table&gt;&lt;tr&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize  = width:160 height:550
PlotArea   = width:50 height:530 left:50 bottom:10

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;/td&gt;

&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:proterozoic value:rgb(0.968,0.207,0.388)
  id:neoproterozoic value:rgb(0.996,0.701,0.258)
  id:ediacaran value:rgb(0.996,0.85,0.415)
  id:cryogenian value:rgb(0.996,0.8,0.36)
  id:tonian value:rgb(0.996,0.75,0.305)
  id:mesoproterozoic value:rgb(0.996,0.705,0.384)
  id:stenian value:rgb(0.996,0.85,0.604)
  id:ectasian value:rgb(0.996,0.8,0.541)
  id:calymmian value:rgb(0.996,0.75,0.478)
  id:paleoproterozoic value:rgb(0.968,0.263,0.44)
  id:statherian value:rgb(0.968,0.459,0.655)
  id:orosirian value:rgb(0.968,0.408,0.596)
  id:rhyacian value:rgb(0.968,0.357,0.537)
  id:siderian value:rgb(0.968,0.306,0.478)
  id:archean value:rgb(0.996,0.157,0.498)
  id:neoarchean value:rgb(0.976,0.608,0.757)
  id:mesoarchean value:rgb(0.968,0.408,0.662)
  id:paleoarchean value:rgb(0.96,0.266,0.624)
  id:eoarchean value:rgb(0.902,0.114,0.549)
  id:hadean value:rgb(0.717,0,0.494)
  id:black value:black
  id:white value:white

Period     = from:-4567 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:500 start:-4500
ScaleMinor = unit:year increment:100 start:-4500

Define $markred = text:"*" textcolor:red shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)


  bar:eon

  at:       0 align:right $markred
  at:    -542 align:left  $markred shift:(2,3)
  from:  -542 till:    0  text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic   
  from: -2500 till: -542  text:[[Special:MyLanguage/Proterozoic|Proterozoic]] color:proterozoic   
  from: -4000 till: -2500 text:[[Special:MyLanguage/Archean|Archean]]     color:archean   
  from: start till: -4000 text:[[Special:MyLanguage/Hadean|Hadean]]      color:hadean

  bar:era

  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|C]] color:cenozoic        
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Meso]] color:mesozoic        
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic 
  from: -1000 till: -542  text:[[Special:MyLanguage/Neoproterozoic|Neoproterozoic]] color:neoproterozoic   
  from: -1600 till: -1000 text:[[Special:MyLanguage/Mesoproterozoic|Mesoproterozoic]] color:mesoproterozoic  
  from: -2500 till: -1600 text:[[Special:MyLanguage/Paleoproterozoic|Paleoproterozoic]] color:paleoproterozoic 
  from: -2800 till: -2500 text:[[Special:MyLanguage/Neoarchean|Neoarch]] color:neoarchean       
  from: -3200 till: -2800 text:[[Special:MyLanguage/Mesoarchean|Mesoarch]] color:mesoarchean      
  from: -3600 till: -3200 text:[[Special:MyLanguage/Paleoarchean|Paleoarch]] color:paleoarchean     
  from: -4000 till: -3600 text:[[Special:MyLanguage/Eoarchean|Eoarchean]] color:eoarchean
  from: start till: -4000 color:white

  bar:period

  fontsize:6
  from: -2.6 till: 0        color:quaternary
  from: -23.03 till: -2.6   color:neogene
  from: -65.5 till: -23.03  color:paleogene
  from: -145.5 till: -65.5  color:cretaceous
  from: -199.6 till: -145.5 color:jurassic
  from: -251 till: -199.6   color:triassic
  from: -299 till: -251     color:permian
  from: -359.2 till: -299   color:carboniferous
  from: -416 till: -359.2   color:devonian
  from: -443.7 till: -416   color:silurian
  from: -488.3 till: -443.7 color:ordovician
  from: -542 till: -488.3   color:cambrian

  from: -635  till: -542  text:[[Special:MyLanguage/Ediacaran|Ed.]] color:ediacaran
  from: -850  till: -635  text:[[Special:MyLanguage/Cryogenian|Cryo]] color:cryogenian
  from: -1000 till: -850  text:[[Special:MyLanguage/Tonian|Tonian]] color:tonian
  from: -1200 till: -1000 text:[[Special:MyLanguage/Stenian|Stenian]] color:stenian
  from: -1400 till: -1200 text:[[Special:MyLanguage/Ectasian|Ectasian]] color:ectasian
  from: -1600 till: -1400 text:[[Special:MyLanguage/Calymmian|Calymm]] color:calymmian
  from: -1800 till: -1600 text:[[Special:MyLanguage/Statherian|Stather]] color:statherian
  from: -2050 till: -1800 text:[[Special:MyLanguage/Orosirian|Orosirian]] color:orosirian
  from: -2300 till: -2050 text:[[Special:MyLanguage/Rhyacian|Rhyacian]] color:rhyacian
  from: -2500 till: -2300 text:[[Special:MyLanguage/Siderian|Siderian]] color:siderian
  from: start till: -2500 color:white
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize  = width:800 height:100
PlotArea   = left:65 right:15 bottom:20 top:5
AlignBars  = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black  value:black
  id:white  value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-542 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:100 start:-500
ScaleMinor = unit:year increment:10  start:-540

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:eon
  at:      0   align:right  $markred 
  at:   -542   align:left   $markred shift:(2,3)
  from: -542   till:    0   text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic

  bar:era
  at:   0     align:right $markgreen
  at:   -65.5 align:left  $markgreen shift:(2,3)
  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Mesozoic]] color:mesozoic
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic

  bar:period fontsize:8
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neo]] color:neogene
  from: -65.5 till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene
  from: -145.5 till: -65.5 text:[[Special:MyLanguage/Cretaceous|Cretaceous]] color:cretaceous
  from: -199.6 till: -145.5 text:[[Special:MyLanguage/Jurassic|Jurassic]] color:jurassic
  from: -251.4 till: -199.6 text:[[Special:MyLanguage/Triassic|Triassic]] color:triassic
  from: -299 till: -251.4 text:[[Special:MyLanguage/Permian|Permian]] color:permian
  from: -359.2 till: -299 text:[[Special:MyLanguage/Carboniferous|Carboniferous]] color:carboniferous
  from: -416 till: -359.2 text:[[Special:MyLanguage/Devonian|Devonian]] color:devonian
  from: -443.7 till: -416 text:[[Special:MyLanguage/Silurian|Silurian]] color:silurian
  from: -488.3 till: -443.7 text:[[Special:MyLanguage/Ordovician|Ordovician]] color:ordovician
  from: -542 till: -488.3 text:[[Cambrian] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Cenozoic|Cambrian]] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic

  bar:period
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neogene]] color:neogene
  from: start  till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene

  bar:epoch
  from: -0.1 till: 0  text:[[Special:MyLanguage/Holocene|H]] color:holocene 
  from: -2.588 till: -0.1 text:[[Special:MyLanguage/Pleistocene|P]] color:pleistocene
  from: -5.332 till: -2.588 text:[[Special:MyLanguage/Pliocene|Pliocene]] color:pliocene fontsize:7
  from: -23.03 till: -5.332 text:[[Special:MyLanguage/Miocene|Miocene]] color:miocene
  from: -33.9 till: -23.03 text:[[Special:MyLanguage/Oligocene|Oligocene]] color:oligocene
  from: -55.8 till: -33.9 text:[[Special:MyLanguage/Eocene|Eocene]] color:eocene
  from: start till: -55.8 text:[[Special:MyLanguage/Paleocene|Paleocene]] color:paleocene
&lt;/timeline&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=3 align=left&gt;{{Wikimedia Growth}}&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;


&lt;span id="Code_example"&gt;&lt;/span&gt;
== Пример кода ==
:''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See also:&lt;/span&gt;'' {{ll|Extension:EasyTimeline/syntax}}

&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Just to show you that the script syntax is reasonably intuitive,
here is the script for the image above: Soviet Leaders.
&lt;/div&gt; 

&lt;syntaxhighlight lang="moin"&gt;
&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Double and single brackets can be used like on wikipedia, language prefix is possible, e.g. &lt;syntaxhighlight lang="moin" inline&gt;[[de:foo|more about foo]]&lt;/syntaxhighlight&gt;. Single brackets for external links are also supported.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Great timelines elsewhere==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Here are two great sites that may serve as inspiration, it would be very easy to recreate most of those timelines verbatim and with roughly similar layout with EasyTimeline (not yet with images but that may change), but I'm afraid that would be 'not done'.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[http://www.hyperhistory.com/online_n2/History_n2/a.html Hyperhistory] e.g. click on button 'people' left, then on 'special lifelines', right.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*I hope we will have a set like [http://chaos1.hypermart.net/fullsize.htm] in a years time (click on ''full size image'' for any map), possibly even with images. The main effort will be to gather all info without snatching everything from here (most of these maps are based exclusively on data from Britannica).
&lt;/div&gt;

&lt;span id="Unicode"&gt;&lt;/span&gt;
==Юникод==

EasyTimeline пока не поддерживает Юникод. 

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Aug 2004: Minimal UTF-8 support has been added, meaning that EasyTimeline now recognizes UTF-8 encoded characters. However support for directionality and complex scripts is very lacking. The default font may not have glyphs for all characters. An alternate font can be specified via &lt;code&gt;$wgTimelineFontFile&lt;/code&gt;
&lt;/div&gt;

&lt;span id="SVG_to_PNG"&gt;&lt;/span&gt;
===SVG в PNG===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
To show texts correctly for RTL languages (like Arabic, Persian, Hebrew,...) you can use {{tmpl|0={{tag|timeline|params={{attr|method|"svg2png"}}|content=$1}}|timeline code here}} instead of {{tmpl|0={{tag|timeline|content=$1}}|timeline code here}}. it shows timeline as png but the links will be disabled.
&lt;/div&gt;

&lt;span id="Tips"&gt;&lt;/span&gt;
== Советы ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For first time users EasyTimeline may not seem that easy at all. As with all script languages it takes some getting used to. Also the syntax description may be a bit bewildering due to its sheer size. Fortunately many elements of the script language are optional.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The 'Easy' in EasyTimeline conveys the message that once a timeline exists it is not so hard to understand, enhance or correct. Also translating for use on another Wikipedia it is pretty straightforward.
&lt;/div&gt; 

Советы:

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See some [[#charts-examples|chart examples]] to find something you could pick and edit for your own stuff
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*Put each timeline on a separate Template page: this makes it easier to edit, faster to preview, possible to include it in several pages
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Using the current date==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use the current date make sure the table opens with &lt;code&gt;&lt;nowiki&gt;{{#tag:timeline|&lt;/nowiki&gt;&lt;/code&gt; and closes with &lt;code&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then the current date can be inserted using magic words.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example &lt;code&gt;&lt;nowiki&gt;{{#time: d/m/Y }}&lt;/nowiki&gt;&lt;/code&gt; or &lt;code&gt;&lt;nowiki&gt;{{CURRENTDAY2}}/{{CURRENTMONTH2}}/{{CURRENTYEAR}}&lt;/nowiki&gt;&lt;/code&gt; will both yield the date in format dd/mm/yyyy.&lt;/span&gt;

&lt;span id="See_also"&gt;&lt;/span&gt;
== См. также ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[Special:MyLanguage/Extension:EasyTimeline/syntax|EasyTimeline Coding]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*Presentation about EasyTimeline at Wikimania 2005 ([[m:Transwiki:Wikimania05/Workshop-EZ1|abstract]], [http://upload.wikimedia.org/wikipedia/commons/9/90/Wikimania_2005_Presentation_EasyTimeline.pdf slides], [http://upload.wikimedia.org/wikipedia/commons/7/78/Wikimania_2005_Presentation_Easytimeline_Speaker_Notes.pdf speaker notes])
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[m:WikiTimeScale|m:WikiTimeScale]] as a proposal for realizing timescales for wikipedia articles externally.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[w:Template:Simple Horizontal timeline|w:Template:Simple Horizontal timeline]] An easier timeline to use on Wikipedia.
&lt;/div&gt;
*{{ll|Extension:Graph}}

&lt;span id="Installation"&gt;&lt;/span&gt;
==Установка==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
See [[Special:MyLanguage/Extension:EasyTimeline/installation|/installation]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==External links==
&lt;/div&gt;
* [http://www.simile-widgets.org &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;SIMILE Widgets&lt;/span&gt;] - DHTML-based AJAXy widget for visualizing time-based events

{{OnWikimedia}}
{{Used by}}</text>
    <sha1>267f83327b36f92012c1d53f38bb31be92155945</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Extension:EasyTimeline/tr</title>
  <ns>102</ns>
  <id>1207011</id>
  <revision>
    <id>6624087</id>
    <parentid>5986625</parentid>
    <timestamp>2024-07-09T04:46:09Z</timestamp>
    <contributor>
      <username>FuzzyBot</username>
      <id>451990</id>
    </contributor>
    <comment>Updating to match new version of source page</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="23530" xml:space="preserve">&lt;languages /&gt;
{{Extension
|type1           = tag
|status          = stable
|author          = [[w:User:Erik Zachte|Erik Zachte]]
|description     = Zaman çizelgeleri oluşturmak için {{tag|timeline|open}} etiketi ekler
|download        = {{WikimediaDownload|timeline}}
|needs-updatephp = no
|changelog       = {{git file|action=summary|project=mediawiki/extensions/timeline|branch=HEAD|text=CHANGELOG}}
|phabricator        = EasyTimeline
|pagedrive1      = true
|example         = [[#charts-examples|Aşağıya bakınız]]
|translate       = ext-timeline
}}
{|
| style="padding-{{dir|{{pagelang}}|right|left}}:1em" | ''Diğer diller:''
| {{flatlist|1=
* [[:de:Hilfe:Zeitleisten|de]]
* [[:es:Ayuda:Cronologías|es]]
* [[:eu:Laguntza:Denbora lerroak|eu]]
* [[:fr:Aide:Frise chronologique|fr]]
* [[:id:Wikipedia:Timeline|id]]
* [[:it:Aiuto:Timeline|it]]
* [[:nl:Help:EasyTimeline|nl]]
* [[:pt:Wikipedia:EasyTimeline|pt]]
* [[:zh:Help:简易时间线语法|zh]]
}}
|}

'''EasyTimeline''' uzantısı vikimetinden gömülü bir resim oluşturur. Resim tek boyutlu bir diyagram (yatay veya dikey) veya iki boyutlu olabilir.

Vikinizde [[Special:MyLanguage/Extension:EasyTimeline/installation|EasyTimeline kurma]] yardım sayfasına bakın.
Ayrıca [http://infodisiac.com/Wikipedia/EasyTimeline/Introduction.htm EasyTimeline'da bu sayfaya] bakın veya [[testwiki:EasyTimeline|test.wikipedia.org]] adresinde oynayın.

[[Special:MyLanguage/Extension:EasyTimeline/syntax|Bu uzantı tarafından sağlanan sözdizimini kullanarak]] yardım sayfasına bakın.

Bu uzantının yerine {{ll|Extension:Chart|Chart}} uzantısını almak için [[phab:T137291|uzun vadeli bir çaba]] var.

&lt;span id="Requirements"&gt;&lt;/span&gt;
== Gereksinimler ==

Bu uzantı, sunucuda aşağıdaki programların yüklü olmasını gerektirir:

* [[w:Ploticus|Ploticus]]
* [[:tr:perl|perl]]
* [[w:XnView|NConvert]] (yalnızca Windows)

{{anchor|charts-examples}}
&lt;span id="Charts_examples"&gt;&lt;/span&gt;
== Grafik örnekleri ==

Neyin mümkün olduğuna dair birkaç örnek. Daha kapsamlı örnekler için şunları bakınız

* [[:en:Template:Timeline WWII - Pacific Theater|WW II - Pacific Theatre]] - yatay
* [[:en:Timeline of aircraft carriers of the United States Navy|:en:Timeline of aircraft carriers of the United States Navy]] - yatay
* [[:en:Template:Timeline History of Computing|History of Computing]] - yatay
* [[:de:Vorlage:Zeitleiste Tour-de-France-Sieger|Tour-de-France Sieger]] - dikey
* [[:en:Template:Vocal and instrumental pitch ranges|Vocal and instrumental pitch ranges]] (hiç bir zaman çizelgesi olmayan bir diyagramın güzel bir örneği) - yatay
* [[:en:Template:Complete timeline of Macintosh models|Complete timeline of Macintosh models]]  - yatay
* Daha basit zaman çizelgeleri:
** [[:en:Template:Extinction events graphical timeline|:en:Template:Extinction events graphical timeline]]  - yatay, [[w:Template:Horizontal timeline|w:Template:Horizontal timeline]] kullanılır
** [[:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players|:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players]]  - oklarla yatay
** [[:en:Template:Early evolution of the light bulb|:en:Template:Early evolution of the light bulb]]  - dikey
** [[:en:Invention of radio#Radio invention timeline|:en:Invention of radio#Radio invention timeline]]  - dikey
** [[:en:Gaius_Marius#Timeline|:en:Gaius_Marius#Timeline]]   - dikey
** [[:en:User:Syed Atif Nazir/Template:Imam timeline|:en:User:Syed Atif Nazir/Template:Imam timeline]]   - dikey
** [https://de.wikipedia.org/w/index.php?title=Aurich&amp;oldid=171331690#Einwohnerentwicklung Population developement] - yatay

&lt;table&gt;&lt;tr&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize  = width:160 height:550
PlotArea   = width:50 height:530 left:50 bottom:10

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;/td&gt;

&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:proterozoic value:rgb(0.968,0.207,0.388)
  id:neoproterozoic value:rgb(0.996,0.701,0.258)
  id:ediacaran value:rgb(0.996,0.85,0.415)
  id:cryogenian value:rgb(0.996,0.8,0.36)
  id:tonian value:rgb(0.996,0.75,0.305)
  id:mesoproterozoic value:rgb(0.996,0.705,0.384)
  id:stenian value:rgb(0.996,0.85,0.604)
  id:ectasian value:rgb(0.996,0.8,0.541)
  id:calymmian value:rgb(0.996,0.75,0.478)
  id:paleoproterozoic value:rgb(0.968,0.263,0.44)
  id:statherian value:rgb(0.968,0.459,0.655)
  id:orosirian value:rgb(0.968,0.408,0.596)
  id:rhyacian value:rgb(0.968,0.357,0.537)
  id:siderian value:rgb(0.968,0.306,0.478)
  id:archean value:rgb(0.996,0.157,0.498)
  id:neoarchean value:rgb(0.976,0.608,0.757)
  id:mesoarchean value:rgb(0.968,0.408,0.662)
  id:paleoarchean value:rgb(0.96,0.266,0.624)
  id:eoarchean value:rgb(0.902,0.114,0.549)
  id:hadean value:rgb(0.717,0,0.494)
  id:black value:black
  id:white value:white

Period     = from:-4567 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:500 start:-4500
ScaleMinor = unit:year increment:100 start:-4500

Define $markred = text:"*" textcolor:red shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)


  bar:eon

  at:       0 align:right $markred
  at:    -542 align:left  $markred shift:(2,3)
  from:  -542 till:    0  text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic   
  from: -2500 till: -542  text:[[Special:MyLanguage/Proterozoic|Proterozoic]] color:proterozoic   
  from: -4000 till: -2500 text:[[Special:MyLanguage/Archean|Archean]]     color:archean   
  from: start till: -4000 text:[[Special:MyLanguage/Hadean|Hadean]]      color:hadean

  bar:era

  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|C]] color:cenozoic        
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Meso]] color:mesozoic        
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic 
  from: -1000 till: -542  text:[[Special:MyLanguage/Neoproterozoic|Neoproterozoic]] color:neoproterozoic   
  from: -1600 till: -1000 text:[[Special:MyLanguage/Mesoproterozoic|Mesoproterozoic]] color:mesoproterozoic  
  from: -2500 till: -1600 text:[[Special:MyLanguage/Paleoproterozoic|Paleoproterozoic]] color:paleoproterozoic 
  from: -2800 till: -2500 text:[[Special:MyLanguage/Neoarchean|Neoarch]] color:neoarchean       
  from: -3200 till: -2800 text:[[Special:MyLanguage/Mesoarchean|Mesoarch]] color:mesoarchean      
  from: -3600 till: -3200 text:[[Special:MyLanguage/Paleoarchean|Paleoarch]] color:paleoarchean     
  from: -4000 till: -3600 text:[[Special:MyLanguage/Eoarchean|Eoarchean]] color:eoarchean
  from: start till: -4000 color:white

  bar:period

  fontsize:6
  from: -2.6 till: 0        color:quaternary
  from: -23.03 till: -2.6   color:neogene
  from: -65.5 till: -23.03  color:paleogene
  from: -145.5 till: -65.5  color:cretaceous
  from: -199.6 till: -145.5 color:jurassic
  from: -251 till: -199.6   color:triassic
  from: -299 till: -251     color:permian
  from: -359.2 till: -299   color:carboniferous
  from: -416 till: -359.2   color:devonian
  from: -443.7 till: -416   color:silurian
  from: -488.3 till: -443.7 color:ordovician
  from: -542 till: -488.3   color:cambrian

  from: -635  till: -542  text:[[Special:MyLanguage/Ediacaran|Ed.]] color:ediacaran
  from: -850  till: -635  text:[[Special:MyLanguage/Cryogenian|Cryo]] color:cryogenian
  from: -1000 till: -850  text:[[Special:MyLanguage/Tonian|Tonian]] color:tonian
  from: -1200 till: -1000 text:[[Special:MyLanguage/Stenian|Stenian]] color:stenian
  from: -1400 till: -1200 text:[[Special:MyLanguage/Ectasian|Ectasian]] color:ectasian
  from: -1600 till: -1400 text:[[Special:MyLanguage/Calymmian|Calymm]] color:calymmian
  from: -1800 till: -1600 text:[[Special:MyLanguage/Statherian|Stather]] color:statherian
  from: -2050 till: -1800 text:[[Special:MyLanguage/Orosirian|Orosirian]] color:orosirian
  from: -2300 till: -2050 text:[[Special:MyLanguage/Rhyacian|Rhyacian]] color:rhyacian
  from: -2500 till: -2300 text:[[Special:MyLanguage/Siderian|Siderian]] color:siderian
  from: start till: -2500 color:white
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize  = width:800 height:100
PlotArea   = left:65 right:15 bottom:20 top:5
AlignBars  = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black  value:black
  id:white  value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-542 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:100 start:-500
ScaleMinor = unit:year increment:10  start:-540

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:eon
  at:      0   align:right  $markred 
  at:   -542   align:left   $markred shift:(2,3)
  from: -542   till:    0   text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic

  bar:era
  at:   0     align:right $markgreen
  at:   -65.5 align:left  $markgreen shift:(2,3)
  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Mesozoic]] color:mesozoic
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic

  bar:period fontsize:8
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neo]] color:neogene
  from: -65.5 till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene
  from: -145.5 till: -65.5 text:[[Special:MyLanguage/Cretaceous|Cretaceous]] color:cretaceous
  from: -199.6 till: -145.5 text:[[Special:MyLanguage/Jurassic|Jurassic]] color:jurassic
  from: -251.4 till: -199.6 text:[[Special:MyLanguage/Triassic|Triassic]] color:triassic
  from: -299 till: -251.4 text:[[Special:MyLanguage/Permian|Permian]] color:permian
  from: -359.2 till: -299 text:[[Special:MyLanguage/Carboniferous|Carboniferous]] color:carboniferous
  from: -416 till: -359.2 text:[[Special:MyLanguage/Devonian|Devonian]] color:devonian
  from: -443.7 till: -416 text:[[Special:MyLanguage/Silurian|Silurian]] color:silurian
  from: -488.3 till: -443.7 text:[[Special:MyLanguage/Ordovician|Ordovician]] color:ordovician
  from: -542 till: -488.3 text:[[Cambrian] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Cenozoic|Cambrian]] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic

  bar:period
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neogene]] color:neogene
  from: start  till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene

  bar:epoch
  from: -0.1 till: 0  text:[[Special:MyLanguage/Holocene|H]] color:holocene 
  from: -2.588 till: -0.1 text:[[Special:MyLanguage/Pleistocene|P]] color:pleistocene
  from: -5.332 till: -2.588 text:[[Special:MyLanguage/Pliocene|Pliocene]] color:pliocene fontsize:7
  from: -23.03 till: -5.332 text:[[Special:MyLanguage/Miocene|Miocene]] color:miocene
  from: -33.9 till: -23.03 text:[[Special:MyLanguage/Oligocene|Oligocene]] color:oligocene
  from: -55.8 till: -33.9 text:[[Special:MyLanguage/Eocene|Eocene]] color:eocene
  from: start till: -55.8 text:[[Special:MyLanguage/Paleocene|Paleocene]] color:paleocene
&lt;/timeline&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=3 align=left&gt;{{Wikimedia Growth}}&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;


&lt;span id="Code_example"&gt;&lt;/span&gt;
== Kod örneği ==
:''Ayrıca bakınız:'' {{ll|Extension:EasyTimeline/syntax}}

&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

Yalnızca size betiği söz diziminin makul ölçüde sezgisel olduğunu göstermek için,
İşte yukarıdaki resmin senaryosu: Sovyet Liderleri. 

&lt;syntaxhighlight lang="moin"&gt;
&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;
&lt;/syntaxhighlight&gt;

İkili ve tekli parantezler Vikipedi'de olduğu gibi kullanılabilir, dil ön eki mümkündür, örn. &lt;syntaxhighlight lang="moin" inline&gt;[[de:foo|more about foo]]&lt;/syntaxhighlight&gt;. Dış bağlantılar için tekli parantezler de desteklenmektedir.

&lt;span id="Great_timelines_elsewhere"&gt;&lt;/span&gt;
== Başka yerlerde harika zaman çizelgeleri ==

İşte ilham kaynağı olabilecek iki harika site, bu zaman çizelgelerinin çoğunu kelimesi kelimesine ve EasyTimeline ile kabaca benzer bir düzende yeniden oluşturmak çok kolay olurdu (henüz resimlerle değil ama bu değişebilir), ancak korkarım bu 'yapılmadı'.

*[http://www.hyperhistory.com/online_n2/History_n2/a.html Hyperhistory] örn. soldaki 'people' düğmesine, ardından 'special lifelines' düğmesine tıklayın, sağ.
*Umarım bir yıl içinde [http://chaos1.hypermart.net/fullsize.htm] gibi bir setimiz olur (herhangi bir harita için ''tam boyutlu görüntü''ye tıklayın), muhtemelen resimlerle bile. Ana çaba, tüm bilgileri buradan her şeyi kapmadan toplamak olacaktır (bu haritaların çoğu yalnızca Britannica'dan gelen verilere dayanmaktadır).

&lt;span id="Unicode"&gt;&lt;/span&gt;
== Unicode ==

EasyTimeline henüz unicode'u desteklemiyor. 

Ağustos 2004: Minimal UTF-8 desteği eklendi, yani EasyTimeline artık UTF-8 kodlu karakterleri tanıyor. Bununla birlikte, yönlülük ve karmaşık betikleri için destek çok eksiktir. Varsayılan yazı tipinde tüm karakterler için glif olmayabilir. &lt;code&gt;$wgTimelineFontFile&lt;/code&gt; üzerinden alternatif bir yazı tipi belirtilebilir

&lt;span id="SVG_to_PNG"&gt;&lt;/span&gt;
=== SVG - PNG ===

RTL dilleri için metinleri doğru şekilde göstermek için (Arapça, Farsça, İbranice,... gibi) {{tmpl|0={{tag|timeline|content=$1}}|zaman çizelgesi kodu buraya}} yerine {{tmpl|0={{tag|timeline|params={{attr|method|"svg2png"}}|content=$1}}|zaman çizelgesi kodu buraya}} kullanabilirsiniz. Zaman çizelgesini png olarak gösterir, ancak bağlantılar devre dışı bırakılır.

&lt;span id="Tips"&gt;&lt;/span&gt;
== İpuçları ==

EasyTimeline ilk kez kullananlar için hiç de kolay görünmeyebilir. Tüm yazı dillerinde olduğu gibi alışmak biraz zaman alır. Ayrıca sözdizimi açıklaması, büyüklüğünden dolayı biraz şaşırtıcı olabilir. Neyse ki betik dilinin birçok öğesi isteğe bağlıdır.

EasyTimeline'daki 'Easy', bir zaman çizelgesi ortaya çıktığında anlamanın, geliştirmenin veya düzeltmenin o kadar da zor olmadığı mesajını iletir. Ayrıca başka bir Vikipedi'de kullanılmak üzere tercüme etmek oldukça basittir. 

İpuçları:

* Kendi öğeleriniz için seçebileceğiniz ve düzenleyebileceğiniz bir şey bulmak için bazı [[#charts-examples|grafik örneklerine]] bakın
* Her zaman çizelgesini ayrı bir Şablon sayfasına koyun: bu, düzenlemeyi kolaylaştırır, önizlemeyi daha hızlı hâle getirir, birkaç sayfaya dahil etmeyi mümkün kılar

&lt;span id="Using_the_current_date"&gt;&lt;/span&gt;
== Geçerli tarihi kullanma ==
Geçerli tarihi kullanmak için tablonun &lt;code&gt;&lt;nowiki&gt;{{#tag:timeline|&lt;/nowiki&gt;&lt;/code&gt; ile açılıp &lt;code&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; ile kapandığından emin olun.
Ardından sihirli kelimeler kullanılarak güncel tarih eklenebilir.
Örneğin &lt;code&gt;&lt;nowiki&gt;{{#time: d/m/Y }}&lt;/nowiki&gt;&lt;/code&gt; veya &lt;code&gt;&lt;nowiki&gt;{{CURRENTDAY2}}/{{CURRENTMONTH2}}/{{CURRENTYEAR}}&lt;/nowiki&gt;&lt;/code&gt; her ikisi de tarihi gg/aa/yyyy biçiminde verecektir.

&lt;span id="See_also"&gt;&lt;/span&gt;
== Ayrıca bakınız ==

*[[Special:MyLanguage/Extension:EasyTimeline/syntax|EasyTimeline Kodlama]]
*EasyTimeline hakkında sunum Wikimania 2005'te ([[m:Transwiki:Wikimania05/Workshop-EZ1|öz]], [http://upload.wikimedia.org/wikipedia/commons/9/90/Wikimania_2005_Presentation_EasyTimeline.pdf slaytlar], [http://upload.wikimedia.org/wikipedia/commons/7/78/Wikimania_2005_Presentation_Easytimeline_Speaker_Notes.pdf konuşmacı notları])
* [[m:WikiTimeScale|m:WikiTimeScale]], harici olarak Vikipedi maddeleri için zaman çizelgelerini gerçekleştirmek için bir öneri olarak.
* [[w:Template:Simple Horizontal timeline|w:Template:Simple Horizontal timeline]] Vikipedi'de kullanmak için daha kolay bir zaman çizelgesi.
*{{ll|Extension:Graph}}

&lt;span id="Installation"&gt;&lt;/span&gt;
== Kurulum ==

[[Special:MyLanguage/Extension:EasyTimeline/installation|/kurulum]] sayfasına bakın

&lt;span id="External_links"&gt;&lt;/span&gt;
== Dış bağlantılar ==
* [http://www.simile-widgets.org SIMILE Widget'ları] - DHTML-based AJAXy widget for visualizing time-based events

{{OnWikimedia}}
{{Used by}}</text>
    <sha1>2df4c5585b30da0311d66d2a98518de2c6fcad00</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Extension:EasyTimeline/yo</title>
  <ns>102</ns>
  <id>1563101</id>
  <revision>
    <id>6624088</id>
    <parentid>5986626</parentid>
    <timestamp>2024-07-09T04:46:10Z</timestamp>
    <contributor>
      <username>FuzzyBot</username>
      <id>451990</id>
    </contributor>
    <comment>Updating to match new version of source page</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="25503" xml:space="preserve">&lt;languages /&gt;
{{Extension
|type1           = tag
|status          = stable
|author          = [[w:User:Erik Zachte|Erik Zachte]]
|description     = &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Adds  {{tag|timeline|open}} tag for creating timelines&lt;/span&gt;
|download        = {{WikimediaDownload|timeline}}
|needs-updatephp = no
|changelog       = {{git file|action=summary|project=mediawiki/extensions/timeline|branch=HEAD|text=CHANGELOG}}
|phabricator        = EasyTimeline
|pagedrive1      = true
|example         = [[#charts-examples|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See below&lt;/span&gt;]]
|translate       = ext-timeline
}}
{|
| style="padding-{{dir|{{pagelang}}|right|left}}:1em" | ''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Other languages:&lt;/span&gt;''
| {{flatlist|1=
* [[:de:Hilfe:Zeitleisten|de]]
* [[:es:Ayuda:Cronologías|es]]
* [[:eu:Laguntza:Denbora lerroak|eu]]
* [[:fr:Aide:Frise chronologique|fr]]
* [[:id:Wikipedia:Timeline|id]]
* [[:it:Aiuto:Timeline|it]]
* [[:nl:Help:EasyTimeline|nl]]
* [[:pt:Wikipedia:EasyTimeline|pt]]
* [[:zh:Help:简易时间线语法|zh]]
}}
|}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The '''EasyTimeline''' extension produces an embedded image from wikitext. The image can be a one-dimensional diagram (horizontally or vertically), or a two-dimensional one.
&lt;/div&gt;

Wo oju-iwe iranlọwọ lori [[Special:MyLanguage/Extension:EasyTimeline/installation|lilo sintasi ti a pese nipasẹ itẹsiwaju yii]].
Wo tun [http://infodisiac.com/Wikipedia/EasyTimeline/Introduction.htm oju-iwe yii lori EasyTimeline] tabi ṣere pẹlu rẹ ni [[testwiki:EasyTimeline|test.wikipedia.org]].

Wo oju-iwe iranlọwọ lori [[Special:MyLanguage/Extension:EasyTimeline/syntax|lilo sintasi ti a pese nipasẹ itẹsiwaju yii]].

[[phab:T137291| akitiyan igba pipẹ]] wa lati gba itẹsiwaju {{ll|Extension:Chart|Chart}} lati rọpo itẹsiwaju yii.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Requirements ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This extension requires the following programs installed on the server:
&lt;/div&gt;

*[[w:Ploticus|Ploticus]]
*[[w:perl|perl]]
*[[w:XnView|NIyipada]] (Windows nikan)

{{anchor|charts-examples}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Charts examples==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Several examples of what is possible. For more extensive examples see
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Timeline WWII - Pacific Theater|WW II - Pacific Theatre]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Timeline of aircraft carriers of the United States Navy|:en:Timeline of aircraft carriers of the United States Navy]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Timeline History of Computing|History of Computing]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:de:Vorlage:Zeitleiste Tour-de-France-Sieger|Tour-de-France Sieger]] - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Vocal and instrumental pitch ranges|Vocal and instrumental pitch ranges]] (a nice example of a diagram that is not a timeline at all)  - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Complete timeline of Macintosh models|Complete timeline of Macintosh models]]  - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Simpler timelines:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Template:Extinction events graphical timeline|:en:Template:Extinction events graphical timeline]]  - horizontal, uses [[w:Template:Horizontal timeline|w:Template:Horizontal timeline]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players|:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players]]  - horizontal with arrows
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Template:Early evolution of the light bulb|:en:Template:Early evolution of the light bulb]]  - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Invention of radio#Radio invention timeline|:en:Invention of radio#Radio invention timeline]]  - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Gaius_Marius#Timeline|:en:Gaius_Marius#Timeline]]   - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:User:Syed Atif Nazir/Template:Imam timeline|:en:User:Syed Atif Nazir/Template:Imam timeline]]   - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [https://de.wikipedia.org/w/index.php?title=Aurich&amp;oldid=171331690#Einwohnerentwicklung Population developement] - horizontal
&lt;/div&gt;

&lt;table&gt;&lt;tr&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize  = width:160 height:550
PlotArea   = width:50 height:530 left:50 bottom:10

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;/td&gt;

&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:proterozoic value:rgb(0.968,0.207,0.388)
  id:neoproterozoic value:rgb(0.996,0.701,0.258)
  id:ediacaran value:rgb(0.996,0.85,0.415)
  id:cryogenian value:rgb(0.996,0.8,0.36)
  id:tonian value:rgb(0.996,0.75,0.305)
  id:mesoproterozoic value:rgb(0.996,0.705,0.384)
  id:stenian value:rgb(0.996,0.85,0.604)
  id:ectasian value:rgb(0.996,0.8,0.541)
  id:calymmian value:rgb(0.996,0.75,0.478)
  id:paleoproterozoic value:rgb(0.968,0.263,0.44)
  id:statherian value:rgb(0.968,0.459,0.655)
  id:orosirian value:rgb(0.968,0.408,0.596)
  id:rhyacian value:rgb(0.968,0.357,0.537)
  id:siderian value:rgb(0.968,0.306,0.478)
  id:archean value:rgb(0.996,0.157,0.498)
  id:neoarchean value:rgb(0.976,0.608,0.757)
  id:mesoarchean value:rgb(0.968,0.408,0.662)
  id:paleoarchean value:rgb(0.96,0.266,0.624)
  id:eoarchean value:rgb(0.902,0.114,0.549)
  id:hadean value:rgb(0.717,0,0.494)
  id:black value:black
  id:white value:white

Period     = from:-4567 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:500 start:-4500
ScaleMinor = unit:year increment:100 start:-4500

Define $markred = text:"*" textcolor:red shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)


  bar:eon

  at:       0 align:right $markred
  at:    -542 align:left  $markred shift:(2,3)
  from:  -542 till:    0  text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic   
  from: -2500 till: -542  text:[[Special:MyLanguage/Proterozoic|Proterozoic]] color:proterozoic   
  from: -4000 till: -2500 text:[[Special:MyLanguage/Archean|Archean]]     color:archean   
  from: start till: -4000 text:[[Special:MyLanguage/Hadean|Hadean]]      color:hadean

  bar:era

  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|C]] color:cenozoic        
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Meso]] color:mesozoic        
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic 
  from: -1000 till: -542  text:[[Special:MyLanguage/Neoproterozoic|Neoproterozoic]] color:neoproterozoic   
  from: -1600 till: -1000 text:[[Special:MyLanguage/Mesoproterozoic|Mesoproterozoic]] color:mesoproterozoic  
  from: -2500 till: -1600 text:[[Special:MyLanguage/Paleoproterozoic|Paleoproterozoic]] color:paleoproterozoic 
  from: -2800 till: -2500 text:[[Special:MyLanguage/Neoarchean|Neoarch]] color:neoarchean       
  from: -3200 till: -2800 text:[[Special:MyLanguage/Mesoarchean|Mesoarch]] color:mesoarchean      
  from: -3600 till: -3200 text:[[Special:MyLanguage/Paleoarchean|Paleoarch]] color:paleoarchean     
  from: -4000 till: -3600 text:[[Special:MyLanguage/Eoarchean|Eoarchean]] color:eoarchean
  from: start till: -4000 color:white

  bar:period

  fontsize:6
  from: -2.6 till: 0        color:quaternary
  from: -23.03 till: -2.6   color:neogene
  from: -65.5 till: -23.03  color:paleogene
  from: -145.5 till: -65.5  color:cretaceous
  from: -199.6 till: -145.5 color:jurassic
  from: -251 till: -199.6   color:triassic
  from: -299 till: -251     color:permian
  from: -359.2 till: -299   color:carboniferous
  from: -416 till: -359.2   color:devonian
  from: -443.7 till: -416   color:silurian
  from: -488.3 till: -443.7 color:ordovician
  from: -542 till: -488.3   color:cambrian

  from: -635  till: -542  text:[[Special:MyLanguage/Ediacaran|Ed.]] color:ediacaran
  from: -850  till: -635  text:[[Special:MyLanguage/Cryogenian|Cryo]] color:cryogenian
  from: -1000 till: -850  text:[[Special:MyLanguage/Tonian|Tonian]] color:tonian
  from: -1200 till: -1000 text:[[Special:MyLanguage/Stenian|Stenian]] color:stenian
  from: -1400 till: -1200 text:[[Special:MyLanguage/Ectasian|Ectasian]] color:ectasian
  from: -1600 till: -1400 text:[[Special:MyLanguage/Calymmian|Calymm]] color:calymmian
  from: -1800 till: -1600 text:[[Special:MyLanguage/Statherian|Stather]] color:statherian
  from: -2050 till: -1800 text:[[Special:MyLanguage/Orosirian|Orosirian]] color:orosirian
  from: -2300 till: -2050 text:[[Special:MyLanguage/Rhyacian|Rhyacian]] color:rhyacian
  from: -2500 till: -2300 text:[[Special:MyLanguage/Siderian|Siderian]] color:siderian
  from: start till: -2500 color:white
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize  = width:800 height:100
PlotArea   = left:65 right:15 bottom:20 top:5
AlignBars  = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black  value:black
  id:white  value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-542 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:100 start:-500
ScaleMinor = unit:year increment:10  start:-540

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:eon
  at:      0   align:right  $markred 
  at:   -542   align:left   $markred shift:(2,3)
  from: -542   till:    0   text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic

  bar:era
  at:   0     align:right $markgreen
  at:   -65.5 align:left  $markgreen shift:(2,3)
  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Mesozoic]] color:mesozoic
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic

  bar:period fontsize:8
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neo]] color:neogene
  from: -65.5 till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene
  from: -145.5 till: -65.5 text:[[Special:MyLanguage/Cretaceous|Cretaceous]] color:cretaceous
  from: -199.6 till: -145.5 text:[[Special:MyLanguage/Jurassic|Jurassic]] color:jurassic
  from: -251.4 till: -199.6 text:[[Special:MyLanguage/Triassic|Triassic]] color:triassic
  from: -299 till: -251.4 text:[[Special:MyLanguage/Permian|Permian]] color:permian
  from: -359.2 till: -299 text:[[Special:MyLanguage/Carboniferous|Carboniferous]] color:carboniferous
  from: -416 till: -359.2 text:[[Special:MyLanguage/Devonian|Devonian]] color:devonian
  from: -443.7 till: -416 text:[[Special:MyLanguage/Silurian|Silurian]] color:silurian
  from: -488.3 till: -443.7 text:[[Special:MyLanguage/Ordovician|Ordovician]] color:ordovician
  from: -542 till: -488.3 text:[[Cambrian] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Cenozoic|Cambrian]] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic

  bar:period
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neogene]] color:neogene
  from: start  till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene

  bar:epoch
  from: -0.1 till: 0  text:[[Special:MyLanguage/Holocene|H]] color:holocene 
  from: -2.588 till: -0.1 text:[[Special:MyLanguage/Pleistocene|P]] color:pleistocene
  from: -5.332 till: -2.588 text:[[Special:MyLanguage/Pliocene|Pliocene]] color:pliocene fontsize:7
  from: -23.03 till: -5.332 text:[[Special:MyLanguage/Miocene|Miocene]] color:miocene
  from: -33.9 till: -23.03 text:[[Special:MyLanguage/Oligocene|Oligocene]] color:oligocene
  from: -55.8 till: -33.9 text:[[Special:MyLanguage/Eocene|Eocene]] color:eocene
  from: start till: -55.8 text:[[Special:MyLanguage/Paleocene|Paleocene]] color:paleocene
&lt;/timeline&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=3 align=left&gt;{{Wikimedia Growth}}&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Code example==
&lt;/div&gt;
:''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See also:&lt;/span&gt;'' {{ll|Extension:EasyTimeline/syntax}}

&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Just to show you that the script syntax is reasonably intuitive,
here is the script for the image above: Soviet Leaders.
&lt;/div&gt; 

&lt;syntaxhighlight lang="moin"&gt;
&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Double and single brackets can be used like on wikipedia, language prefix is possible, e.g. &lt;syntaxhighlight lang="moin" inline&gt;[[de:foo|more about foo]]&lt;/syntaxhighlight&gt;. Single brackets for external links are also supported.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Great timelines elsewhere==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Here are two great sites that may serve as inspiration, it would be very easy to recreate most of those timelines verbatim and with roughly similar layout with EasyTimeline (not yet with images but that may change), but I'm afraid that would be 'not done'.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[http://www.hyperhistory.com/online_n2/History_n2/a.html Hyperhistory] e.g. click on button 'people' left, then on 'special lifelines', right.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*I hope we will have a set like [http://chaos1.hypermart.net/fullsize.htm] in a years time (click on ''full size image'' for any map), possibly even with images. The main effort will be to gather all info without snatching everything from here (most of these maps are based exclusively on data from Britannica).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Unicode==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
EasyTimeline does not yet support Unicode.
&lt;/div&gt; 

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Aug 2004: Minimal UTF-8 support has been added, meaning that EasyTimeline now recognizes UTF-8 encoded characters. However support for directionality and complex scripts is very lacking. The default font may not have glyphs for all characters. An alternate font can be specified via &lt;code&gt;$wgTimelineFontFile&lt;/code&gt;
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===SVG to PNG===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
To show texts correctly for RTL languages (like Arabic, Persian, Hebrew,...) you can use {{tmpl|0={{tag|timeline|params={{attr|method|"svg2png"}}|content=$1}}|timeline code here}} instead of {{tmpl|0={{tag|timeline|content=$1}}|timeline code here}}. it shows timeline as png but the links will be disabled.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Tips==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For first time users EasyTimeline may not seem that easy at all. As with all script languages it takes some getting used to. Also the syntax description may be a bit bewildering due to its sheer size. Fortunately many elements of the script language are optional.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The 'Easy' in EasyTimeline conveys the message that once a timeline exists it is not so hard to understand, enhance or correct. Also translating for use on another Wikipedia it is pretty straightforward.
&lt;/div&gt; 

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tips:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See some [[#charts-examples|chart examples]] to find something you could pick and edit for your own stuff
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*Put each timeline on a separate Template page: this makes it easier to edit, faster to preview, possible to include it in several pages
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Using the current date==
&lt;/div&gt;
Lati lo ọjọ ti o wa lọwọlọwọ rii daju pe tabili ṣii pẹlu &lt;code&gt;&lt;nowiki&gt;{{#tag:timeline|&lt;/nowiki&gt;&lt;/code&gt; ati tilekun pẹlu &lt;code&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;.
Lẹhinna ọjọ ti o wa lọwọlọwọ le fi sii nipa lilo awọn ọrọ idan.
Fun apẹẹrẹ &lt;code&gt;&lt;nowiki&gt;{{#akoko: d/m/Y }}&lt;/nowiki&gt;&lt;/code&gt; tabi &lt;code&gt;&lt;nowiki&gt;{{CURRENTDAY2}}/{{CURRENTMONTH2}}/{{CURRENTYEAR }}&lt;/nowiki&gt;&lt;/code&gt; mejeeji yoo mu ọjọ jade ni ọna kika dd/mm/yyyy.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==See also==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[Special:MyLanguage/Extension:EasyTimeline/syntax|EasyTimeline Coding]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*Presentation about EasyTimeline at Wikimania 2005 ([[m:Transwiki:Wikimania05/Workshop-EZ1|abstract]], [http://upload.wikimedia.org/wikipedia/commons/9/90/Wikimania_2005_Presentation_EasyTimeline.pdf slides], [http://upload.wikimedia.org/wikipedia/commons/7/78/Wikimania_2005_Presentation_Easytimeline_Speaker_Notes.pdf speaker notes])
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[m:WikiTimeScale|m:WikiTimeScale]] as a proposal for realizing timescales for wikipedia articles externally.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[w:Template:Simple Horizontal timeline|w:Template:Simple Horizontal timeline]] An easier timeline to use on Wikipedia.
&lt;/div&gt;
*{{ll|Extension:Graph}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Installation==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
See [[Special:MyLanguage/Extension:EasyTimeline/installation|/installation]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==External links==
&lt;/div&gt;
* [http://www.simile-widgets.org Awọn ẹrọ ailorukọ SIMILE] - DHTML-based AJAXy widget for visualizing time-based events

{{OnWikimedia}}
{{Used by}}</text>
    <sha1>b202e53325669f2014794dbc1446a9a7f6b0f22e</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Extension:EasyTimeline/zh</title>
  <ns>102</ns>
  <id>1111925</id>
  <revision>
    <id>6624089</id>
    <parentid>6268431</parentid>
    <timestamp>2024-07-09T04:46:11Z</timestamp>
    <contributor>
      <username>FuzzyBot</username>
      <id>451990</id>
    </contributor>
    <comment>Updating to match new version of source page</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="24730" xml:space="preserve">&lt;languages /&gt;
{{Extension
|type1           = tag
|status          = stable
|author          = [[w:User:Erik Zachte|Erik Zachte]]
|description     = 添加可创建时间线的{{tag|timeline|open}}标签
|download        = {{WikimediaDownload|timeline}}
|needs-updatephp = no
|changelog       = {{git file|action=summary|project=mediawiki/extensions/timeline|branch=HEAD|text=CHANGELOG}}
|phabricator        = EasyTimeline
|pagedrive1      = true
|example         = [[#charts-examples|见下方]]
|translate       = ext-timeline
}}
{|
| style="padding-{{dir|{{pagelang}}|right|left}}:1em" | ''其他語言：''
| {{flatlist|1=
* [[:de:Hilfe:Zeitleisten|de]]
* [[:es:Ayuda:Cronologías|es]]
* [[:eu:Laguntza:Denbora lerroak|eu]]
* [[:fr:Aide:Frise chronologique|fr]]
* [[:id:Wikipedia:Timeline|id]]
* [[:it:Aiuto:Timeline|it]]
* [[:nl:Help:EasyTimeline|nl]]
* [[:pt:Wikipedia:EasyTimeline|pt]]
* [[:zh:Help:简易时间线语法|zh]]
}}
|}

{{NoteTA|G1=IT|G2=MediaWiki|1=zh-hant:擴展功能;zh-hans:扩展;}}'''EasyTimeline'''（简易时间线）扩展可以根据wikitext来生成嵌入图像。生成的图像可以是一维图（水平或垂直），也可以是二维图。

请参阅在维基上[[Special:MyLanguage/Extension:EasyTimeline/installation|安装EasyTimeline]]的帮助页面。
另请参阅[http://infodisiac.com/Wikipedia/EasyTimeline/Introduction.htm 此页面上的EasyTimeline]，或在[[testwiki:EasyTimeline|test.wikipedia.org]]上试用。

请参阅[[Special:MyLanguage/Extension:EasyTimeline/syntax|使用本扩展提供的语法]]帮助页面。

有一项[[phab:T137291|长期努力]]旨在让{{ll|Extension:Chart|Chart}}的扩展来取代这一扩展。

&lt;span id="Requirements"&gt;&lt;/span&gt;
== 系統需求 ==

该扩展需要在伺服器上安装以下程式：

*[[w:Ploticus|Ploticus]]
*[[w:zh:perl|perl]]
*[[w:zh:XnView|NConvert]] （仅限Windows）

{{anchor|charts-examples}}
&lt;span id="Charts_examples"&gt;&lt;/span&gt;
== 圖表範例 ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Several examples of what is possible. For more extensive examples see
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Timeline WWII - Pacific Theater|WW II - Pacific Theatre]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Timeline of aircraft carriers of the United States Navy|:en:Timeline of aircraft carriers of the United States Navy]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Timeline History of Computing|History of Computing]] - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:de:Vorlage:Zeitleiste Tour-de-France-Sieger|Tour-de-France Sieger]] - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Vocal and instrumental pitch ranges|Vocal and instrumental pitch ranges]] (a nice example of a diagram that is not a timeline at all)  - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[:en:Template:Complete timeline of Macintosh models|Complete timeline of Macintosh models]]  - horizontal
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Simpler timelines:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Template:Extinction events graphical timeline|:en:Template:Extinction events graphical timeline]]  - horizontal, uses [[w:Template:Horizontal timeline|w:Template:Horizontal timeline]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players|:en:Talk:Invention_of_radio/Archive_1#Timeline.2C_Players]]  - horizontal with arrows
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Template:Early evolution of the light bulb|:en:Template:Early evolution of the light bulb]]  - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Invention of radio#Radio invention timeline|:en:Invention of radio#Radio invention timeline]]  - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:Gaius_Marius#Timeline|:en:Gaius_Marius#Timeline]]   - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [[:en:User:Syed Atif Nazir/Template:Imam timeline|:en:User:Syed Atif Nazir/Template:Imam timeline]]   - vertical
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** [https://de.wikipedia.org/w/index.php?title=Aurich&amp;oldid=171331690#Einwohnerentwicklung Population developement] - horizontal
&lt;/div&gt;

&lt;table&gt;&lt;tr&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize  = width:160 height:550
PlotArea   = width:50 height:530 left:50 bottom:10

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;/td&gt;

&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td valign=top&gt;
&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:proterozoic value:rgb(0.968,0.207,0.388)
  id:neoproterozoic value:rgb(0.996,0.701,0.258)
  id:ediacaran value:rgb(0.996,0.85,0.415)
  id:cryogenian value:rgb(0.996,0.8,0.36)
  id:tonian value:rgb(0.996,0.75,0.305)
  id:mesoproterozoic value:rgb(0.996,0.705,0.384)
  id:stenian value:rgb(0.996,0.85,0.604)
  id:ectasian value:rgb(0.996,0.8,0.541)
  id:calymmian value:rgb(0.996,0.75,0.478)
  id:paleoproterozoic value:rgb(0.968,0.263,0.44)
  id:statherian value:rgb(0.968,0.459,0.655)
  id:orosirian value:rgb(0.968,0.408,0.596)
  id:rhyacian value:rgb(0.968,0.357,0.537)
  id:siderian value:rgb(0.968,0.306,0.478)
  id:archean value:rgb(0.996,0.157,0.498)
  id:neoarchean value:rgb(0.976,0.608,0.757)
  id:mesoarchean value:rgb(0.968,0.408,0.662)
  id:paleoarchean value:rgb(0.96,0.266,0.624)
  id:eoarchean value:rgb(0.902,0.114,0.549)
  id:hadean value:rgb(0.717,0,0.494)
  id:black value:black
  id:white value:white

Period     = from:-4567 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:500 start:-4500
ScaleMinor = unit:year increment:100 start:-4500

Define $markred = text:"*" textcolor:red shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)


  bar:eon

  at:       0 align:right $markred
  at:    -542 align:left  $markred shift:(2,3)
  from:  -542 till:    0  text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic   
  from: -2500 till: -542  text:[[Special:MyLanguage/Proterozoic|Proterozoic]] color:proterozoic   
  from: -4000 till: -2500 text:[[Special:MyLanguage/Archean|Archean]]     color:archean   
  from: start till: -4000 text:[[Special:MyLanguage/Hadean|Hadean]]      color:hadean

  bar:era

  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|C]] color:cenozoic        
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Meso]] color:mesozoic        
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic 
  from: -1000 till: -542  text:[[Special:MyLanguage/Neoproterozoic|Neoproterozoic]] color:neoproterozoic   
  from: -1600 till: -1000 text:[[Special:MyLanguage/Mesoproterozoic|Mesoproterozoic]] color:mesoproterozoic  
  from: -2500 till: -1600 text:[[Special:MyLanguage/Paleoproterozoic|Paleoproterozoic]] color:paleoproterozoic 
  from: -2800 till: -2500 text:[[Special:MyLanguage/Neoarchean|Neoarch]] color:neoarchean       
  from: -3200 till: -2800 text:[[Special:MyLanguage/Mesoarchean|Mesoarch]] color:mesoarchean      
  from: -3600 till: -3200 text:[[Special:MyLanguage/Paleoarchean|Paleoarch]] color:paleoarchean     
  from: -4000 till: -3600 text:[[Special:MyLanguage/Eoarchean|Eoarchean]] color:eoarchean
  from: start till: -4000 color:white

  bar:period

  fontsize:6
  from: -2.6 till: 0        color:quaternary
  from: -23.03 till: -2.6   color:neogene
  from: -65.5 till: -23.03  color:paleogene
  from: -145.5 till: -65.5  color:cretaceous
  from: -199.6 till: -145.5 color:jurassic
  from: -251 till: -199.6   color:triassic
  from: -299 till: -251     color:permian
  from: -359.2 till: -299   color:carboniferous
  from: -416 till: -359.2   color:devonian
  from: -443.7 till: -416   color:silurian
  from: -488.3 till: -443.7 color:ordovician
  from: -542 till: -488.3   color:cambrian

  from: -635  till: -542  text:[[Special:MyLanguage/Ediacaran|Ed.]] color:ediacaran
  from: -850  till: -635  text:[[Special:MyLanguage/Cryogenian|Cryo]] color:cryogenian
  from: -1000 till: -850  text:[[Special:MyLanguage/Tonian|Tonian]] color:tonian
  from: -1200 till: -1000 text:[[Special:MyLanguage/Stenian|Stenian]] color:stenian
  from: -1400 till: -1200 text:[[Special:MyLanguage/Ectasian|Ectasian]] color:ectasian
  from: -1600 till: -1400 text:[[Special:MyLanguage/Calymmian|Calymm]] color:calymmian
  from: -1800 till: -1600 text:[[Special:MyLanguage/Statherian|Stather]] color:statherian
  from: -2050 till: -1800 text:[[Special:MyLanguage/Orosirian|Orosirian]] color:orosirian
  from: -2300 till: -2050 text:[[Special:MyLanguage/Rhyacian|Rhyacian]] color:rhyacian
  from: -2500 till: -2300 text:[[Special:MyLanguage/Siderian|Siderian]] color:siderian
  from: start till: -2500 color:white
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize  = width:800 height:100
PlotArea   = left:65 right:15 bottom:20 top:5
AlignBars  = justify

Colors =
  id:phanerozoic value:rgb(0.435,0.85,0.866)
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:neogene value:rgb(1,0.901,0.098)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:mesozoic value:rgb(0.403,0.772,0.792)
  id:cretaceous value:rgb(0.498,0.776,0.306)
  id:jurassic value:rgb(0.203,0.698,0.788)
  id:triassic value:rgb(0.505,0.168,0.572)
  id:paleozoic value:rgb(0.6,0.752,0.552)
  id:permian value:rgb(0.941,0.25,0.156)
  id:carboniferous value:rgb(0.403,0.647,0.6)
  id:devonian value:rgb(0.796,0.549,0.215)
  id:silurian value:rgb(0.702,0.882,0.713)
  id:ordovician value:rgb(0,0.572,0.439)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black  value:black
  id:white  value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-542 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:100 start:-500
ScaleMinor = unit:year increment:10  start:-540

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:eon
  at:      0   align:right  $markred 
  at:   -542   align:left   $markred shift:(2,3)
  from: -542   till:    0   text:[[Special:MyLanguage/Phanerozoic|Phanerozoic]] color:phanerozoic

  bar:era
  at:   0     align:right $markgreen
  at:   -65.5 align:left  $markgreen shift:(2,3)
  from: -65.5 till: 0     text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic
  from: -251  till: -65.5 text:[[Special:MyLanguage/Mesozoic|Mesozoic]] color:mesozoic
  from: -542  till: -251  text:[[Special:MyLanguage/Paleozoic|Paleozoic]] color:paleozoic

  bar:period fontsize:8
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neo]] color:neogene
  from: -65.5 till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene
  from: -145.5 till: -65.5 text:[[Special:MyLanguage/Cretaceous|Cretaceous]] color:cretaceous
  from: -199.6 till: -145.5 text:[[Special:MyLanguage/Jurassic|Jurassic]] color:jurassic
  from: -251.4 till: -199.6 text:[[Special:MyLanguage/Triassic|Triassic]] color:triassic
  from: -299 till: -251.4 text:[[Special:MyLanguage/Permian|Permian]] color:permian
  from: -359.2 till: -299 text:[[Special:MyLanguage/Carboniferous|Carboniferous]] color:carboniferous
  from: -416 till: -359.2 text:[[Special:MyLanguage/Devonian|Devonian]] color:devonian
  from: -443.7 till: -416 text:[[Special:MyLanguage/Silurian|Silurian]] color:silurian
  from: -488.3 till: -443.7 text:[[Special:MyLanguage/Ordovician|Ordovician]] color:ordovician
  from: -542 till: -488.3 text:[[Cambrian] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:cambrian value:rgb(0.496,0.627,0.337)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Cenozoic|Cambrian]] color:cambrian
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:800 height:100
PlotArea  = left:65 right:15 bottom:20 top:5
AlignBars = justify

Colors =
  id:cenozoic value:rgb(0.949,0.976,0.113)
  id:quaternary value:rgb(0.976,0.976,0.498)
  id:holocene value:rgb(0.996,0.949,0.878)
  id:pleistocene value:rgb(1,0.949,0.678)
  id:neogene value:rgb(1,0.901,0.098)
  id:pliocene value:rgb(1,1,0.6)
  id:miocene value:rgb(1,1,0)
  id:paleogene value:rgb(0.992,0.603,0.321)
  id:oligocene value:rgb(0.992,0.752,0.478)
  id:eocene value:rgb(0.992,0.705,0.423)
  id:paleocene value:rgb(0.992,0.654,0.372)
  id:black value:black
  id:white value:white
  id:darkgreen value:rgb(0,0.35,0)

Period     = from:-65.5 till:0
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:10 start:-60
ScaleMinor = unit:year increment:1  start:-65

Define $markred   = text:"*" textcolor:red   shift:(0,3) fontsize:10
Define $markgreen = text:"*" textcolor:darkgreen  shift:(0,3) fontsize:10

PlotData=
  align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

  bar:era
  at:     0  align:right $markgreen 
  at: start  align:left  $markgreen shift:(2,3)
  from:start till:  0    text:[[Special:MyLanguage/Cenozoic|Cenozoic]] color:cenozoic

  bar:period
  from: -2.588 till: 0 text:[[Special:MyLanguage/Quaternary|Q.]] color:quaternary
  from: -23.03 till: -2.588 text:[[Special:MyLanguage/Neogene|Neogene]] color:neogene
  from: start  till: -23.03 text:[[Special:MyLanguage/Paleogene|Paleogene]] color:paleogene

  bar:epoch
  from: -0.1 till: 0  text:[[Special:MyLanguage/Holocene|H]] color:holocene 
  from: -2.588 till: -0.1 text:[[Special:MyLanguage/Pleistocene|P]] color:pleistocene
  from: -5.332 till: -2.588 text:[[Special:MyLanguage/Pliocene|Pliocene]] color:pliocene fontsize:7
  from: -23.03 till: -5.332 text:[[Special:MyLanguage/Miocene|Miocene]] color:miocene
  from: -33.9 till: -23.03 text:[[Special:MyLanguage/Oligocene|Oligocene]] color:oligocene
  from: -55.8 till: -33.9 text:[[Special:MyLanguage/Eocene|Eocene]] color:eocene
  from: start till: -55.8 text:[[Special:MyLanguage/Paleocene|Paleocene]] color:paleocene
&lt;/timeline&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=3 align=left&gt;{{Wikimedia Growth}}&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;


&lt;span id="Code_example"&gt;&lt;/span&gt;
== 代碼範例 ==
:''參見：'' {{ll|Extension:EasyTimeline/syntax}}

&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;

&lt;!--Just to show you that--&gt;脚本语法是相当直观的。
这是上面图片的脚本：苏联领导人。 

&lt;syntaxhighlight lang="moin"&gt;
&lt;timeline&gt;
# All measures are in pixels

ImageSize  = width:160 height:550
PlotArea   = left:50 right:0 bottom:10 top:10
AlignBars  = justify

DateFormat = yyyy
Period     = from:1917 till:1991
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:5 start:1920

# there is no automatic collision detection,
# so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=
  bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

  from:start till:1924 shift:($dx,15)   text:Vladimir~Ilyich~[[Special:MyLanguage/Lenin|Lenin]]
  from:1924  till:1953 shift:($dx,5)    text:[[Special:MyLanguage/Stalin|Josef~Stalin]]
  from:1953  till:1964 shift:($dx,5)    text:Nikita~[[Special:MyLanguage/Khrushchev|Khrushchev]]
  from:1964  till:1982 shift:($dx,5)    text:Leonid~[[Special:MyLanguage/Brezhnev|Brezhnev]]
  from:1982  till:1984 shift:($dx,-12)  text:Yuri~[[Special:MyLanguage/Andropov|Andropov]]
  from:1984  till:1985 shift:($dx,4)    text:Konstantin~[[Special:MyLanguage/Chernenko|Chernenko]] fontsize:XS
  from:1985  till:end  shift:($dx,10)   text:Mikhail~[[Special:MyLanguage/Gorbachev|Gorbachev]]
&lt;/timeline&gt;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Double and single brackets can be used like on wikipedia, language prefix is possible, e.g. &lt;syntaxhighlight lang="moin" inline&gt;[[de:foo|more about foo]]&lt;/syntaxhighlight&gt;. Single brackets for external links are also supported.
&lt;/div&gt;

&lt;span id="Great_timelines_elsewhere"&gt;&lt;/span&gt;
==好時間軸須知==


这里有两个好的网站，可以作为參考，如果用EasyTimeline（还没有图片，但可能会改变）逐字逐句地重新创建大部分的时间线，并且布局大致相似，那将是非常容易的，但我担心那将是 "没有完成"。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[http://www.hyperhistory.com/online_n2/History_n2/a.html Hyperhistory] e.g. click on button 'people' left, then on 'special lifelines', right.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*I hope we will have a set like [http://chaos1.hypermart.net/fullsize.htm] in a years time (click on ''full size image'' for any map), possibly even with images. The main effort will be to gather all info without snatching everything from here (most of these maps are based exclusively on data from Britannica).
&lt;/div&gt;

&lt;span id="Unicode"&gt;&lt;/span&gt;
== Unicode（統一碼） ==

簡易時間軸尚未完全支援Unicode。（現在只可以使用FreeSans.ttf字型） 

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Aug 2004: Minimal UTF-8 support has been added, meaning that EasyTimeline now recognizes UTF-8 encoded characters. However support for directionality and complex scripts is very lacking. The default font may not have glyphs for all characters. An alternate font can be specified via &lt;code&gt;$wgTimelineFontFile&lt;/code&gt;
&lt;/div&gt;

&lt;span id="SVG_to_PNG"&gt;&lt;/span&gt;
=== SVG轉PNG ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
To show texts correctly for RTL languages (like Arabic, Persian, Hebrew,...) you can use {{tmpl|0={{tag|timeline|params={{attr|method|"svg2png"}}|content=$1}}|timeline code here}} instead of {{tmpl|0={{tag|timeline|content=$1}}|timeline code here}}. it shows timeline as png but the links will be disabled.
&lt;/div&gt;

&lt;span id="Tips"&gt;&lt;/span&gt;
==提示==

对于第一次使用EasyTimeline的用户来说，EasyTimeline可能看起来一点都不简单。和所有的脚本语言一样，它需要一些时间来适应。此外，由于其庞大的语法描述可能有点令人困惑。幸运的是，脚本语言的许多元素都是可选的。


EasyTimeline中的 "Easy "传达了这样一个信息：一旦有了时间线，理解、增强或修正就不那么难了。同时翻译到另一个维基百科上使用，也是非常直接、簡單的。 

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tips:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See some [[#charts-examples|chart examples]] to find something you could pick and edit for your own stuff
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*Put each timeline on a separate Template page: this makes it easier to edit, faster to preview, possible to include it in several pages
&lt;/div&gt;

&lt;span id="Using_the_current_date"&gt;&lt;/span&gt;
== 使用目前日期 ==
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use the current date make sure the table opens with &lt;code&gt;&lt;nowiki&gt;{{#tag:timeline|&lt;/nowiki&gt;&lt;/code&gt; and closes with &lt;code&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then the current date can be inserted using magic words.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example &lt;code&gt;&lt;nowiki&gt;{{#time: d/m/Y }}&lt;/nowiki&gt;&lt;/code&gt; or &lt;code&gt;&lt;nowiki&gt;{{CURRENTDAY2}}/{{CURRENTMONTH2}}/{{CURRENTYEAR}}&lt;/nowiki&gt;&lt;/code&gt; will both yield the date in format dd/mm/yyyy.&lt;/span&gt;

&lt;span id="See_also"&gt;&lt;/span&gt;
== 參見 ==

*[[Special:MyLanguage/Extension:EasyTimeline/syntax|EasyTimeline語法]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*Presentation about EasyTimeline at Wikimania 2005 ([[m:Transwiki:Wikimania05/Workshop-EZ1|abstract]], [http://upload.wikimedia.org/wikipedia/commons/9/90/Wikimania_2005_Presentation_EasyTimeline.pdf slides], [http://upload.wikimedia.org/wikipedia/commons/7/78/Wikimania_2005_Presentation_Easytimeline_Speaker_Notes.pdf speaker notes])
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*[[m:WikiTimeScale|m:WikiTimeScale]] as a proposal for realizing timescales for wikipedia articles externally.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[w:Template:Simple Horizontal timeline|w:Template:Simple Horizontal timeline]] An easier timeline to use on Wikipedia.
&lt;/div&gt;
*{{ll|Extension:Graph}}

&lt;span id="Installation"&gt;&lt;/span&gt;
== 安裝 ==

參見[[Special:MyLanguage/Extension:EasyTimeline/installation|/安裝]]

&lt;span id="External_links"&gt;&lt;/span&gt;
== 外部連結 ==
* [http://www.simile-widgets.org &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;SIMILE Widgets&lt;/span&gt;] - DHTML-based AJAXy widget for visualizing time-based events

{{OnWikimedia}}
{{Used by}}</text>
    <sha1>95b376a52111c57b8ec39ac1738308eb2174bf89</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Extension:EasyTimeline/syntax</title>
  <ns>102</ns>
  <id>23966</id>
  <revision>
    <id>6624090</id>
    <parentid>6507438</parentid>
    <timestamp>2024-07-09T04:47:54Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="76239" xml:space="preserve">&lt;languages/&gt;
&lt;translate&gt;&lt;!--T:336--&gt; The &lt;tvar name=1&gt;{{ll|Extension:EasyTimeline|EasyTimeline}}&lt;/tvar&gt; feature produces an embedded [[&lt;tvar name=2&gt;m:Special:MyLanguage/Help:Images and other uploaded files&lt;/tvar&gt;|image]] from wikitext.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:626--&gt; The image can be a one-dimensional diagram (horizontally or vertically), or a two-dimensional one.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:627--&gt; The name "EasyTimeline" refers to the possibility to apply the feature with a time scale horizontally or vertically, possibly with another parameter in the other direction, but there are also various other possiblities.&lt;/translate&gt;

&lt;translate&gt;
== Introduction == &lt;!--T:337--&gt;

&lt;!--T:338--&gt;
Graphical timelines can be produced by providing a script between special tags:
&lt;/translate&gt;

&lt;code class="mw-code mw-highlight" style="display:block"&gt;&lt;!--
--&gt;{{^(}}{{#tag:span|timeline|class=nt}}{{)^}}
''&lt;translate&gt;&lt;!--T:730--&gt; script&lt;/translate&gt;''
{{^(}}/{{#tag:span|timeline|class=nt}}{{)^}}
&lt;/code&gt;

&lt;translate&gt;
&lt;!--T:339--&gt;
EasyTimeline will then be invoked to render a PNG image and (optionally) a clickable map.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:340--&gt; '''Disclaimer''': Even though EasyTimeline is designed for ease of use, a complicated graphical timeline is a non-trivial affair.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:628--&gt; A simple timeline may take half an hour to compose (or even more, when a suitable example is taken as a basis).&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:629--&gt; Large timelines may take a few hours for composition and fine-tuning.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:630--&gt; However, adding to or correcting a timeline, no matter how complex, should be a relatively straightforward affair, even for contributors who have no expert knowledge of the syntax described here.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:341--&gt;
Feel free to ask the [[m:User:Erik Zachte|author of EasyTimeline]] for advice.

== Available commands == &lt;!--T:342--&gt;

&lt;!--T:343--&gt;
The script commands define:

&lt;!--T:715--&gt;
* Overall layout:&lt;/translate&gt; [[#ImageSize (mandatory)|ImageSize]], [[#PlotArea (mandatory)|PlotArea]], [[#Colors|Colors]], [[#BackgroundColors|BackgroundColors]], [[#AlignBars|AlignBars]]
&lt;translate&gt;
&lt;!--T:716--&gt;
* Interpretation and presentation of dates and periods:&lt;/translate&gt; [[#DateFormat|DateFormat]], [[#Period (mandatory)|Period]], [[#ScaleMajor|ScaleMajor]], [[#ScaleMinor|ScaleMinor]], [[#TimeAxis (mandatory)|TimeAxis]]
&lt;translate&gt;
&lt;!--T:717--&gt;
* Shorthands for pieces of script code that occur multiple times:&lt;/translate&gt; [[#Define|Define]]
&lt;translate&gt;
&lt;!--T:718--&gt;
* How to order, divide, and name groups of events and periods:&lt;/translate&gt; [[#BarData|BarData]], [[#Legend|Legend]], [[#LineData|LineData]]
&lt;translate&gt;
&lt;!--T:719--&gt;
* Events, periods and descriptive texts:&lt;/translate&gt; [[#PlotData|PlotData]], [[#TextData|TextData]]

&lt;translate&gt;

== General coding rules == &lt;!--T:344--&gt;

&lt;!--T:345--&gt;
A script can contain commands and comments. Each command is followed by one or more attributes.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:346--&gt; Letter case: Commands and their attributes can be written in lower, upper or mixed case.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:631--&gt; Please try to be consistent in applying case as this will further readability, e.g. use mixed case for all commands and lowercase for all attributes.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:347--&gt;
The following commands are mandatory:
* [[&lt;tvar name=1&gt;#ImageSize (mandatory)&lt;/tvar&gt;|ImageSize]], determines the overall size of the time line
* [[&lt;tvar name=2&gt;#PlotArea (mandatory)&lt;/tvar&gt;|PlotArea]], determines the margins
* [[&lt;tvar name=3&gt;#Period (mandatory)&lt;/tvar&gt;|Period]], determines the time period that will be displayed in the chart
* [[&lt;tvar name=4&gt;#TimeAxis (mandatory)&lt;/tvar&gt;|TimeAxis]], the orientation (horizontal/vertical) of the time axis

&lt;!--T:348--&gt;
At least one of the following commands is required (either or both can occur multiple times):
* [[&lt;tvar name=1&gt;#PlotData&lt;/tvar&gt;|PlotData]] and/or
* [[&lt;tvar name=2&gt;#TextData&lt;/tvar&gt;|TextData]].

&lt;!--T:349--&gt;
All other commands are optional.
&lt;/translate&gt;

{{anchor|comments}}
&lt;translate&gt;
=== Comments === &lt;!--T:350--&gt;

&lt;!--T:351--&gt;
Single and multi line comments can be specified:
* Text following the hash sign '''#''' will be regarded as a comment
* Text between '''#&gt;''' and '''&lt;#''' will also be regarded as a comment. Comments can span multiple lines, when tagged this way.

&lt;!--T:352--&gt;
Examples:
&lt;/translate&gt;

{{pre|1=
[[#DateFormat|DateFormat]] = dd/mm/yyyy # European date format

[[#Period|Period]] = from:01/09/1939 till:02/09/1945 #&gt; this chart will show
  the complete duration of World War II &lt;#
}}

&lt;translate&gt;
=== Commands === &lt;!--T:355--&gt;

&lt;!--T:356--&gt;
Commands should start on the first position of a line.

&lt;!--T:357--&gt;
Some commands can be followed by multiple lines of data and/or options.
These extra lines should start with at least one space or be completely empty (the latter is useful for visually grouping related data lines).

&lt;!--T:358--&gt;
Commands have one of the following forms, depending on the type of command:

&lt;!--T:359--&gt;
'''''Command'' = ''attribute(s)'''''
&lt;/translate&gt;

{{pre|1=
[[#DateFormat|DateFormat]] = dd/mm/yyyy
}}

&lt;translate&gt;
&lt;!--T:361--&gt;
'''''Command name'' = ''attribute(s)'''''
&lt;/translate&gt;

{{pre|1=
[[#Define|Define]] $US = text:"United States"
}}

&lt;translate&gt;
&lt;!--T:362--&gt;
'''''Command ='''''
:'''''attribute(s)'''''
:'''''attribute(s)'''''
:'''''etc.'''''
&lt;/translate&gt;

{{pre|1=
[[#PlotData|PlotData]] =
  fontsize:XS width:20
  bar:Japan from:start till:19/02/1945 color:JT
  bar:Japan from:19/02/1945 till:14/03/1945 color:AI
}}

&lt;translate&gt;
=== Attributes === &lt;!--T:363--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:364--&gt; When several attributes can be specified for a certain command, they are notated as 'name:value' pairs.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:632--&gt; When several values can be specified for one attribute they have to be enclosed between parentheses.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:633--&gt; A few commands, like [[&lt;tvar name=1&gt;#Color&lt;/tvar&gt;|Color]], use other formats.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:365--&gt;
Examples:
&lt;/translate&gt;

{{pre|1=
[[#BackgroundColors|BackgroundColors]] = bars:darkgrey
[[#PlotData|PlotData]] = at:5 shift:(10, -7) text:Foo
[[#Color|Color]] SB = value:rgb(0.8,0,0.7) legend:Sea_Battles
}}

{{anchor|parameters-vs data items}}
&lt;translate&gt;
==== Parameters vs data items ==== &lt;!--T:366--&gt;

&lt;!--T:367--&gt;
Most commands only accept attributes that are specified on the same line.

&lt;!--T:368--&gt;
; Data blocks&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:691--&gt;
: Some commands, like [[&lt;tvar name=1&gt;#BarData&lt;/tvar&gt;|BarData]], [[&lt;tvar name=2&gt;#PlotData&lt;/tvar&gt;|PlotData]], [[&lt;tvar name=3&gt;#TextData&lt;/tvar&gt;|TextData]], [[&lt;tvar name=4&gt;#Colors&lt;/tvar&gt;|Colors]] expect a ''data block'' consisting of one or more ''data lines''. Data lines should start with one or more spaces. A data block is considered complete when a line starting with a non-space is encountered (exception: empty lines are ignored, they may be used to group related data lines within a block).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:692--&gt;
: Attributes in a data block can conceptually be divided into ''parameters'' and ''data items''. Data blocks can contain parameters and data items intermingled.

&lt;!--T:369--&gt;
; Data items
: In data lines attributes ''text'', ''from'', ''till'' and ''at'' always apply only to the line in which they occur.

&lt;!--T:370--&gt;
; Parameters
: In data lines attributes like ''color'' and ''fontsize'' have different implications depending on the context. If these parameters occur on a line without data items, they set new defaults for the data lines that follow. If they appear on a line mixed with data items they apply only to that line, thus overruling a default that was previously set.

&lt;!--T:371--&gt;
Example:
&lt;/translate&gt;

&lt;pre&gt;
# In this example two sets of bars are drawn, in red and blue respectively,
# but in each set one bar (marking war periods) will be drawn in green.

PlotData =
  color:red fontsize:S                               # set defaults
  bar:USSR from:1919 till:1922 text:Lenin            # red bar
  bar:USSR from:1922 till:1953 text:Stalin           # red bar
  bar:USSR from:1939 till:1945 text:WWII color:green # green bar
  bar:USSR from:1953 till:1964 text:Krushchev        # red bar
  &amp;nbsp;
  color:blue                                         # change default color
  bar:US from:1913 till:1921 text:Wilson             # blue bar
  bar:US from:1917 till:1918 text:WWI color:green    # green bar
  bar:US from:1921 till:1923 text:Harding            # blue bar

#&gt; this multiline comment does not end command PlotData,
   even when the previous line does not start with a space&lt;#

   bar:US from:1923 till:1929 text:Coolidge           # blue bar

TextData =                                            # now PlotData is considered complete
   tabs:...etc
&lt;/pre&gt;

&lt;translate&gt;
== Attribute data input rules == &lt;!--T:376--&gt;
&lt;/translate&gt;

{{anchor|measurements|Measurement}}
&lt;translate&gt;
=== Measurements === &lt;!--T:377--&gt;

&lt;!--T:378--&gt;
Measurements can be absolute or relative to the image size depending on the unit specified in attributes.
In attributes that take coordinate pairs, the first coordinate is horizontal from left to right, the second is vertically upward.

==== Absolute measures ==== &lt;!--T:379--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:380--&gt; They may be used for specifying total sizes of the image, positions and position shifts.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:634--&gt; The value can be specified in pixels ('''px'''), inches ('''in''') or centimeters ('''cm''') by appending a postfixed unit to the value.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:635--&gt; Values can have fractional decimals.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:381--&gt;
Example:
&lt;/translate&gt;

&lt;pre&gt;
PlotArea = left:50 bottom:50 right:50 top:90
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:382--&gt;
The following absolute measures are equivalent:
* &lt;code&gt;800px&lt;/code&gt;
* &lt;code&gt;800&lt;/code&gt; (the default unit is the pixel)
* &lt;code&gt;8in&lt;/code&gt; (assuming a display resolution of 100 pixels per inch)
* &lt;code&gt;3.15cm&lt;/code&gt; (assuming the same display resolution, converted to centimeters)

==== Relative measures ==== &lt;!--T:383--&gt;

&lt;!--T:384--&gt;
They may be used for specifying sizes and positions according to the total image sizes; they can't be used for specifying the total image sizes (see [[&lt;tvar name=1&gt;#ImageSize&lt;/tvar&gt;|ImageSize]]) but may be used to define the [[&lt;tvar name=2&gt;#PlotArea (mandatory)&lt;/tvar&gt;|PlotArea]].

&lt;!--T:385--&gt;
For horizontal measurements the percentage is related to image width, for vertical measurements to image height.

&lt;!--T:386--&gt;
Specify a number between 0 and 100, immediately followed by a '''%''' (percentage) sign.

&lt;!--T:387--&gt;
Example:
&lt;/translate&gt;

&lt;pre&gt;
PlotArea = left:10% bottom:5% right:5% top:15%
&lt;/pre&gt;

{{anchor|Text Input|text-input}}
&lt;translate&gt;
=== Text input === &lt;!--T:388--&gt;

&lt;!--T:389--&gt;
Text input is subject to a few rules:

&lt;!--T:693--&gt;
# Only a subset of Unicode is allowed for font rendering, but Unicode in links should work for all characters. See also [[&lt;tvar name=1&gt;#Font support&lt;/tvar&gt;|Font support]].&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:694--&gt;
# When text should contain spaces, either specify these by using underscores (_) or place the text between "double quotes".&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:695--&gt;
#: Exception: when the text attribute is the last attribute on a line, spaces are allowed (no confusion will arise where the text stops and the next attribute starts, that is&amp;mdash;to be precise&amp;mdash;when no colons occur in the text).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:696--&gt;
# In data lines following command [[&lt;tvar name=1&gt;#TextData&lt;/tvar&gt;|TextData]] two characters have special meaning:&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:697--&gt;
#: '''^''' (caret) means ''tab''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:698--&gt;
#: '''~''' (tilde) means ''newline''

&lt;!--T:390--&gt;
Example: (the following are all equivalent)
&lt;/translate&gt;

&lt;pre&gt;
BarData =
  text:Japanese_mandate_since_1914 bar:Marshalls

BarData =
  text:"Japanese mandate since 1914" bar:Marshalls

BarData =
  bar:Marshalls text:Japanese mandate since 1914
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:393--&gt;
Example showing tabs:
&lt;/translate&gt;

&lt;syntaxhighlight lang="moin"&gt;
TextData =
  tabs:(4-right,12-right,14-left,34-left)
  text:^1^1940^27/9^Berlin Ger,It,Jap sign Tripartite Pact
  text:^10^1944^1-22/7^Bretton Woods 44 nations establish
  text:^^^^^IMF and World Bank

# will be shown as:
#
#      1    27/9 Berlin Ger,It,Jap sign Tripartite Pact
#     10  1-22/7 Bretton Woods 44 nations establish
#                                    IMF and World Bank
&lt;/syntaxhighlight&gt;

{{anchor|clickable maps|clickable-maps}}
&lt;translate&gt;
=== Clickable maps === &lt;!--T:395--&gt;

&lt;!--T:396--&gt;
Both output formats available in MediaWiki, i.e. PNG and SVG, can contain clickable links. Texts shown in blue, and bars, may then be clicked, to surf to another web page.

&lt;!--T:397--&gt;
Links can be specified with commands [[&lt;tvar name=1&gt;#BarData&lt;/tvar&gt;|BarData]], [[&lt;tvar name=2&gt;#PlotData&lt;/tvar&gt;|PlotData]] and [[&lt;tvar name=3&gt;#TextData&lt;/tvar&gt;|TextData]], either with attribute ''link'', or as embedded links, via attribute ''text''.

==== Embedded links ==== &lt;!--T:398--&gt;

&lt;!--T:399--&gt;
Embedded links are links that are (part of a) displayable text, specified with attribute ''text''. Their counterpart are explicit links (URL only) which are defined with attribute ''link''.

&lt;!--T:400--&gt;
Both type of links can be specified with commands [[&lt;tvar name=1&gt;#BarData&lt;/tvar&gt;|BarData]], [[&lt;tvar name=2&gt;#PlotData&lt;/tvar&gt;|PlotData]] and [[&lt;tvar name=3&gt;#TextData&lt;/tvar&gt;|TextData]] and are used for [[&lt;tvar name=4&gt;#clickable maps&lt;/tvar&gt;|clickable maps]].

&lt;!--T:401--&gt;
In embedded links, internal link style is as usual, interwiki link style does not work, external link style is as usual with single brackets, but here with a pipe instead of a space.

&lt;!--T:402--&gt;
Examples:
&lt;/translate&gt;

&lt;pre&gt;
  &lt;nowiki&gt;text:example [[Help:Link]] internal link&lt;/nowiki&gt;
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:620--&gt;
will be shown as:
&lt;/translate&gt;

&lt;timeline&gt;
ImageSize = width:380 height:25
PlotArea  = width:380 height:25 left:0 bottom:0
TimeAxis  = orientation:vertical # dummy, required
Period    = from:0 till:1 # dummy, required
Colors    =
  id:canvas value:rgb(1,1,0.85)
BackgroundColors = canvas:canvas
TextData  =
  pos:(10,10) fontsize:XL text:"example [[Help:Link]] internal link"
&lt;/timeline&gt;

&lt;pre&gt;
  &lt;nowiki&gt;text:[[Help:Link|Link]]&lt;/nowiki&gt;
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:621--&gt;
will be shown as:
&lt;/translate&gt;

&lt;timeline&gt;
ImageSize = width:380 height:25
PlotArea  = width:380 height:25 left:0 bottom:0
TimeAxis  = orientation:vertical # dummy, required
Period    = from:0 till:1 # dummy, required
Colors    =
  id:canvas value:rgb(1,1,0.85)
BackgroundColors = canvas:canvas
TextData  =
  pos:(10,10) fontsize:XL text:"[[Help:Link|Link]]"
&lt;/timeline&gt;

&lt;pre&gt;
  &lt;nowiki&gt;text:[http://en.wikipedia.org/wiki/Rembrandt|Rembrandt van Rijn] paints Night Watch&lt;/nowiki&gt;
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:622--&gt;
will be shown as:
&lt;/translate&gt;

&lt;timeline&gt;
ImageSize = width:380 height:25
PlotArea  = width:380 height:25 left:0 bottom:0
TimeAxis  = orientation:vertical # dummy, required
Period    = from:0 till:1 # dummy, required
Colors    =
  id:canvas value:rgb(1,1,0.85)
BackgroundColors = canvas:canvas
TextData  =
  pos:(10,10) fontsize:XL text:"[http://en.wikipedia.org/wiki/Rembrandt|Rembrandt van Rijn] paints Night Watch"
&lt;/timeline&gt;

&lt;translate&gt;
==== Using interwikis ==== &lt;!--T:404--&gt;

&lt;!--T:405--&gt;
An attempt to use interwiki link style:
&lt;/translate&gt;

&lt;pre&gt;
  &lt;nowiki&gt;text:[[en:Main Page]]&lt;/nowiki&gt;
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:407--&gt;
and similar with nl: and m: gives:
&lt;/translate&gt;

&lt;timeline&gt;
ImageSize = width:380 height:25
PlotArea  = width:380 height:25 left:0 bottom:0
TimeAxis  = orientation:vertical # dummy, required
Period    = from:0 till:1 # dummy, required
Colors    =
  id:canvas value:rgb(1,1,0.85)
BackgroundColors = canvas:canvas
TextData  =
  pos:(10,10) fontsize:XL text:"[[en:Main Page]]"
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:380 height:25
PlotArea  = width:380 height:25 left:0 bottom:0
TimeAxis  = orientation:vertical # dummy, required
Period    = from:0 till:1 # dummy, required
Colors    =
  id:canvas value:rgb(1,1,0.85)
BackgroundColors = canvas:canvas
TextData  =
  pos:(10,10) fontsize:XL text:"[[nl:Main Page]]"
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:380 height:25
PlotArea  = width:380 height:25 left:0 bottom:0
TimeAxis  = orientation:vertical # dummy, required
Period    = from:0 till:1 # dummy, required
Colors    =
  id:canvas value:rgb(1,1,0.85)
BackgroundColors = canvas:canvas
TextData  =
  pos:(10,10) fontsize:XL text:"[[m:Main Page]]"
&lt;/timeline&gt;

&lt;translate&gt;
&lt;!--T:411--&gt;
The third one to Meta-Wikipedia works properly, except from Meta itself, the other links work like [[&lt;tvar name=1&gt;Special:MyLanguage/Main Page&lt;/tvar&gt;|Main Page]] (internal page, the prefix is ignored) or e.g. {{SERVER}}/w/Main_Page (gives File not found), depending on the URL of the referring page (e.g. different for a preview page and a diff page).

=== Special characters === &lt;!--T:412--&gt;

&lt;!--T:413--&gt;
* '''#''', '''#&gt;''', '''&lt;#''' (hash, hash+"greater than", "less than"+hash): see [[&lt;tvar name=1&gt;#Comments&lt;/tvar&gt;|Comments]]
* '''~''' (tilde) in texts means: line break
* '''^''' (caret) in texts means: tab
* '''_''' (underscore) in texts means: space
* '''$''' (dollar sign) precedes any user defined constant

&lt;!--T:414--&gt;
Blank spaces and underscores in a url should be written as %20.

&lt;!--T:415--&gt;
The tilde character ('''~''') is normally interpreted as line break. When a tilde is part of a url write it as is two tildes.&lt;br/&gt;
For example, link to ''www.site.com/~mysite'' as:
&lt;/translate&gt;

&lt;pre&gt;
  &lt;nowiki&gt;text:[www.site.com/~~mysite|My site]&lt;/nowiki&gt;
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:416--&gt;
The number sign ('''#''') is normally interpreted as start of comment. When a number sign is part of an url make sure the text is embedded in double quotes as follows:
&lt;/translate&gt;

&lt;pre&gt;
  &lt;nowiki&gt;text:"More at [www.site.com/~~mysite#section2|My site]"&lt;/nowiki&gt;
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:417--&gt;
Actually it may be a good idea to always put texts between double quotes.

== Command Reference == &lt;!--T:418--&gt;

&lt;!--T:419--&gt;
For each command the valid attributes are listed. Some commands are mandatory, and some attributes in commands are optional.

&lt;!--T:420--&gt;
For some commands certain attributes are mutually exclusive (will be explained where applicable).
&lt;/translate&gt;

{{anchor|alignbars}}
&lt;translate&gt;
=== AlignBars === &lt;!--T:421--&gt;

&lt;!--T:422--&gt;
Bars will always be drawn at equal distances. This command specifies whether the bars should be spaced as much apart as possible, or some white space should be reserved between the left/top side of the chart and the first bar or between the last bar and the right/bottom side of the chart.

&lt;!--T:423--&gt;
; early ''(default)''
: The first bar will be placed on the leftmost/topmost position of the chart ('glued' to the axis), leaving space between the last bar and right/bottom side of the chart.

&lt;!--T:424--&gt;
; late
: Opposite from ''early'': the last bar will be placed as far to the right/bottom side of the chart as possible, leaving space between the axis line (left/top side of chart) and the first bar.

&lt;!--T:425--&gt;
; justify
: The first and last bars will be placed as far apart as possible, leaving no empty space on either side of the chart. When only one bar is present, justify will be interpreted as "centered".

&lt;!--T:426--&gt;
The exact alignment depends on the orientation setting in the [[&lt;tvar name=1&gt;#TimeAxis (mandatory)&lt;/tvar&gt;|TimeAxis]] mandatory command.

&lt;!--T:427--&gt;
Examples:
&lt;/translate&gt;

{|border="0" cellspacing="0" cellpadding="2" bgcolor="#F7F8FF" class="wikitable"
|-
!style="background:#EEEEEE"| Alignbars =
!style="background:#EEEEEE"| early
!style="background:#EEEEEE"| late
!style="background:#EEEEEE"| justify
!style="background:#EEEEEE"| (default)
|-
!style="background:#EEEEEE"| TimeAxis = orientation:horizontal
|
&lt;timeline&gt;
ImageSize  = width:90 height:120
PlotArea   = width:65 height:80 left:20 bottom:20
AlignBars  = early

DateFormat = yyyy
Period     = from:1 till:5
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:1 start:1

PlotData=
  color:red width:10
  bar:A from:start till:end
  bar:B from:start till:end
  bar:C from:start till:end
  bar:D from:start till:end
&lt;/timeline&gt;
|
&lt;timeline&gt;
ImageSize  = width:90 height:120
PlotArea   = width:65 height:80 left:20 bottom:20
AlignBars  = late

DateFormat = yyyy
Period     = from:1 till:5
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:1 start:1

PlotData=
  color:red width:10
  bar:A from:start till:end
  bar:B from:start till:end
  bar:C from:start till:end
  bar:D from:start till:end
&lt;/timeline&gt;
|
&lt;timeline&gt;
ImageSize  = width:90 height:120
PlotArea   = width:65 height:80 left:20 bottom:20
AlignBars  = justify

DateFormat = yyyy
Period     = from:1 till:5
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:1 start:1

PlotData=
  color:red width:10
  bar:A from:start till:end
  bar:B from:start till:end
  bar:C from:start till:end
  bar:D from:start till:end
&lt;/timeline&gt;
|
&lt;timeline&gt;
ImageSize  = width:90 height:120
PlotArea   = width:65 height:80 left:20 bottom:20

DateFormat = yyyy
Period     = from:1 till:5
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:1 start:1

PlotData=
  color:red width:10
  bar:A from:start till:end
  bar:B from:start till:end
  bar:C from:start till:end
  bar:D from:start till:end
&lt;/timeline&gt;
|-
!style="background:#EEEEEE"| TimeAxis = orientation:vertical
|
&lt;timeline&gt;
ImageSize  = width:90 height:120
PlotArea   = width:65 height:80 left:20 bottom:20
AlignBars  = early

DateFormat = yyyy
Period     = from:1 till:5
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:1 start:1

PlotData=
  color:red width:10
  bar:A from:start till:end
  bar:B from:start till:end
  bar:C from:start till:end
  bar:D from:start till:end
&lt;/timeline&gt;
|
&lt;timeline&gt;
ImageSize  = width:90 height:120
PlotArea   = width:65 height:80 left:20 bottom:20
AlignBars  = late

DateFormat = yyyy
Period     = from:1 till:5
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:1 start:1

PlotData=
  color:red width:10
  bar:A from:start till:end
  bar:B from:start till:end
  bar:C from:start till:end
  bar:D from:start till:end
&lt;/timeline&gt;
|
&lt;timeline&gt;
ImageSize  = width:90 height:120
PlotArea   = width:65 height:80 left:20 bottom:20
AlignBars  = justify

DateFormat = yyyy
Period     = from:1 till:5
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:1 start:1

PlotData=
  color:red width:10
  bar:A from:start till:end
  bar:B from:start till:end
  bar:C from:start till:end
  bar:D from:start till:end
&lt;/timeline&gt;
|
&lt;timeline&gt;
ImageSize  = width:90 height:120
PlotArea   = width:65 height:80 left:20 bottom:20

DateFormat = yyyy
Period     = from:1 till:5
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:1 start:1

PlotData=
  color:red width:10
  bar:A from:start till:end
  bar:B from:start till:end
  bar:C from:start till:end
  bar:D from:start till:end
&lt;/timeline&gt;
|}

{{anchor|backgroundcolors}}
&lt;translate&gt;
=== BackgroundColors === &lt;!--T:444--&gt;

&lt;!--T:445--&gt;
This command allows the specification of background colors for various parts of the chart. Any ''color-id''s specified should be defined first using [[&lt;tvar name=1&gt;#Colors&lt;/tvar&gt;|Colors]].

&lt;!--T:446--&gt;
; canvas&lt;nowiki&gt;:&lt;/nowiki&gt;''color-id'' ''(optional)''
: Specify a background color for the whole image.

&lt;!--T:447--&gt;
; bars&lt;nowiki&gt;:&lt;/nowiki&gt;''color-id'' ''(optional)''
: Specify a background color for all bars.

&lt;!--T:448--&gt;
Examples:
&lt;/translate&gt;

&lt;pre&gt;
BackgroundColors = bars:darkgrey

BackgroundColors = canvas:lightgrey bars:darkgrey

BackgroundColors = canvas:lightgrey
&lt;/pre&gt;

{{anchor|bardata}}
&lt;translate&gt;
=== BarData === &lt;!--T:451--&gt;

&lt;!--T:452--&gt;
This is an optional command which if present determines which bars will be drawn on the chart and in which order.
If it is omitted then bars will be drawn in order of their appearance in command [[&lt;tvar name=1&gt;#PlotData&lt;/tvar&gt;|PlotData]].

&lt;!--T:453--&gt;
For complex timelines with many bars, usage of this command is recommended:
* It will ease reordering of the displayed data.
* Bar names specified in [[&lt;tvar name=1&gt;#PlotData&lt;/tvar&gt;|PlotData]] can be validated against this list, thus preventing typing errors.

&lt;!--T:454--&gt;
; &lt;tvar name=2&gt;bar&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''bar-id'' ''(optional)''
: Defines the bar id. Other commands (notably [[&lt;tvar name=1&gt;#PlotData&lt;/tvar&gt;|PlotData]]) will expect this id for reference. This will also be the label to be shown along the axis, unless attribute ''text'' is present. The bar id should not contain any spaces: use underscores instead, these will be converted to spaces, as with article titles.
&lt;/translate&gt;

; &lt;translate&gt;&lt;!--T:732--&gt; &lt;tvar name=1&gt;bar&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''barset-id'' ''(optional)''&lt;/translate&gt;
: &lt;translate&gt;&lt;!--T:733--&gt; Specifies the barset id to be used for other commands.&lt;/translate&gt; &lt;translate&gt;&lt;!--T:734--&gt; Like the bar id, underscores should be used as opposed to spaces.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:455--&gt;
; &lt;tvar name=2&gt;text&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''some_text'' ''(optional)''
: When specified this specifies the text to be presented along the axis, instead of the bar id. See also rules for [[&lt;tvar name=1&gt;#Text input&lt;/tvar&gt;|text input]]. The text may include one embedded link (see '''Note 1''').

&lt;!--T:456--&gt;
; &lt;tvar name=1&gt;link&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''local-URL'' ''(optional)''
: Specify a web link (see '''Note 1''') (URL). The label along the axis will be shown as a blue clickable link.

&lt;!--T:457--&gt;
'''Notes'''
# Either use attribute ''&lt;tvar name=1&gt;link&lt;/tvar&gt;'', or an embedded link in attribute ''&lt;tvar name=2&gt;text&lt;/tvar&gt;'', not both.

&lt;!--T:458--&gt;
Examples:
&lt;/translate&gt;

&lt;pre&gt;
BarData =
  bar:Japan
  bar:US       text:"United States"  # refer in PlotData to bar "US" but show "United States"
  bar:China    text:[[China]]        # label China will be shown as blue clickable link to the English Wikipedia article about China
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:459--&gt;
The following lines produce the same output (only reference in [[&lt;tvar name=1&gt;#PlotData&lt;/tvar&gt;|PlotData]] changes):
&lt;/translate&gt;

&lt;pre&gt;
bar:US            text:[[United_States]]

bar:US            text:"United States" link:http://www.wikipedia.org/wiki/United_States

bar:United_States                      link:http://www.wikipedia.org/wiki/United_States
&lt;/pre&gt;

{{anchor|colors|Color}}
&lt;translate&gt;
=== Colors === &lt;!--T:462--&gt;

&lt;!--T:463--&gt;
This command allows colors to be defined and coupled to an id (identification tag).
Other commands will refer to colors with the id specified here.
This command expects one or more color definitions, each on a separate indented line.

&lt;!--T:464--&gt;
; &lt;tvar name=1&gt;id&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''color-id''
: Other commands will use this id to specify text, bar or background colors.

&lt;!--T:465--&gt;
; &lt;tvar name=1&gt;value&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''color-space''(''coordinates'')&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:639--&gt;
: Actual color definition. Color values can be either be specified as:&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:640--&gt;
:* ''predefined-color-name'': 32 color constants are predefined and recognized (see the [&lt;tvar name=url&gt;http://ploticus.sourceforge.net/doc/color.html&lt;/tvar&gt; Ploticus color page] where all these constants are defined).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:641--&gt;
:* '''&lt;tvar name=1&gt;rgb&lt;/tvar&gt;('''''red''''','''''green''''','''''blue''''')''': specify 3 numbers between 0 (minimal) and 1 (maximal)&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:642--&gt;
:* '''&lt;tvar name=1&gt;hsb&lt;/tvar&gt;('''''hue''''','''''saturation''''','''''brightness''''')''': specify 3 numbers between 0 and 1.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:643--&gt;
:* '''&lt;tvar name=1&gt;gray&lt;/tvar&gt;('''''value''''')''': specify a number between 0 (black) and 1 (white).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:644--&gt;
: ''Notes''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:645--&gt;
:# 0 and 1 colorspace coordinates must be specified as integers only, intermediate coordinates require a dot as the decimal separator after 0.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:646--&gt;
:# To create RGB or HSV colors please see [&lt;tvar name=url&gt;http://web.bentley.edu/empl/c/ncarter/MA307/color-converter.html&lt;/tvar&gt; RGB/HSB Color converter]&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:647--&gt;
: ''Hexadecimal to rgb()''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:648--&gt;
:: To convert from hexadecimal (#D09916) to rgb (rgb(0.816,0.600,0.086)):&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:649--&gt;
::# Visit [&lt;tvar name=url&gt;http://www.colorhexa.com/&lt;/tvar&gt; ColorHexa], and search for your hexadecimal colour.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:650--&gt;
::# Read the line of text at the start along the lines of "In a RGB color space, hex ... is composed of RR.R% red, GG.G% green and BB.B% blue".&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:651--&gt;
::# Divide the three numbers (RR.R, GG.G and BB.B) by 100, and use the resultant number (between 0 and 1) as the values for rgb().

&lt;!--T:466--&gt;
; &lt;tvar name=1&gt;legend&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''some_text'' ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:652--&gt;
: Specifies the text that should be displayed in the [[&lt;tvar name=1&gt;#Legend&lt;/tvar&gt;|legend]] for this color. If this attribute is omitted no entry will appear in the legend at all.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:653--&gt;
: '''Notes:'''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:654--&gt;
:# See [[&lt;tvar name=1&gt;#Text input&lt;/tvar&gt;|Text Input]] for rules.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:655--&gt;
:# Embedded links are supported in legend texts, see [[&lt;tvar name=1&gt;#Clickable maps&lt;/tvar&gt;|Clickable maps]].

&lt;!--T:467--&gt;
Example:
&lt;/translate&gt;

&lt;pre&gt;
Colors =
  id:war       value:red   legend:War_Period
  id:peace     value:blue  legend:Peace_Time
  id:treaty    value:rgb(0.6,0,0.6)
  id:lightgrey value:gray(0.9)
  id:darkgrey  value:gray(0.1)
&lt;/pre&gt;

&lt;translate&gt;
==== Predefined colors ==== &lt;!--T:468--&gt;
&lt;/translate&gt;

&lt;timeline&gt;
Imagesize = width:393 height:281
PlotArea  = left:5 right:5 top:0 bottom:257
Period    = from:2 till:3 #dummy
TimeAxis  = orientation:horizontal #dummy
Legend    = position:bottom
Colors =
  id:black        value:black        legend:black
  id:tan2         value:tan2         legend:tan2
  id:tan1         value:tan1         legend:tan1
  id:white        value:white        legend:white

  id:pink         value:pink         legend:pink
  id:coral        value:coral        legend:coral
  id:magenta      value:magenta      legend:magenta
  id:claret       value:claret       legend:claret
  id:red          value:red          legend:red

  id:redorange    value:redorange    legend:redorange
  id:orange       value:orange       legend:orange
  id:lightorange  value:lightorange  legend:lightorange

  id:yelloworange value:yelloworange legend:yelloworange
  id:yellow2      value:yellow2      legend:yellow2
  id:yellow       value:yellow       legend:yellow
  id:dullyellow   value:dullyellow   legend:dullyellow

  id:brightgreen  value:brightgreen  legend:brightgreen
  id:green        value:green        legend:green
  id:kelleygreen  value:kelleygreen  legend:kelleygreen
  id:teal         value:teal         legend:teal
  id:drabgreen    value:drabgreen    legend:drabgreen
  id:yellowgreen  value:yellowgreen  legend:yellowgreen
  id:limegreen    value:limegreen    legend:limegreen

  id:skyblue      value:skyblue      legend:skyblue
  id:oceanblue    value:oceanblue    legend:oceanblue
  id:blue         value:blue         legend:blue
  id:brightblue   value:brightblue   legend:brightblue
  id:darkblue     value:darkblue     legend:darkblue

  id:purple       value:purple       legend:purple
  id:lightpurple  value:lightpurple  legend:lightpurple
  id:powderblue   value:powderblue   legend:powderblue
  id:powderblue2  value:powderblue2  legend:powderblue2
  id:lavender     value:lavender     legend:lavender
TextData =
  pos:(0,0) text:c
&lt;/timeline&gt;

&lt;translate&gt;

==== Reference to Colors in HTML ==== &lt;!--T:476--&gt;
&lt;/translate&gt;
{|
|-
|bgcolor="#000000"|&lt;span style="color:white;"&gt;#000000&lt;/span&gt;
|bgcolor="#b29999"|#b29999
|bgcolor="#e5d3c9"|#e5d3c9
|bgcolor="#ffffff"|#ffffff
||&amp;nbsp;
||&amp;nbsp;
||&amp;nbsp;
|-
|bgcolor="#ffcccc"|#ffcccc
|bgcolor="#ff9999"|#ff9999
|bgcolor="#ff4c7f"|#ff4c7f
|bgcolor="#b24c4c"|&lt;span style="color:white;"&gt;#b24c4c&lt;/span&gt;
|bgcolor="#ff0000"|#ff0000
|bgcolor="#dc143c"|#dc143c
||&amp;nbsp;
|-
|bgcolor="#ff7f00"|#ff7f00
|bgcolor="#ff9e23"|#ff9e23
|bgcolor="#ffcc99"|#ffcc99
|bgcolor="#ffd800"|#ffd800
|bgcolor="#eaea00"|#eaea00
|bgcolor="#ffff00"|#ffff00
|bgcolor="#ffe599"|#ffe599
|-
|bgcolor="#00ff00"|#00ff00
|bgcolor="#00b200"|#00b200
|bgcolor="#4c994c"|&lt;span style="color:white;"&gt;#4c994c&lt;/span&gt;
|bgcolor="#007f33"|&lt;span style="color:white;"&gt;#007f33&lt;/span&gt;
|bgcolor="#99cc99"|#99cc99
|bgcolor="#99e599"|#99e599
|bgcolor="#ccffb2"|#ccffb2
|-
|bgcolor="#b2ccff"|#b2ccff
|bgcolor="#007fcc"|#007fcc
|bgcolor="#0066cc"|&lt;span style="color:white;"&gt;#0066cc&lt;/span&gt;
|bgcolor="#0000ff"|&lt;span style="color:white;"&gt;#0000ff&lt;/span&gt;
||&amp;nbsp;
||&amp;nbsp;
||&amp;nbsp;
|-
|bgcolor="#770077"|&lt;span style="color:white;"&gt;#770077&lt;/span&gt;
|bgcolor="#aa4caa"|&lt;span style="color:white;"&gt;#aa4caa&lt;/span&gt;
|bgcolor="#9999ff"|#9999ff
|bgcolor="#b2b2ff"|#b2b2ff
|bgcolor="#ccb2cc"|#ccb2cc
||&amp;nbsp;
||&amp;nbsp;
|-
|}

{{anchor|dateformat}}
&lt;translate&gt;
=== DateFormat === &lt;!--T:478--&gt;

&lt;!--T:479--&gt;
This command defines how dates, specified in other commands, should be interpreted.

&lt;!--T:480--&gt;
Valid date formats are:

&lt;!--T:481--&gt;
; dd/mm/yyyy ''(dates in most English-speaking countries)''
: Dates are interpreted as day/month/year
: '''Note''': this format is only allowed for dates starting from 01/01/1800

&lt;!--T:482--&gt;
; mm/dd/yyyy ''(dates in US)''
: Dates are interpreted as month/day/year
: '''Note''': this format is only allowed for dates starting from 01/01/1800

&lt;!--T:483--&gt;
; yyyy (this is the default format)
: This deals with [[:en:integer|integer]]s from -9999 to 9999 without leading zeroes

&lt;!--T:484--&gt;
''Note'' that the following formats are still not supported:
* the ISO 8601 standard format: '''yyyy-mm-dd''' (standard in Canada).
* the alternate Central-European standard format: '''yyyy.mm.dd'''.
* the date formats with month but without day: '''mm/yyyy''' or ISO 8601 '''yyyy-mm'''.
* the date formats with quarters: '''qq/yyyy''' or ISO 8601 '''yyyy-Qq'''.
* other date element separators, multilingual abbreviated month names...

&lt;!--T:485--&gt;
Example:
&lt;/translate&gt;
&lt;pre&gt;
DateFormat = mm/dd/yyyy
&lt;/pre&gt;

{{anchor|define}}
&lt;translate&gt;
=== Define === &lt;!--T:486--&gt;

&lt;!--T:487--&gt;
This command allows definition of text constants, i.e. shorthands for pieces of script code that occur multiple times.
Text constants should always start with a '''$''' (dollar sign).

&lt;!--T:488--&gt;
Example:
&lt;/translate&gt;

&lt;pre&gt;
Define $broad       = width:30
Define $narrow      = width:10
Define $bardefaults = $broad fontsize:S
&lt;/pre&gt;

{{anchor|imagesize-(mandatory)|ImageSize}}
&lt;translate&gt;
=== ImageSize (mandatory) === &lt;!--T:489--&gt;

&lt;!--T:490--&gt;
This command defines the overall size of the final image. Specify values in [[&lt;tvar name=1&gt;#Measurements&lt;/tvar&gt;|absolute measurements]].

&lt;!--T:491--&gt;
; &lt;tvar name=2&gt;width&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''pixels/auto''
: Width of final image in pixels: maximum is 1600 pixels, minimum is 25
: (can also be set to '''auto''' if the [[&lt;tvar name=1&gt;#TimeAxis (mandatory&lt;/tvar&gt;|TimeAxis]] direction is set to '''vertical''').

&lt;!--T:492--&gt;
; &lt;tvar name=2&gt;height&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''pixels/auto''
: Height of final image in pixels: maximum is 1200 pixels, minimum is 25
: (can also be set to '''auto''' if the [[&lt;tvar name=1&gt;#TimeAxis (mandatory&lt;/tvar&gt;|TimeAxis]] direction is set to '''horizontal''').

&lt;!--T:493--&gt;
; &lt;tvar name=1&gt;barincrement&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''pixels''
: Amount in pixels that should be added to the image size for each bar specified
: (only allowed in combination with width:auto or height:auto, and then mandatory).

&lt;!--T:494--&gt;
For maximum flexibility you can let the script calculate the height or width of the image, based on the number of bars and the amount in pixels to add per bar. Specify '''&lt;tvar name=1&gt;height:auto&lt;/tvar&gt;''' (for horizontal time axis) or '''&lt;tvar name=2&gt;width:auto&lt;/tvar&gt;''' (for vertical time axis).
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:495--&gt; This is especially helpful when the number of bars in a timeline is likely to change over time again and again.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:720--&gt; Or to ensure equal distances between bars in images with many narrow bars where differences in amount of white space would soon be noticed (see for a real example [[:en:Template:Vocal and instrumental pitch ranges|:en:Template:Vocal and instrumental pitch ranges]]).&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:721--&gt; Or to make sure several related timelines always use the same distance between bars, no matter how many bars each contains (see for a real example [[:en:List of popes (graphical)|:en:List of popes (graphical)]].&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:722--&gt; In short it is a good idea most of the time.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:496--&gt;
Examples:
&lt;/translate&gt;

&lt;pre&gt;
ImageSize = width:800 height:600

ImageSize = width:800 height:auto barincrement:30
&lt;/pre&gt;

{{anchor|legend}}
&lt;translate&gt;
=== Legend === &lt;!--T:498--&gt;

&lt;!--T:499--&gt;
A legend will only be shown when this command is present, and at least one of the [[&lt;tvar name=1&gt;#Colors&lt;/tvar&gt;|colors]] has the &lt;tvar name=2&gt;&lt;code&gt;legend:&lt;/code&gt;&lt;/tvar&gt; attribute specified.
There are several ways to define the appearance and position of the legend. Some attributes are mutually exclusive (see below).

&lt;!--T:500--&gt;
; &lt;tvar name=1&gt;orientation&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''hor/ver'' ''(optional)''
: Specify &lt;tvar name=2&gt;hor[izontal]&lt;/tvar&gt; or &lt;tvar name=3&gt;ver[tical]&lt;/tvar&gt; (default).
: ''restriction'': orientation = '&lt;tvar name=4&gt;horizontal&lt;/tvar&gt;' and position = '&lt;tvar name=5&gt;right&lt;/tvar&gt;' are mutually exclusive

&lt;!--T:501--&gt;
; &lt;tvar name=1&gt;position&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''top/bottom/right'' ''(optional)''
: Defines placement of the legend relative to the chart area. Specify top, bottom (default) or right.
: ''restriction'': orientation = '&lt;tvar name=2&gt;horizontal&lt;/tvar&gt;' and position = '&lt;tvar name=3&gt;right&lt;/tvar&gt;' are mutually exclusive

&lt;!--T:502--&gt;
; &lt;tvar name=1&gt;columns&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''integer'' ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:723--&gt;
: Specify 1, 2, 3 or 4.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:724--&gt;
: When this attribute is omitted the number of columns is determined as follows:&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:725--&gt;
:* '''&lt;tvar name=1&gt;orientation horizontal&lt;/tvar&gt;''': Attribute columns does not apply here. All entries will be on the same line.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:726--&gt;
:* '''&lt;tvar name=1&gt;orientation vertical&lt;/tvar&gt;''':&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:727--&gt;
:** '''&lt;tvar name=1&gt;position right&lt;/tvar&gt;''': All entries will be in one column&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:728--&gt;
:** '''&lt;tvar name=1&gt;position top&lt;/tvar&gt;''' or '''&lt;tvar name=2&gt;bottom&lt;/tvar&gt;''': The number of columns depends on the number of entries to be shown:&lt;br /&gt;1-5 entries: 1 column, 6-10 entries: 2 columns, 11 or more entries: 3 columns.

&lt;!--T:503--&gt;
'''''Tip:''' you may consider omitting the following parameters at first, and only add them when defaults settings are not satisfactory.''

&lt;!--T:504--&gt;
; &lt;tvar name=1&gt;columnwidth&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' ''(optional)''
: Defines the distance between columns. You can specify an [[&lt;tvar name=2&gt;#Measurements&lt;/tvar&gt;|absolute distance]] or a relative distance (as percentage of the image width).
: ''restriction'': this parameter is ignored when columns = 1 is defined or implied.

&lt;!--T:505--&gt;
; &lt;tvar name=1&gt;left&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' ''(optional)''
: Defines the distance between the left side of the legend and the left side of the image. You can specify an absolute distance or a relative distance (as percentage of the page width).

&lt;!--T:506--&gt;
; &lt;tvar name=1&gt;top&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' ''(optional)''
: Defines the distance between the top of the legend and the bottom of the image. You can specify an absolute distance or a relative distance (as percentage of the page height).

&lt;!--T:507--&gt;
Examples:
&lt;/translate&gt;

&lt;pre&gt;
Legend = orientation:vertical position:bottom columns:3 columnwidth:140

Legend = orientation:horizontal position:bottom

Legend = left:100 top:120 columns:3
&lt;/pre&gt;

{{anchor|linedata}}
&lt;translate&gt;
=== LineData === &lt;!--T:510--&gt;

&lt;!--T:511--&gt;
Some timelines extend over several clearly distinct periods. A line demarcating these periods may serve as a visual aid.

&lt;!--T:512--&gt;
; &lt;tvar name=1&gt;at&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time''
: Draws a line perpendicular to the time axis (between minimum and maximal positions, see also below).
: Specify the date/year where the line should be drawn, in compliance with the specified [[&lt;tvar name=2&gt;#DateFormat&lt;/tvar&gt;|DateFormat]].

&lt;!--T:513--&gt;
; &lt;tvar name=1&gt;color&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''color-id'' ''(optional)''
: Specify the color in which the line should drawn.
: '''Note''': The color id specified should be defined first with command [[&lt;tvar name=2&gt;#Colors&lt;/tvar&gt;|Colors]].

&lt;!--T:514--&gt;
; &lt;tvar name=1&gt;layer&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''front/back'' ''(optional)''
: Specify front or back (default). Defines whether the line should appear in front of or behind all time segment bars.

&lt;!--T:515--&gt;
; &lt;tvar name=1&gt;width&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' ''(optional)''
: Specify value between 0.1 (very thin) and 10 (very thick); the default value is 1

&lt;!--T:516--&gt;
'''Advanced positioning options'''

&lt;!--T:517--&gt;
You can draw lines in any direction. Only in rare cases the following extra attributes may be needed for full flexibility:

&lt;!--T:656--&gt;
# ''Parallel to the time axis'' with arbitrary start and stop times:&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:657--&gt;
#; &lt;tvar name=1&gt;atpos&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''position''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:658--&gt;
#; &lt;tvar name=1&gt;from&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time'' ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:659--&gt;
#; &lt;tvar name=1&gt;till&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time'' ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:660--&gt;
#: Specify the [[&lt;tvar name=1&gt;#Measurement&lt;/tvar&gt;|absolute or relative position]] on the axis orthogonal to the [[&lt;tvar name=2&gt;#TimeAxis (mandatory)&lt;/tvar&gt;|TimeAxis]].&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:661--&gt;
#: Specify the dates/years between which the line should be drawn, in compliance with the specified [[&lt;tvar name=1&gt;#DateFormat&lt;/tvar&gt;|DateFormat]] (default is the full range of time as set in the mandatory [[&lt;tvar name=2&gt;#Period (mandatory)&lt;/tvar&gt;|Period]] command, see also below).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:662--&gt;
# ''Orthogonal to the time axis'' with arbitrary start and stop positions:&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:663--&gt;
#; at&lt;nowiki&gt;:&lt;/nowiki&gt;''time''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:664--&gt;
#; frompos&lt;nowiki&gt;:&lt;/nowiki&gt;''position'' ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:665--&gt;
#; tillpos&lt;nowiki&gt;:&lt;/nowiki&gt;''position'' ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:666--&gt;
#: Specify the date/year where the line should be drawn, in compliance with the specified [[&lt;tvar name=1&gt;#DateFormat&lt;/tvar&gt;|DateFormat]].&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:667--&gt;
#: Specify the start and stop [[&lt;tvar name=1&gt;#Measurement&lt;/tvar&gt;|absolute or relative positions]] on the axis orthogonal to the [[&lt;tvar name=2&gt;#TimeAxis (mandatory)&lt;/tvar&gt;|TimeAxis]] (default is the full length of the [[&lt;tvar name=3&gt;#DrawArea&lt;/tvar&gt;|DrawArea]]).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:668--&gt;
#: Draws a line orthogonal to the time axis (default at full range of time as set in the mandatory [[&lt;tvar name=1&gt;#Period (mandatory)&lt;/tvar&gt;|Period]] command, see also below).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:669--&gt;
# ''In any direction'' with arbitrary start and stop points:&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:670--&gt;
#; points&lt;nowiki&gt;:&lt;/nowiki&gt;(''x1'',''y1'')(''x2'',''y2'')&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:671--&gt;
#: Specify the [[&lt;tvar name=1&gt;#Measurement&lt;/tvar&gt;|absolute or relative positions]] as coordinates, independently of the direction of the time axis.

&lt;!--T:518--&gt;
Example:
&lt;/translate&gt;

&lt;timeline&gt;
ImageSize  = width:200 height:120
PlotArea   = left:20 right:10 top:10 bottom:20
TimeAxis   = orientation:horizontal
AlignBars  = justify
Colors =
  id:gray1 value:gray(0.3)
  id:gray2 value:gray(0.5)
  id:gray3 value:gray(0.7)
Period     = from:0 till:10
ScaleMajor = unit:year increment:1 start:0

PlotData =
  bar:X color:gray1 width:15
  from:start till:end
  bar:Y color:gray2
  from:start till:end
  bar:Z color:gray3
  from:start till:end

LineData =
  layer:front
  at:1                         color:yellow
  at:2                         color:orange  layer:back
  at:4  frompos:50 tillpos:105 color:green
  from:5 till:8 atpos:50       color:red
  points:(100,20)(170,105)     color:blue    width:3
&lt;/timeline&gt;

&lt;syntaxhighlight lang="perl" line style="font-size:90%"&gt;
LineData =
  layer:front                                            # all lines in front of bars unless stated otherwise
  at:1                         color:yellow              # perpendicular to time axis full length
  at:2                         color:orange  layer:back  # perpendicular to time axis full length but behind bars
  at:4  frompos:50 tillpos:105 color:green               # perpendicular to time axis, with specified start and stop points
  from:5 till:8 atpos:50       color:red                 # parallel to time axis
  points:(100,20)(170,105)     color:blue    width:3     # from one arbitrary absolute position to another, extra thick
&lt;/syntaxhighlight&gt;

{{anchor|period-(mandatory)|Period}}
&lt;translate&gt;

=== &lt;tvar name=1&gt;Period&lt;/tvar&gt; (mandatory) === &lt;!--T:522--&gt;

&lt;!--T:523--&gt;
Defines the time period that will be displayed in the chart. Both parameters are mandatory. Specify dates in compliance with specified [[&lt;tvar name=1&gt;#DateFormat&lt;/tvar&gt;|DateFormat]].

&lt;!--T:524--&gt;
; &lt;tvar name=1&gt;from&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time''
: Timeline starts here. The specified value can be referenced as start in commands like [[&lt;tvar name=2&gt;#PlotData&lt;/tvar&gt;|PlotData]] and [[&lt;tvar name=3&gt;#TextData&lt;/tvar&gt;|TextData]].

&lt;!--T:525--&gt;
; &lt;tvar name=1&gt;till&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time''
: Time ends here. The specified value can be referenced as end in other commands.

&lt;!--T:526--&gt;
Example:
&lt;pre&gt;
Period = from:01/09/1939 till:02/09/1945
&lt;/pre&gt;
&lt;/translate&gt;

{{anchor|plotarea-(mandatory)}}
&lt;translate&gt;
=== PlotArea (mandatory) === &lt;!--T:527--&gt;

&lt;!--T:528--&gt;
; &lt;tvar name=1&gt;left&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance''
: Margin between left side of image and left side of plot area. Specify value in absolute or relative measurements.

&lt;!--T:529--&gt;
; &lt;tvar name=1&gt;top&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance''
: Margin between top of image and top of plot area. Specify value in absolute or relative measurements.

&lt;!--T:530--&gt;
; &lt;tvar name=1&gt;right&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' ''(recommended)''
: Margin between right side of image and right side of plot area. Specify value in absolute or relative measurements.
: This attribute and the deprecated ''&lt;tvar name=2&gt;width&lt;/tvar&gt;'' attribute are mutually exclusive.

&lt;!--T:531--&gt;
; &lt;tvar name=1&gt;bottom&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' ''(recommended)''
: Margin between bottom of image and bottom of plot area. Specify value in absolute or relative measurements.
: This attribute and the deprecated ''&lt;tvar name=2&gt;height&lt;/tvar&gt;'' attribute are mutually exclusive.
: The minimum value for this attribute is 20 pixels if you have specified legend labels (see [[&lt;tvar name=3&gt;#Legend&lt;/tvar&gt;|Legend]]).

&lt;!--T:532--&gt;
; &lt;tvar name=1&gt;&lt;s&gt;width&lt;/s&gt;&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' ''(deprecated)''
: Specify value in [[&lt;tvar name=2&gt;#Measurements&lt;/tvar&gt;|absolute or relative measurements]].
: '''do not use anymore''', see the ''&lt;tvar name=3&gt;right&lt;/tvar&gt;'' attribute above.

&lt;!--T:533--&gt;
; &lt;tvar name=1&gt;&lt;s&gt;height&lt;/s&gt;&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' ''(deprecated)''
: Specify value in absolute or relative measurements.
: '''do not use anymore''', see the ''&lt;tvar name=2&gt;bottom&lt;/tvar&gt;'' attribute above.

&lt;!--T:534--&gt;
'''Notes:'''
# The ''&lt;tvar name=1&gt;width&lt;/tvar&gt;'' and ''&lt;tvar name=2&gt;height&lt;/tvar&gt;'' attributes are only retained for downward compatibility. Earlier a plot area could only be defined by its total ''&lt;tvar name=3&gt;width&lt;/tvar&gt;'' and ''&lt;tvar name=4&gt;height&lt;/tvar&gt;'', and ''&lt;tvar name=5&gt;left&lt;/tvar&gt;'' and ''&lt;tvar name=6&gt;bottom&lt;/tvar&gt;'' margins.
# Now you can specify all four margins, and are advised to do so, and not use ''&lt;tvar name=7&gt;width&lt;/tvar&gt;'' and ''&lt;tvar name=8&gt;height&lt;/tvar&gt;'' attributes anymore.
# The advantage is added flexibility: when you change the overall image size, you do not need to adjust the plotarea definition as well. This is even more important when the image size is calculated automatically (see [[&lt;tvar name=9&gt;#ImageSize (mandatory)&lt;/tvar&gt;|ImageSize]]).

&lt;!--T:535--&gt;
Example:
&lt;/translate&gt;

&lt;pre&gt;
PlotArea = left:40 bottom:60 top:10 right:10 # e.g. extra space to the left and below the plot area for axis labels and legend
&lt;/pre&gt;

{{anchor|plotdata}}
&lt;translate&gt;
=== PlotData === &lt;!--T:536--&gt;

&lt;!--T:537--&gt;
Used to define bars (symbolizing a time period), and add text next to these bars on a specific position.

&lt;!--T:538--&gt;
For texts which are not related to a certain period or date/year or which require extensive formatting use command [[&lt;tvar name=1&gt;#TextData&lt;/tvar&gt;|TextData]].

&lt;!--T:539--&gt;
Attributes ''&lt;tvar name=1&gt;text&lt;/tvar&gt;'', ''&lt;tvar name=2&gt;at&lt;/tvar&gt;'', ''&lt;tvar name=3&gt;from&lt;/tvar&gt;'' and ''&lt;tvar name=4&gt;till&lt;/tvar&gt;'' always apply only to the line on which they occur. All other attributes, when not combined with one of these four, act as default for the remainder of the command block or until a new default is specified, and may be overruled for a single line. See [[&lt;tvar name=5&gt;#Parameters vs data items&lt;/tvar&gt;|Parameters vs data items]] for more info and an example.

&lt;!--T:540--&gt;
PlotData accepts a lot of attributes, some of which are mutually exclusive. These attributes can be grouped as follows:
* Positional attributes
* Bar related attributes
* Text attributes
* Marker attribute

==== Positional attributes ==== &lt;!--T:541--&gt;

&lt;!--T:542--&gt;
; &lt;tvar name=1&gt;at&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time'' ''(applies only to current line in data block)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:699--&gt;
: Specifies at which date/year a text or [[&lt;tvar name=1&gt;#Marker attributes&lt;/tvar&gt;|marker]] should be positioned. Depending on attribute '''&lt;tvar name=2&gt;align&lt;/tvar&gt;''' the text either starts, ends or is centered at this position. Use date/year format as specified in [[&lt;tvar name=3&gt;#DateFormat&lt;/tvar&gt;|DateFormat]] or specify ''&lt;tvar name=4&gt;start&lt;/tvar&gt;'' or ''&lt;tvar name=5&gt;end&lt;/tvar&gt;'' which refers to time frame defined by command [[&lt;tvar name=6&gt;#Period&lt;/tvar&gt;|Period]].&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:700--&gt;
: ''Note:'' This attribute can not be combined with attributes '''&lt;tvar name=1&gt;from&lt;/tvar&gt;''' and '''&lt;tvar name=2&gt;till&lt;/tvar&gt;'''.

&lt;!--T:543--&gt;
; &lt;tvar name=1&gt;from&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time'' ''(applies only to current line in data block)''
; &lt;tvar name=2&gt;till&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time'' ''(applies only to current line in data block)''
: Specifies at which date/year a bar should start and end. Use date/year format as specified in [[&lt;tvar name=3&gt;#DateFormat&lt;/tvar&gt;|DateFormat]] or specify ''start'' which refers to time frame defined by command Period.
: ''Note:'' These two attributes should be used in combination and can not be combined with attribute '''&lt;tvar name=4&gt;at&lt;/tvar&gt;'''.

&lt;!--T:544--&gt;
; &lt;tvar name=1&gt;shift&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;(''x'',''y'') ''(optional)''
: Specifies a horizontal and vertical displacement in [[&lt;tvar name=2&gt;#Measurements&lt;/tvar&gt;|absolute measurements]] for a text. This allows:
:* Texts to be shifted to avoid overlaps between successive bars;
:* Placement of text beside a bar, instead of on top of it.

&lt;!--T:545--&gt;
Examples:
&lt;/translate&gt;

&lt;pre&gt;
PlotData=
  bar:Japan from:start      till:19/02/1945 color:JT
  bar:Japan from:19/02/1945 till:14/03/1945 color:AI
  bar:Japan from:02/09/1945 till:end        color:AO

  at:07/12/1941 shift:(0,-15) text:"&lt;-- WW2 reaches Asia"
&lt;/pre&gt;

&lt;translate&gt;
==== Bar related attributes ==== &lt;!--T:547--&gt;

&lt;!--T:548--&gt;
; &lt;tvar name=1&gt;bar&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''bar-id''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:701--&gt;
: Specifies to which bar all other attributes apply (including the optional marker attributes and text attributes).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:702--&gt;
: The ''bar-id'' specified here will also be the text presented along the axis, next to the bar.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:703--&gt;
:* When command [[&lt;tvar name=1&gt;#BarData&lt;/tvar&gt;|BarData]] has '''not''' been used, bars will be drawn in the order in which they occur in any [[&lt;tvar name=2&gt;#PlotData&lt;/tvar&gt;|PlotData]] data block.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:704--&gt;
:* When command [[&lt;tvar name=1&gt;#BarData&lt;/tvar&gt;|BarData]] has been used, bars will presented in the order specified there, also the ''bar-id'' specified here will be validated against that list. Also the text presented along the axis will depend on the definition in BarData.

&lt;!--T:549--&gt;
; &lt;tvar name=1&gt;barset&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''barset-id'' (''optional'')&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:705--&gt;
: Restarts the bar display "from the top", allowing multiple bars on the same line.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:706--&gt;
: The specified ''barset-id'' must have been declared in [[&lt;tvar name=1&gt;#BarData&lt;/tvar&gt;|BarData]].&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:707--&gt;
: The default barset is anonymous and needs not be specified if there's no [[&lt;tvar name=1&gt;#BarData&lt;/tvar&gt;|BarData]].&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:708--&gt;
: Blank lines may be added to skip over lines that you do not wish to add to with declarations such as &lt;tvar name=1&gt;&lt;code&gt;at:1234&lt;/code&gt;&lt;/tvar&gt; with no further attributes. Multiple bars may then be specified on after this attribute.

&lt;!--T:550--&gt;
; &lt;tvar name=1&gt;color&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''color-id'' (''optional'')
: Specifies the color is which the bar should be drawn.
: The color id specified should be defined first with command [[&lt;tvar name=2&gt;#Colors&lt;/tvar&gt;|Colors]].
: The default value will be the same color as the previously specified bar.

&lt;!--T:551--&gt;
; &lt;tvar name=1&gt;width&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' (''optional'')
: Specifies the width of the bar in [[&lt;tvar name=2&gt;#Measurements&lt;/tvar&gt;|absolute or relative measurements]].
: The default value will be computed according to the total size of the [[&lt;tvar name=3&gt;#PlotArea (mandatory)&lt;/tvar&gt;|PlotArea]], and the maximum number of bars in all barsets (including the default anonymous barset).

&lt;!--T:552--&gt;
Example:
&lt;/translate&gt;

&lt;pre&gt;
BarData=
  bar:US text:United States
  bar:SB text:Sea Battles

Colors=
  id:US value:blue legend:United_States
  id:SB value:rgb(0.8,0,0.7) legend:Sea_Battles

PlotData=
  width:0.3                                                            # see note 1
  bar:SB     from:07/08/1942 till:09/02/1943 text:Guadalcanal color:SB # see note 2
  bar:US     from:start      till:end color:US                         # see note 3
  bar:Midway from:start      till:end color:US                         # see note 4
  bar:US     at:07/12/1941   text:7/12 Pearl Harbour                   # see note 5
&lt;/pre&gt;

&lt;translate&gt;&lt;!--T:736--&gt; Notes:&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:737--&gt; this line establishes a default bar width for the remainder of the data block&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:738--&gt; this line specifies a bar to be drawn and a text to placed on it at the same time&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:739--&gt; bar US will be drawn before bar SB, even when specified after it, because command [[&lt;tvar name=1&gt;#BarData&lt;/tvar&gt;|BarData]] determines the sequence&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:740--&gt; bar Midway will be rejected because it is not declared with command [[&lt;tvar name=1&gt;#BarData&lt;/tvar&gt;|BarData]]&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:741--&gt; the last line will not result in a bar being plotted, it merely specifies on which bar the text should be placed&lt;/translate&gt;

&lt;translate&gt;
==== Text attributes (optional) ==== &lt;!--T:555--&gt;

&lt;!--T:556--&gt;
; &lt;tvar name=1&gt;text&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''some_text'' ''(applies only to current line in data block)''
: Defines a text that should be plotted on or near a bar.
: '''Notes'''
:# See also [[&lt;tvar name=2&gt;#Text Input&lt;/tvar&gt;|Text Input]] for rules.
:# The text may include embedded links (see '''Notes 1 &amp; 2''') for use in clickable maps.
:# See [[&lt;tvar name=3&gt;#Clickable maps&lt;/tvar&gt;|Clickable maps]] for information about texts with embedded links and limitations.

&lt;!--T:557--&gt;
; &lt;tvar name=1&gt;textcolor&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''color-id'' ''(optional)''
: Defines the color of the text. The color id specified should be defined first with command [[&lt;tvar name=2&gt;#Colors&lt;/tvar&gt;|Colors]]. When not specified color black will be assumed.

&lt;!--T:558--&gt;
; &lt;tvar name=1&gt;fontsize&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''integer/tag'' ''(optional)''
: Specify a point size between 6 and 30, or (preferably) one of tags XS, S (default), M, L or XL. See [[&lt;tvar name=2&gt;#Font support&lt;/tvar&gt;|Font support]] for more details.

&lt;!--T:559--&gt;
; &lt;tvar name=1&gt;anchor&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''middle/from/till'' ''(optional)''
: Specify the anchor position. If not defined, the anchor position is either explicitly set with the attribute at, or implicitly with the attributes from and till. In the latter case the text will be positioned in the middle of the defined bar segment.

&lt;!--T:560--&gt;
; &lt;tvar name=1&gt;align&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''center/left/right'' ''(optional)''
: Specify &lt;tvar name=2&gt;center&lt;/tvar&gt; (default), &lt;tvar name=3&gt;left&lt;/tvar&gt; or &lt;tvar name=4&gt;right&lt;/tvar&gt;.

&lt;!--T:561--&gt;
; &lt;tvar name=1&gt;link&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''URL'' ''(optional, applies only to current line in data block)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:709--&gt;
: Specify a web link (see '''Note 1''') (URL) for use in clickable maps. The text will be shown as a blue clickable link.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:710--&gt;
: '''Notes'''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:711--&gt;
:# This attribute can only be used with the '''&lt;tvar name=1&gt;text&lt;/tvar&gt;''' attribute.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:712--&gt;
:# Either use attribute link, or an embedded link in attribute text, not both.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:713--&gt;
:# On PNG images rendered as clickable maps, only one clickable link will be shown per text segment: text with line breaks (~) constitutes several segments.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:714--&gt;
:# See [[&lt;tvar name=1&gt;#Clickable maps&lt;/tvar&gt;|Clickable maps]] for information about texts with embedded links and limitations.

&lt;!--T:562--&gt;
Example:
&lt;/translate&gt;

&lt;pre&gt;
PlotData=
   bar:US at:07/12/1941 align:left textcolor:black fontsize:XS text:7/12 [[Pearl Harbour]]
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:563--&gt;
produces the same result as:
&lt;/translate&gt;

&lt;pre&gt;
PlotData=
   bar:US at:07/12/1941 align:left textcolor:black fontsize:XS text:"7/12 Pearl Harbour" link:http://www.wikipedia.org/wiki/Pearl_Harbour
&lt;/pre&gt;

{{anchor|Marker attributes}}
&lt;translate&gt;
==== Marker attribute (optional) ==== &lt;!--T:565--&gt;

&lt;!--T:566--&gt;
; &lt;tvar name=1&gt;mark&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;(''symbol'',''color-id'')
: Places a marker in a bar at the specified position.
:* The only value for ''symbol'' supported to date is '''&lt;tvar name=2&gt;line&lt;/tvar&gt;'''.
:* The ''color-id'' specified should be defined first with command [[&lt;tvar name=3&gt;#Colors&lt;/tvar&gt;|Colors]]. When not specified color black will be assumed.

&lt;!--T:567--&gt;
Example:
&lt;pre&gt;
PlotData=
  bar:test width:15 color:red
  from:1900 till:2000
  at:1990 mark:(line,white)
&lt;/pre&gt;

&lt;!--T:568--&gt;
will be shown as:
&lt;/translate&gt;

&lt;timeline&gt;
ImageSize  = width:140 height:60
PlotArea   = width:100 height:30 left:20 bottom:30
TimeAxis   = orientation:horizontal
DateFormat = yyyy
Period     = from:1900 till:2000
AlignBars  = early
ScaleMajor = unit:year increment:50 start:1900
Colors =
  id:canvas value:rgb(1,1,0.85)
BackgroundColors = canvas:canvas
PlotData =
  width:15 color:red
  bar:test from:1900 till:2000
  bar:test at:1990 mark:(line,white)
&lt;/timeline&gt;

{{anchor|scalemajor}}
&lt;translate&gt;
=== ScaleMajor === &lt;!--T:569--&gt;

&lt;!--T:570--&gt;
This command divides the timeline into smaller periods, either
* Graphically, through thin vertical or horizontal lines in the chart
* Textually, through stubs in the time axis, below or to the left of the chart
* Both graphically and textually

&lt;!--T:571--&gt;
; &lt;tvar name=1&gt;gridcolor&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''color-id'' ''(optional)''
: Defines the color for the grid lines.
: When this attribute is omitted no grid lines will be drawn.
: The ''color-id'' specified should be defined first with command [[&lt;tvar name=2&gt;#Colors&lt;/tvar&gt;|Colors]].

&lt;!--T:572--&gt;
; &lt;tvar name=1&gt;unit&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time-unit'' ''(optional)''
: Specifies the time unit by which the grid spacing is incremented.
: Specify '''day''', '''month''' or '''year''' (default).
: When [[&lt;tvar name=2&gt;#DateFormat&lt;/tvar&gt;|DateFormat]] = '''yyyy''' is specified, only unit '''year''' is allowed.

&lt;!--T:573--&gt;
; &lt;tvar name=1&gt;increment&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''integer'' ''(optional)''
: Specifies the (non zero) number of units by which the grid spacing is incremented.
: The default increment is '''1'''.

&lt;!--T:574--&gt;
; &lt;tvar name=1&gt;start&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time'' ''(optional)''
: Specifies where the first grid line and/or stub should be displayed.
: Defaults to start of defined [[&lt;tvar name=2&gt;#Period&lt;/tvar&gt;|Period]].

&lt;!--T:575--&gt;
'''Note''': the orientation of the lines and/or placement of the stubs depends on the orientation of the [[&lt;tvar name=1&gt;#TimeAxis (mandatory)&lt;/tvar&gt;|TimeAxis]].

&lt;!--T:576--&gt;
Examples:
&lt;/translate&gt;

&lt;pre&gt;
ScaleMajor = gridcolor:red start:1940

ScaleMajor = gridcolor:red unit:month increment:3 start:01/09/1939
&lt;/pre&gt;

{{anchor|scaleminor}}
&lt;translate&gt;
=== ScaleMinor === &lt;!--T:578--&gt;

&lt;!--T:579--&gt;
This command defines a further subdivision of the timescale (see [[&lt;tvar name=1&gt;#ScaleMajor&lt;/tvar&gt;|ScaleMajor]] for attributes syntax).

&lt;!--T:580--&gt;
Example:
&lt;pre&gt;
ScaleMajor = grid:red  unit:year  increment:1 start:01/01/1940
ScaleMinor = grid:blue unit:month increment:3 start:01/10/1939
&lt;/pre&gt;
&lt;/translate&gt;

{{anchor|textdata}}
&lt;translate&gt;
=== TextData === &lt;!--T:581--&gt;

&lt;!--T:582--&gt;
Used to define a text block that can be positioned anywhere on the chart.

&lt;!--T:583--&gt;
; &lt;tvar name=1&gt;text&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''some_text''
: The actual text.
: See also [[&lt;tvar name=2&gt;#Text input&lt;/tvar&gt;|Text Input]] for rules.
: The text may include [[&lt;tvar name=3&gt;#Clickable maps&lt;/tvar&gt;|embedded links]] (see also '''Notes 1 &amp; 2''').

&lt;!--T:584--&gt;
; &lt;tvar name=2&gt;&lt;nowiki&gt;pos:&lt;/nowiki&gt;&lt;/tvar&gt;(''x'',''y'')
: Defines the top-left corner of the text block in [[&lt;tvar name=1&gt;#Measurements&lt;/tvar&gt;|absolute or relative measurements]].

&lt;!--T:585--&gt;
; &lt;tvar name=1&gt;&lt;nowiki&gt;link:&lt;/nowiki&gt;&lt;/tvar&gt;''URL'' ''(optional)''
: Specify a web link (see '''Note 1''') for use in clickable maps.
: The label along the axis will be shown as a blue clickable link.

&lt;!--T:586--&gt;
; &lt;tvar name=1&gt;&lt;nowiki&gt;textcolor:&lt;/nowiki&gt;&lt;/tvar&gt;''color-id'' ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:679--&gt;
: Defines the color of the text to draw.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:680--&gt;
: The ''color-id'' specified should be defined first using [[&lt;tvar name=1&gt;#Colors&lt;/tvar&gt;|Colors]].&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:681--&gt;
: When not specified, the color is black.

&lt;!--T:587--&gt;
; &lt;nowiki&gt;fontsize:&lt;/nowiki&gt;''integer/tag'' ''(optional)''
: Specify a point size between 6 and 30, or (preferably) one of tags '''&lt;tvar name=1&gt;XS&lt;/tvar&gt;''', '''&lt;tvar name=2&gt;S&lt;/tvar&gt;''' (default), '''&lt;tvar name=3&gt;M&lt;/tvar&gt;''', '''&lt;tvar name=4&gt;L&lt;/tvar&gt;''' or '''&lt;tvar name=5&gt;XL&lt;/tvar&gt;''' (see [[&lt;tvar name=6&gt;#Font support&lt;/tvar&gt;|Font support]] for more details).

&lt;!--T:588--&gt;
; &lt;tvar name=1&gt;&lt;nowiki&gt;tabs:&lt;/nowiki&gt;&lt;/tvar&gt;(''x&lt;sub&gt;1&lt;/sub&gt;''-''alignment&lt;sub&gt;1&lt;/sub&gt;'',''x&lt;sub&gt;2&lt;/sub&gt;''-''alignment&lt;sub&gt;2&lt;/sub&gt;...'') ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:682--&gt;
: Defines position and alignment for tab character: '''^''' (caret).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:683--&gt;
: Specify multiple tab settings as a comma-separated list of ''x&lt;sub&gt;n&lt;/sub&gt;'''''-'''''align&lt;sub&gt;n&lt;/sub&gt;'' where&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:684--&gt;
:* ''x&lt;sub&gt;n&lt;/sub&gt;'' is the horizontal displacement in [[&lt;tvar name=1&gt;#Measurements&lt;/tvar&gt;|absolute measurements]] from the left side of the text;&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:685--&gt;
:* ''alignment&lt;sub&gt;n&lt;/sub&gt;'' is the alignment for the text segment (specify '''&lt;tvar name=1&gt;center&lt;/tvar&gt;''', '''&lt;tvar name=2&gt;left&lt;/tvar&gt;''' or '''&lt;tvar name=3&gt;right&lt;/tvar&gt;''').

&lt;!--T:589--&gt;
; &lt;tvar name=1&gt;&lt;nowiki&gt;lineheight:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:686--&gt;
: Defines spacing between consecutive lines in [[&lt;tvar name=1&gt;#Measurements&lt;/tvar&gt;|absolute measurements]].&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:687--&gt;
: Specify a value up to 40 pixels (or 0.4in).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:688--&gt;
: When not specified a default lineheight will be based on the font size currently in use.

&lt;!--T:590--&gt;
'''Notes''':
# Either use attribute ''link'', or an embedded link in attribute ''text'', not both.
# On PNG images only one clickable link will be shown per text segment (text with tabs (^) constitutes several segments).&lt;!-- is this strictly relevant here? --&gt;

&lt;!--T:591--&gt;
Example:
&lt;/translate&gt;

&lt;syntaxhighlight lang="moin"&gt;
TextData =
  pos:(20,67) textcolor:black fontsize:S
  tabs:(10-right,14-left,50-left,90-left,230-left)
  text:^1^1940^27/9^Germany,Italy and Japan sign [[Tripartite Pact]]
  text:^10^1944^1-22/7^Bretton Woods 44 nations establish
  text:^^^^^IMF and World Bank
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
&lt;!--T:623--&gt;
will be shown as:
&lt;/translate&gt;

&lt;timeline&gt;
ImageSize = width:400 height:70
PlotArea  = width:400 height:70 left:0 bottom:0
TimeAxis  = orientation:vertical # dummy, required
Period    = from:0 till:1 # dummy, required
Colors    =
  id:canvas value:rgb(1,1,0.85)
BackgroundColors = canvas:canvas
TextData  =
  pos:(20,67) textcolor:black fontsize:S
  tabs:(10-right,14-left,50-left,90-left,230-left)
  text:^1^1940^27/9^Germany,Italy and Japan sign [[Tripartite Pact]]
  text:^10^1944^1-22/7^Bretton Woods 44 nations establish
  text:^^^^^IMF and World Bank
&lt;/timeline&gt;

{{anchor|timeaxis-(mandatory)}}
&lt;translate&gt;
=== TimeAxis (mandatory) === &lt;!--T:592--&gt;

&lt;!--T:593--&gt;
Defines the orientation of the time axis, and textual representation of stubs along that axis.

&lt;!--T:594--&gt;
; &lt;tvar name=1&gt;&lt;nowiki&gt;format:&lt;/nowiki&gt;&lt;/tvar&gt;''time-format'' ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:689--&gt;
: Specify in which format dates should be presented along the time axis.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:690--&gt;
: Currently only format '''yyyy''' (default) is supported. This means that if a the &lt;tvar name=1&gt;&lt;code&gt;unit:&lt;/code&gt;&lt;/tvar&gt; attribute for [[&lt;tvar name=2&gt;#ScaleMajor&lt;/tvar&gt;|ScaleMajor]] is set to anything other than &lt;tvar name=3&gt;&lt;code&gt;year&lt;/code&gt;&lt;/tvar&gt;, the major grid lines will not be in sync with the axis labels. For instance, setting &lt;tvar name=4&gt;&lt;code&gt;unit:month&lt;/code&gt;&lt;/tvar&gt; and &lt;tvar name=5&gt;&lt;code&gt;increment:6&lt;/code&gt;&lt;/tvar&gt; will result in major gridlines every 6 months, but axis labels every 6 ''years''. Support for more formats may follow.

&lt;!--T:595--&gt;
; &lt;tvar name=1&gt;&lt;nowiki&gt;orientation:&lt;/nowiki&gt;&lt;/tvar&gt;''&lt;tvar name=2&gt;hor&lt;/tvar&gt;/&lt;tvar name=3&gt;ver&lt;/tvar&gt;''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:742--&gt;
: Specify &lt;tvar name=3&gt;'''hor'''['''izontal''']&lt;/tvar&gt; or &lt;tvar name=4&gt;'''ver'''['''tical''']&lt;/tvar&gt;.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:743--&gt;
: The default time axis orientation is horizontal.

&lt;!--T:596--&gt;
; &lt;tvar name=1&gt;&lt;nowiki&gt;order:&lt;/nowiki&gt;''reverse''&lt;/tvar&gt; ''(optional)''
: Specify '''&lt;tvar name=2&gt;reverse&lt;/tvar&gt;''' as the option to reverse the time flow.
: The default is the forward time flow.

&lt;!--T:597--&gt;
Example:
&lt;/translate&gt;

&lt;pre&gt;
TimeAxis = orientation:horizontal format:yyyy
&lt;/pre&gt;

&lt;translate&gt;
== Presets == &lt;!--T:598--&gt;

&lt;!--T:599--&gt;
Presets are a shorthand for often used settings. They save a few code lines and promote standardisation, but may be confusing, as the timeline script become less self documenting.

&lt;!--T:600--&gt;
At the moment two presets are available:

&lt;!--T:729--&gt;
* '''&lt;tvar name=1&gt;Preset = TimeVertical_OneBar_UnitYear&lt;/tvar&gt;''', which expands to
&lt;/translate&gt;

&lt;pre&gt;
PlotArea   = left:45 right:10 top:10 bottom:10
TimeAxis   = orientation:vertical format:yyyy
DateFormat = yyyy
AlignBars  = early
ScaleMajor = unit:year
ScaleMinor = unit:year
PlotData   =
   mark:(line,white) align:left fontsize:S width:20 shift:(20,0)
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:602--&gt;
* '''&lt;tvar name=1&gt;Preset = TimeHorizontal_AutoPlaceBars_UnitYear&lt;/tvar&gt;''', which expands to
&lt;/translate&gt;

&lt;pre&gt;
ImageSize  = height:auto barincrement:20
PlotArea   = left:25 right:25 top:15 bottom:30
TimeAxis   = orientation:horizontal format:yyyy
Colors = 
  id:canvas value:gray(0.7)
  id:grid1  value:gray(0.4)
  id:grid2  value:gray(0.2)
BackgroundColors = canvas:canvas
DateFormat = yyyy
AlignBars  = justify
ScaleMajor = unit:year grid:grid1
ScaleMinor = unit:year
Legend = orientation:vertical left:35 top:130
PlotData =
   align:left anchor:from fontsize:M width:15 shift:(4,-6) textcolor:black
&lt;/pre&gt;

&lt;translate&gt;
== Implementation and integration limitations == &lt;!--T:604--&gt;
&lt;/translate&gt;

{{anchor|font-support}}
&lt;translate&gt;
=== Font support === &lt;!--T:605--&gt;

&lt;!--T:606--&gt;
Timeline has somewhat limited Unicode support:

&lt;!--T:672--&gt;
* it uses the FreeSans.ttf font, which supports a subset of all the possible glyphs ;&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:673--&gt;
* for instance, it supports the West- and East-European diacritics for the Latin alphabet, as well as the Cyrillic, Greek and Armenian alphabets, the Hebrew abjad (but without visual reordering), the Devanagari, Bengali, Gurmukhi, Gujarati, Tamil and Kannara abugidas for Indian languages, the Kanas alphasyllabaries (for basic Japanese only), and a good subset of extended general punctuation, currency unit symbols, subscript/superscript digits, letterlike symbols, fractions and Roman numbers, some arrows and mathematical operators;&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:674--&gt;
* but it lacks the Georgian alphabets, the Arabic abjad, the Hangul alphabet and syllables, the Oriya, Telugu Thai, Lao and Tibetan abugidas, the Kanji and Han ideographs (so Chinese, Korean, Georgian, Arabic and Thai are not supported, and Japanese must still be transliterated to basic Kanas or to Latin);&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:675--&gt;
* also it does not support Dingbats, as well as non linguistic symbols like box drawing characters that should be drawn using the supported line drawing commands.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:676--&gt;
* Different fonts can be set in LocalSettings.php which may have better Unicode support. For example, the Malayalam Wikipedia uses a different font which has better Malayalam language support.
&lt;/translate&gt;

&lt;timeline&gt;
ImageSize = width:400 height:260
PlotArea  = top:0 left:0 bottom:0 right:0
Period    = from:1 till:2 # dummy
TimeAxis  = orientation:vertical #dummy
Colors    =
  id:bg value:gray(0.95)
Backgroundcolors = canvas:bg
TextData=
  pos:(10,20) fontsize:L text:"维基百科 : ideographs (not supported)"
  pos:(10,50) fontsize:L text:"ウィキペディア : kana"
  pos:(10,80) fontsize:L text:"יִשְרָאֵל‎ : Hebrew (not reordered)"
  pos:(10,110) fontsize:L text:"Ελλάς Ζυρίχης : Greek"
  pos:(10,140) fontsize:L text:"Флора Центральной Европы : Cyrillic"
  pos:(10,170) fontsize:L text:"Zażółć gęślą jaźń : Extended Latin"
  pos:(10,200) fontsize:L text:"فارسی : Persian (not supported)"
  pos:(10,230) fontsize:L text:"العربي : Arabic (not supported)"
&lt;/timeline&gt;

&lt;translate&gt;&lt;!--T:608--&gt; As a legacy of bitmap font usage, only five font tags are predefined. They will render at slightly different sizes in PNG and SVG images to produce optimal readability for both platforms.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:677--&gt; It is advised to use these tags instead of numbers whenever possible.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:678--&gt; They are: '''&lt;tvar name=1&gt;XS&lt;/tvar&gt;'''=eXtra Small, '''&lt;tvar name=2&gt;S&lt;/tvar&gt;'''=Small (default), '''&lt;tvar name=3&gt;M&lt;/tvar&gt;'''=Medium, '''&lt;tvar name=4&gt;L&lt;/tvar&gt;'''=Large, '''&lt;tvar name=5&gt;XL&lt;/tvar&gt;'''=eXtra Large&lt;/translate&gt;

&lt;timeline&gt;
ImageSize = width:144 height:92
PlotArea  = top:20 left:20 bottom:20 right:20
TimeAxis  = orientation:vertical #dummy
Period   = from:1 till:2 # dummy
Colors    =
  id:bg  value:gray(0.95)
Backgroundcolors = canvas:bg
TextData =
  pos:(10,70) fontsize:XS text:"fontsize:XS"
  pos:(10,58) fontsize:S  text:"fontsize:S"
  pos:(10,41) fontsize:M  text:"fontsize:M"
  pos:(10,25) fontsize:L  text:"fontsize:L"
  pos:(10,7)  fontsize:XL text:"fontsize:XL"
&lt;/timeline&gt;

&lt;translate&gt;
=== EasyTimeline code with template parameter or magic words === &lt;!--T:610--&gt;

&lt;!--T:611--&gt;
If you want to use easy timeline with template parameters or things like &lt;tvar name=1&gt;&lt;nowiki&gt;{{CURRENTDAY2}}&lt;/nowiki&gt;&lt;/tvar&gt; you can use &lt;tvar name=2&gt;#tag&lt;/tvar&gt; syntax:
&lt;/translate&gt;

&lt;pre&gt;
{{#tag:timeline|
Timeline code here
}}
&lt;/pre&gt;

&lt;translate&gt;&lt;!--T:613--&gt; However, one must replace all |'s with &lt;tvar name=1&gt;&lt;nowiki&gt;{{!}}&lt;/nowiki&gt;&lt;/tvar&gt; (which should be a template containing just &lt;tvar name=2&gt;&lt;code&gt;|&lt;/code&gt;&lt;/tvar&gt;).&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:735--&gt; See the section on &lt;tvar name=1&gt;#tag&lt;/tvar&gt; at &lt;tvar name=2&gt;{{ll|Help:Magic words}}&lt;/tvar&gt; for details&lt;/translate&gt;

&lt;translate&gt;
=== Known bugs and limitations in embedded links === &lt;!--T:614--&gt;
&lt;/translate&gt;

&lt;ul&gt;
&lt;li&gt;&lt;translate&gt;&lt;!--T:615--&gt; You can currently specify only one link per text segment.&lt;/translate&gt;&lt;/li&gt;

&lt;li&gt;&lt;translate&gt;&lt;!--T:616--&gt; Link trailers are not recognized, you must put the full text that is part of the link within "&lt;code&gt;[[]]&lt;/code&gt;".&lt;/translate&gt;&lt;/li&gt;

&lt;li&gt;&lt;translate&gt;&lt;!--T:617--&gt; Links that are not specified at the beginning of the text (or the beginning of a new line after a line break specified by a tilde) are incorrectly positioned (the normal text color is used at the correct position, and the text with the blue link color is overdrawn on top of it with the wrong horizontal position). See the first example trying to show "Help:Link" above in this section.&lt;/translate&gt;&lt;/li&gt;

&lt;li&gt;&lt;translate&gt;&lt;!--T:618--&gt; If the displayed text in bar legends of a PlotData contains newlines (represented by a &lt;nowiki&gt;~&lt;/nowiki&gt;), the targer URL is broken, keeping only the first word in it.&lt;/translate&gt;
&lt;p&gt;&lt;translate&gt;&lt;!--T:731--&gt; For example the following code in bar data:&lt;/translate&gt;&lt;/p&gt;

&lt;pre&gt;
  from:1935 till:2004 text:"[[Françoise Sagan|Françoise Quoirez,~alias Françoise Sagan]]" color:writer
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:624--&gt;
currently renders as
&lt;/translate&gt;

&lt;timeline&gt;
ImageSize = width:380 height:40
Colors =
  id:g1 value:gray(0.8)
  id:g5 value:gray(0.6)
  id:writer value:rgb(0.7,1,0.7)
DateFormat = yyyy
TimeAxis = orientation:horizontal format:yyyy # required
Period = from:1900 till:2100 # required
ScaleMinor = gridcolor:g1 unit:year increment:50 start:1900
ScaleMajor = gridcolor:g5 unit:year increment:100 start:1900
AlignBars = justify
PlotArea = left:16 right:16 top:0 bottom:20 # required
BarData =
  barset:writers
PlotData =
  barset:writers width:20 align:left shift:(16,2)
  from:1935 till:2004 text:"[[Françoise Sagan|Françoise Quoirez,~alias Françoise Sagan]]" color:writer
&lt;/timeline&gt;

&lt;translate&gt;&lt;!--T:625--&gt; where the target links to [[w:Françoise|Françoise]] instead of [[w:Françoise Sagan|Françoise Sagan]], and shows the incorrect tooltip text "Françoise Sagan/.." with extra characters.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:636--&gt; This bug does not occur if the target link contains a single word.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:637--&gt; Surrounding the full text (with the link itself) with quotes does not solve the problem.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:638--&gt; Additionally, this requently causes the timeline to fail without showing the error during its rendering (no image rendered on the browser).&lt;/translate&gt;
&lt;/li&gt;

&lt;li&gt;&lt;translate&gt;&lt;!--T:619--&gt; In addition the target is assumed as belonging to the same parent page as the current subpage even though the target link does not start with a "/" (with the wiki syntax), so timelines containing links are not usable in subpages (like this one).&lt;/translate&gt;&lt;/li&gt;
&lt;/ul&gt;</text>
    <sha1>f46f10b1f59b1a176dd54513ad303eb58dea9670</sha1>
  </revision>
  <revision>
    <id>6624091</id>
    <parentid>6624090</parentid>
    <timestamp>2024-07-09T04:48:16Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <minor/>
    <comment>Reverted edits by [[Special:Contribs/Pppery|Pppery]] ([[User talk:Pppery|talk]]) to last version by 203.247.149.239</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="76237" xml:space="preserve">&lt;languages/&gt;
&lt;translate&gt;&lt;!--T:336--&gt; The &lt;tvar name=1&gt;{{ll|Extension:EasyTimeline|EasyTimeline}}&lt;/tvar&gt; feature produces an embedded [[&lt;tvar name=2&gt;m:Special:MyLanguage/Help:Images and other uploaded files&lt;/tvar&gt;|image]] from wikitext.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:626--&gt; The image can be a one-dimensional diagram (horizontally or vertically), or a two-dimensional one.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:627--&gt; The name "EasyTimeline" refers to the possibility to apply the feature with a time scale horizontally or vertically, possibly with another parameter in the other direction, but there are also various other possiblities.&lt;/translate&gt;

&lt;translate&gt;
== Introduction == &lt;!--T:337--&gt;

&lt;!--T:338--&gt;
Graphical timelines can be produced by providing a script between special tags:
&lt;/translate&gt;

&lt;code class="mw-code mw-highlight" style="display:block"&gt;&lt;!--
--&gt;{{^(}}{{#tag:span|timeline|class=nt}}{{)^}}
''&lt;translate&gt;&lt;!--T:730--&gt; script&lt;/translate&gt;''
{{^(}}/{{#tag:span|timeline|class=nt}}{{)^}}
&lt;/code&gt;

&lt;translate&gt;
&lt;!--T:339--&gt;
EasyTimeline will then be invoked to render a PNG image and (optionally) a clickable map.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:340--&gt; '''Disclaimer''': Even though EasyTimeline is designed for ease of use, a complicated graphical timeline is a non-trivial affair.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:628--&gt; A simple timeline may take half an hour to compose (or even more, when a suitable example is taken as a basis).&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:629--&gt; Large timelines may take a few hours for composition and fine-tuning.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:630--&gt; However, adding to or correcting a timeline, no matter how complex, should be a relatively straightforward affair, even for contributors who have no expert knowledge of the syntax described here.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:341--&gt;
Feel free to ask the [[m:User:Erik Zachte|author of EasyTimeline]] for advice.

== Available commands == &lt;!--T:342--&gt;

&lt;!--T:343--&gt;
The script commands define:

&lt;!--T:715--&gt;
* Overall layout:&lt;/translate&gt; [[#ImageSize (mandatory)|ImageSize]], [[#PlotArea (mandatory)|PlotArea]], [[#Colors|Colors]], [[#BackgroundColors|BackgroundColors]], [[#AlignBars|AlignBars]]
&lt;translate&gt;
&lt;!--T:716--&gt;
* Interpretation and presentation of dates and periods:&lt;/translate&gt; [[#DateFormat|DateFormat]], [[#Period (mandatory)|Period]], [[#ScaleMajor|ScaleMajor]], [[#ScaleMinor|ScaleMinor]], [[#TimeAxis (mandatory)|TimeAxis]]
&lt;translate&gt;
&lt;!--T:717--&gt;
* Shorthands for pieces of script code that occur multiple times:&lt;/translate&gt; [[#Define|Define]]
&lt;translate&gt;
&lt;!--T:718--&gt;
* How to order, divide, and name groups of events and periods:&lt;/translate&gt; [[#BarData|BarData]], [[#Legend|Legend]], [[#LineData|LineData]]
&lt;translate&gt;
&lt;!--T:719--&gt;
* Events, periods and descriptive texts:&lt;/translate&gt; [[#PlotData|PlotData]], [[#TextData|TextData]]

&lt;translate&gt;

== General coding rules == &lt;!--T:344--&gt;

&lt;!--T:345--&gt;
A script can contain commands and comments. Each command is followed by one or more attributes.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:346--&gt; Letter case: Commands and their attributes can be written in lower, upper or mixed case.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:631--&gt; Please try to be consistent in applying case as this will further readability, e.g. use mixed case for all commands and lowercase for all attributes.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:347--&gt;
The following commands are mandatory:
* [[&lt;tvar name=1&gt;#ImageSize (mandatory)&lt;/tvar&gt;|ImageSize]], determines the overall size of the time line
* [[&lt;tvar name=2&gt;#PlotArea (mandatory)&lt;/tvar&gt;|PlotArea]], determines the margins
* [[&lt;tvar name=3&gt;#Period (mandatory)&lt;/tvar&gt;|Period]], determines the time period that will be displayed in the chart
* [[&lt;tvar name=4&gt;#TimeAxis (mandatory)&lt;/tvar&gt;|TimeAxis]], the orientation (horizontal/vertical) of the time axis

&lt;!--T:348--&gt;
At least one of the following commands is required (either or both can occur multiple times):
* [[&lt;tvar name=1&gt;#PlotData&lt;/tvar&gt;|PlotData]] and/or
* [[&lt;tvar name=2&gt;#TextData&lt;/tvar&gt;|TextData]].

&lt;!--T:349--&gt;
All other commands are optional.
&lt;/translate&gt;

{{anchor|comments}}
&lt;translate&gt;
=== Comments === &lt;!--T:350--&gt;

&lt;!--T:351--&gt;
Single and multi line comments can be specified:
* Text following the hash sign '''#''' will be regarded as a comment
* Text between '''#&gt;''' and '''&lt;#''' will also be regarded as a comment. Comments can span multiple lines, when tagged this way.

&lt;!--T:352--&gt;
Examples:
&lt;/translate&gt;

{{pre|1=
[[#DateFormat|DateFormat]] = dd/mm/yyyy # European date format

[[#Period|Period]] = from:01/09/1939 till:02/09/1945 #&gt; this chart will show
  the complete duration of World War II &lt;#
}}

&lt;translate&gt;
=== Commands === &lt;!--T:355--&gt;

&lt;!--T:356--&gt;
Commands should start on the first position of a line.

&lt;!--T:357--&gt;
Some commands can be followed by multiple lines of data and/or options.
These extra lines should start with at least one space or be completely empty (the latter is useful for visually grouping related data lines).

&lt;!--T:358--&gt;
Commands have one of the following forms, depending on the type of command:

&lt;!--T:359--&gt;
'''''Command'' = ''attribute(s)'''''
&lt;/translate&gt;

{{pre|1=
[[#DateFormat|DateFormat]] = dd/mm/yyyy
}}

&lt;translate&gt;
&lt;!--T:361--&gt;
'''''Command name'' = ''attribute(s)'''''
&lt;/translate&gt;

{{pre|1=
[[#Define|Define]] $US = text:"United States"
}}

&lt;translate&gt;
&lt;!--T:362--&gt;
'''''Command ='''''
:'''''attribute(s)'''''
:'''''attribute(s)'''''
:'''''etc.'''''
&lt;/translate&gt;

{{pre|1=
[[#PlotData|PlotData]] =
  fontsize:XS width:20
  bar:Japan from:start till:19/02/1945 color:JT
  bar:Japan from:19/02/1945 till:14/03/1945 color:AI
}}

&lt;translate&gt;
=== Attributes === &lt;!--T:363--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:364--&gt; When several attributes can be specified for a certain command, they are notated as 'name:value' pairs.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:632--&gt; When several values can be specified for one attribute they have to be enclosed between parentheses.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:633--&gt; A few commands, like [[&lt;tvar name=1&gt;#Color&lt;/tvar&gt;|Color]], use other formats.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:365--&gt;
Examples:
&lt;/translate&gt;

{{pre|1=
[[#BackgroundColors|BackgroundColors]] = bars:darkgrey
[[#PlotData|PlotData]] = at:5 shift:(10, -7) text:Foo
[[#Color|Color]] SB = value:rgb(0.8,0,0.7) legend:Sea_Battles
}}

{{anchor|parameters-vs data items}}
&lt;translate&gt;
==== Parameters vs data items ==== &lt;!--T:366--&gt;

&lt;!--T:367--&gt;
Most commands only accept attributes that are specified on the same line.

&lt;!--T:368--&gt;
; Data blocks&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:691--&gt;
: Some commands, like [[&lt;tvar name=1&gt;#BarData&lt;/tvar&gt;|BarData]], [[&lt;tvar name=2&gt;#PlotData&lt;/tvar&gt;|PlotData]], [[&lt;tvar name=3&gt;#TextData&lt;/tvar&gt;|TextData]], [[&lt;tvar name=4&gt;#Colors&lt;/tvar&gt;|Colors]] expect a ''data block'' consisting of one or more ''data lines''. Data lines should start with one or more spaces. A data block is considered complete when a line starting with a non-space is encountered (exception: empty lines are ignored, they may be used to group related data lines within a block).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:692--&gt;
: Attributes in a data block can conceptually be divided into ''parameters'' and ''data items''. Data blocks can contain parameters and data items intermingled.

&lt;!--T:369--&gt;
; Data items
: In data lines attributes ''text'', ''from'', ''till'' and ''at'' always apply only to the line in which they occur.

&lt;!--T:370--&gt;
; Parameters
: In data lines attributes like ''color'' and ''fontsize'' have different implications depending on the context. If these parameters occur on a line without data items, they set new defaults for the data lines that follow. If they appear on a line mixed with data items they apply only to that line, thus overruling a default that was previously set.

&lt;!--T:371--&gt;
Example:
&lt;/translate&gt;

&lt;pre&gt;
# In this example two sets of bars are drawn, in red and blue respectively,
# but in each set one bar (marking war periods) will be drawn in green.

PlotData =
  color:red fontsize:S                               # set defaults
  bar:USSR from:1919 till:1922 text:Lenin            # red bar
  bar:USSR from:1922 till:1953 text:Stalin           # red bar
  bar:USSR from:1939 till:1945 text:WWII color:green # green bar
  bar:USSR from:1953 till:1964 text:Krushchev        # red bar
  &amp;nbsp;
  color:blue                                         # change default color
  bar:US from:1913 till:1921 text:Wilson             # blue bar
  bar:US from:1917 till:1918 text:WWI color:green    # green bar
  bar:US from:1921 till:1923 text:Harding            # blue bar

#&gt; this multiline comment does not end command PlotData,
   even when the previous line does not start with a space&lt;#

   bar:US from:1923 till:1929 text:Coolidge           # blue bar

TextData =                                            # now PlotData is considered complete
   tabs:...etc
&lt;/pre&gt;

&lt;translate&gt;
== Attribute data input rules == &lt;!--T:376--&gt;
&lt;/translate&gt;

{{anchor|measurements|Measurement}}
&lt;translate&gt;
=== Measurements === &lt;!--T:377--&gt;

&lt;!--T:378--&gt;
Measurements can be absolute or relative to the image size depending on the unit specified in attributes.
In attributes that take coordinate pairs, the first coordinate is horizontal from left to right, the second is vertically upward.

==== Absolute measures ==== &lt;!--T:379--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:380--&gt; They may be used for specifying total sizes of the image, positions and position shifts.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:634--&gt; The value can be specified in pixels ('''px'''), inches ('''in''') or centimeters ('''cm''') by appending a postfixed unit to the value.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:635--&gt; Values can have fractional decimals.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:381--&gt;
Example:
&lt;/translate&gt;

&lt;pre&gt;
PlotArea = left:50 bottom:50 right:50 top:90
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:382--&gt;
The following absolute measures are equivalent:
* &lt;code&gt;800px&lt;/code&gt;
* &lt;code&gt;800&lt;/code&gt; (the default unit is the pixel)
* &lt;code&gt;8in&lt;/code&gt; (assuming a display resolution of 100 pixels per inch)
* &lt;code&gt;3.15cm&lt;/code&gt; (assuming the same display resolution, converted to centimeters)

==== Relative measures ==== &lt;!--T:383--&gt;

&lt;!--T:384--&gt;
They may be used for specifying sizes and positions according to the total image sizes; they can't be used for specifying the total image sizes (see [[&lt;tvar name=1&gt;#ImageSize&lt;/tvar&gt;|ImageSize]]) but may be used to define the [[&lt;tvar name=2&gt;#PlotArea (mandatory)&lt;/tvar&gt;|PlotArea]].

&lt;!--T:385--&gt;
For horizontal measurements the percentage is related to image width, for vertical measurements to image height.

&lt;!--T:386--&gt;
Specify a number between 0 and 100, immediately followed by a '''%''' (percentage) sign.

&lt;!--T:387--&gt;
Example:
&lt;/translate&gt;

&lt;pre&gt;
PlotArea = left:10% bottom:5% right:5% top:15%
&lt;/pre&gt;

{{anchor|Text Input|text-input}}
&lt;translate&gt;
=== Text input === &lt;!--T:388--&gt;

&lt;!--T:389--&gt;
Text input is subject to a few rules:

&lt;!--T:693--&gt;
# Only a subset of Unicode is allowed for font rendering, but Unicode in links should work for all characters. See also [[&lt;tvar name=1&gt;#Font support&lt;/tvar&gt;|Font support]].&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:694--&gt;
# When text should contain spaces, either specify these by using underscores (_) or place the text between "double quotes".&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:695--&gt;
#: Exception: when the text attribute is the last attribute on a line, spaces are allowed (no confusion will arise where the text stops and the next attribute starts, that is&amp;mdash;to be precise&amp;mdash;when no colons occur in the text).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:696--&gt;
# In data lines following command [[&lt;tvar name=1&gt;#TextData&lt;/tvar&gt;|TextData]] two characters have special meaning:&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:697--&gt;
#: '''^''' (caret) means ''tab''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:698--&gt;
#: '''~''' (tilde) means ''newline''

&lt;!--T:390--&gt;
Example: (the following are all equivalent)
&lt;/translate&gt;

&lt;pre&gt;
BarData =
  text:Japanese_mandate_since_1914 bar:Marshalls

BarData =
  text:"Japanese mandate since 1914" bar:Marshalls

BarData =
  bar:Marshalls text:Japanese mandate since 1914
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:393--&gt;
Example showing tabs:
&lt;/translate&gt;

&lt;syntaxhighlight lang="moin"&gt;
TextData =
  tabs:(4-right,12-right,14-left,34-left)
  text:^1^1940^27/9^Berlin Ger,It,Jap sign Tripartite Pact
  text:^10^1944^1-22/7^Bretton Woods 44 nations establish
  text:^^^^^IMF and World Bank

# will be shown as:
#
#      1    27/9 Berlin Ger,It,Jap sign Tripartite Pact
#     10  1-22/7 Bretton Woods 44 nations establish
#                                    IMF and World Bank
&lt;/syntaxhighlight&gt;

{{anchor|clickable maps|clickable-maps}}
&lt;translate&gt;
=== Clickable maps === &lt;!--T:395--&gt;

&lt;!--T:396--&gt;
Both output formats available in MediaWiki, i.e. PNG and SVG, can contain clickable links. Texts shown in blue, and bars, may then be clicked, to surf to another web page.

&lt;!--T:397--&gt;
Links can be specified with commands [[&lt;tvar name=1&gt;#BarData&lt;/tvar&gt;|BarData]], [[&lt;tvar name=2&gt;#PlotData&lt;/tvar&gt;|PlotData]] and [[&lt;tvar name=3&gt;#TextData&lt;/tvar&gt;|TextData]], either with attribute ''link'', or as embedded links, via attribute ''text''.

==== Embedded links ==== &lt;!--T:398--&gt;

&lt;!--T:399--&gt;
Embedded links are links that are (part of a) displayable text, specified with attribute ''text''. Their counterpart are explicit links (URL only) which are defined with attribute ''link''.

&lt;!--T:400--&gt;
Both type of links can be specified with commands [[&lt;tvar name=1&gt;#BarData&lt;/tvar&gt;|BarData]], [[&lt;tvar name=2&gt;#PlotData&lt;/tvar&gt;|PlotData]] and [[&lt;tvar name=3&gt;#TextData&lt;/tvar&gt;|TextData]] and are used for [[&lt;tvar name=4&gt;#clickable maps&lt;/tvar&gt;|clickable maps]].

&lt;!--T:401--&gt;
In embedded links, internal link style is as usual, interwiki link style does not work, external link style is as usual with single brackets, but here with a pipe instead of a space.

&lt;!--T:402--&gt;
Examples:
&lt;/translate&gt;

&lt;pre&gt;
  &lt;nowiki&gt;text:example [[Help:Link]] internal link&lt;/nowiki&gt;
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:620--&gt;
will be shown as:
&lt;/translate&gt;

&lt;timeline&gt;
ImageSize = width:380 height:25
PlotArea  = width:380 height:25 left:0 bottom:0
TimeAxis  = orientation:vertical # dummy, required
Period    = from:0 till:1 # dummy, required
Colors    =
  id:canvas value:rgb(1,1,0.85)
BackgroundColors = canvas:canvas
TextData  =
  pos:(10,10) fontsize:XL text:"example [[Help:Link]] internal link"
&lt;/timeline&gt;

&lt;pre&gt;
  &lt;nowiki&gt;text:[[Help:Link|Link]]&lt;/nowiki&gt;
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:621--&gt;
will be shown as:
&lt;/translate&gt;

&lt;timeline&gt;
ImageSize = width:380 height:25
PlotArea  = width:380 height:25 left:0 bottom:0
TimeAxis  = orientation:vertical # dummy, required
Period    = from:0 till:1 # dummy, required
Colors    =
  id:canvas value:rgb(1,1,0.85)
BackgroundColors = canvas:canvas
TextData  =
  pos:(10,10) fontsize:XL text:"[[Help:Link|Link]]"
&lt;/timeline&gt;

&lt;pre&gt;
  &lt;nowiki&gt;text:[http://en.wikipedia.org/wiki/Rembrandt|Rembrandt van Rijn] paints Night Watch&lt;/nowiki&gt;
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:622--&gt;
will be shown as:
&lt;/translate&gt;

&lt;timeline&gt;
ImageSize = width:380 height:25
PlotArea  = width:380 height:25 left:0 bottom:0
TimeAxis  = orientation:vertical # dummy, required
Period    = from:0 till:1 # dummy, required
Colors    =
  id:canvas value:rgb(1,1,0.85)
BackgroundColors = canvas:canvas
TextData  =
  pos:(10,10) fontsize:XL text:"[http://en.wikipedia.org/wiki/Rembrandt|Rembrandt van Rijn] paints Night Watch"
&lt;/timeline&gt;

&lt;translate&gt;
==== Using interwikis ==== &lt;!--T:404--&gt;

&lt;!--T:405--&gt;
An attempt to use interwiki link style:
&lt;/translate&gt;

&lt;pre&gt;
  &lt;nowiki&gt;text:[[en:Main Page]]&lt;/nowiki&gt;
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:407--&gt;
and similar with nl: and m: gives:
&lt;/translate&gt;

&lt;timeline&gt;
ImageSize = width:380 height:25
PlotArea  = width:380 height:25 left:0 bottom:0
TimeAxis  = orientation:vertical # dummy, required
Period    = from:0 till:1 # dummy, required
Colors    =
  id:canvas value:rgb(1,1,0.85)
BackgroundColors = canvas:canvas
TextData  =
  pos:(10,10) fontsize:XL text:"[[en:Main Page]]"
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:380 height:25
PlotArea  = width:380 height:25 left:0 bottom:0
TimeAxis  = orientation:vertical # dummy, required
Period    = from:0 till:1 # dummy, required
Colors    =
  id:canvas value:rgb(1,1,0.85)
BackgroundColors = canvas:canvas
TextData  =
  pos:(10,10) fontsize:XL text:"[[nl:Main Page]]"
&lt;/timeline&gt;

&lt;timeline&gt;
ImageSize = width:380 height:25
PlotArea  = width:380 height:25 left:0 bottom:0
TimeAxis  = orientation:vertical # dummy, required
Period    = from:0 till:1 # dummy, required
Colors    =
  id:canvas value:rgb(1,1,0.85)
BackgroundColors = canvas:canvas
TextData  =
  pos:(10,10) fontsize:XL text:"[[m:Main Page]]"
&lt;/timeline&gt;

&lt;translate&gt;
&lt;!--T:411--&gt;
The third one to Meta-Wikipedia works properly, except from Meta itself, the other links work like [[&lt;tvar name=1&gt;Special:MyLanguage/Main Page&lt;/tvar&gt;|Main Page]] (internal page, the prefix is ignored) or e.g. {{SERVER}}/w/Main_Page (gives File not found), depending on the URL of the referring page (e.g. different for a preview page and a diff page).

=== Special characters === &lt;!--T:412--&gt;

&lt;!--T:413--&gt;
* '''#''', '''#&gt;''', '''&lt;#''' (hash, hash+"greater than", "less than"+hash): see [[&lt;tvar name=1&gt;#Comments&lt;/tvar&gt;|Comments]]
* '''~''' (tilde) in texts means: line break
* '''^''' (caret) in texts means: tab
* '''_''' (underscore) in texts means: space
* '''$''' (dollar sign) precedes any user defined constant

&lt;!--T:414--&gt;
Blank spaces and underscores in a url should be written as %20.

&lt;!--T:415--&gt;
The tilde character ('''~''') is normally interpreted as line break. When a tilde is part of a url write it as is two tildes.&lt;br/&gt;
For example, link to ''www.site.com/~mysite'' as:
&lt;/translate&gt;

&lt;pre&gt;
  &lt;nowiki&gt;text:[www.site.com/~~mysite|My site]&lt;/nowiki&gt;
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:416--&gt;
The number sign ('''#''') is normally interpreted as start of comment. When a number sign is part of an url make sure the text is embedded in double quotes as follows:
&lt;/translate&gt;

&lt;pre&gt;
  &lt;nowiki&gt;text:"More at [www.site.com/~~mysite#section2|My site]"&lt;/nowiki&gt;
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:417--&gt;
Actually it may be a good idea to always put texts between double quotes.

== Command Reference == &lt;!--T:418--&gt;

&lt;!--T:419--&gt;
For each command the valid attributes are listed. Some commands are mandatory, and some attributes in commands are optional.

&lt;!--T:420--&gt;
For some commands certain attributes are mutually exclusive (will be explained where applicable).
&lt;/translate&gt;

{{anchor|alignbars}}
&lt;translate&gt;
=== AlignBars === &lt;!--T:421--&gt;

&lt;!--T:422--&gt;
Bars will always be drawn at equal distances. This command specifies whether the bars should be spaced as much apart as possible, or some white space should be reserved between the left/top side of the chart and the first bar or between the last bar and the right/bottom side of the chart.

&lt;!--T:423--&gt;
; early ''(default)''
: The first bar will be placed on the leftmost/topmost position of the chart ('glued' to the axis), leaving space between the last bar and right/bottom side of the chart.

&lt;!--T:424--&gt;
; late
: Opposite from ''early'': the last bar will be placed as far to the right/bottom side of the chart as possible, leaving space between the axis line (left/top side of chart) and the first bar.

&lt;!--T:425--&gt;
; justify
: The first and last bars will be placed as far apart as possible, leaving no empty space on either side of the chart. When only one bar is present, justify will be interpreted as "centered".

&lt;!--T:426--&gt;
The exact alignment depends on the orientation setting in the [[&lt;tvar name=1&gt;#TimeAxis (mandatory)&lt;/tvar&gt;|TimeAxis]] mandatory command.

&lt;!--T:427--&gt;
Examples:
&lt;/translate&gt;

{|border="0" cellspacing="0" cellpadding="2" bgcolor="#F7F8FF" class="wikitable"
|-
!style="background:#EEEEEE"| Alignbars =
!style="background:#EEEEEE"| early
!style="background:#EEEEEE"| late
!style="background:#EEEEEE"| justify
!style="background:#EEEEEE"| (default)
|-
!style="background:#EEEEEE"| TimeAxis = orientation:horizontal
|
&lt;timeline&gt;
ImageSize  = width:90 height:120
PlotArea   = width:65 height:80 left:20 bottom:20
AlignBars  = early

DateFormat = yyyy
Period     = from:1 till:5
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:1 start:1

PlotData=
  color:red width:10
  bar:A from:start till:end
  bar:B from:start till:end
  bar:C from:start till:end
  bar:D from:start till:end
&lt;/timeline&gt;
|
&lt;timeline&gt;
ImageSize  = width:90 height:120
PlotArea   = width:65 height:80 left:20 bottom:20
AlignBars  = late

DateFormat = yyyy
Period     = from:1 till:5
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:1 start:1

PlotData=
  color:red width:10
  bar:A from:start till:end
  bar:B from:start till:end
  bar:C from:start till:end
  bar:D from:start till:end
&lt;/timeline&gt;
|
&lt;timeline&gt;
ImageSize  = width:90 height:120
PlotArea   = width:65 height:80 left:20 bottom:20
AlignBars  = justify

DateFormat = yyyy
Period     = from:1 till:5
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:1 start:1

PlotData=
  color:red width:10
  bar:A from:start till:end
  bar:B from:start till:end
  bar:C from:start till:end
  bar:D from:start till:end
&lt;/timeline&gt;
|
&lt;timeline&gt;
ImageSize  = width:90 height:120
PlotArea   = width:65 height:80 left:20 bottom:20

DateFormat = yyyy
Period     = from:1 till:5
TimeAxis   = orientation:horizontal
ScaleMajor = unit:year increment:1 start:1

PlotData=
  color:red width:10
  bar:A from:start till:end
  bar:B from:start till:end
  bar:C from:start till:end
  bar:D from:start till:end
&lt;/timeline&gt;
|-
!style="background:#EEEEEE"| TimeAxis = orientation:vertical
|
&lt;timeline&gt;
ImageSize  = width:90 height:120
PlotArea   = width:65 height:80 left:20 bottom:20
AlignBars  = early

DateFormat = yyyy
Period     = from:1 till:5
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:1 start:1

PlotData=
  color:red width:10
  bar:A from:start till:end
  bar:B from:start till:end
  bar:C from:start till:end
  bar:D from:start till:end
&lt;/timeline&gt;
|
&lt;timeline&gt;
ImageSize  = width:90 height:120
PlotArea   = width:65 height:80 left:20 bottom:20
AlignBars  = late

DateFormat = yyyy
Period     = from:1 till:5
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:1 start:1

PlotData=
  color:red width:10
  bar:A from:start till:end
  bar:B from:start till:end
  bar:C from:start till:end
  bar:D from:start till:end
&lt;/timeline&gt;
|
&lt;timeline&gt;
ImageSize  = width:90 height:120
PlotArea   = width:65 height:80 left:20 bottom:20
AlignBars  = justify

DateFormat = yyyy
Period     = from:1 till:5
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:1 start:1

PlotData=
  color:red width:10
  bar:A from:start till:end
  bar:B from:start till:end
  bar:C from:start till:end
  bar:D from:start till:end
&lt;/timeline&gt;
|
&lt;timeline&gt;
ImageSize  = width:90 height:120
PlotArea   = width:65 height:80 left:20 bottom:20

DateFormat = yyyy
Period     = from:1 till:5
TimeAxis   = orientation:vertical
ScaleMajor = unit:year increment:1 start:1

PlotData=
  color:red width:10
  bar:A from:start till:end
  bar:B from:start till:end
  bar:C from:start till:end
  bar:D from:start till:end
&lt;/timeline&gt;
|}

{{anchor|backgroundcolors}}
&lt;translate&gt;
=== BackgroundColors === &lt;!--T:444--&gt;

&lt;!--T:445--&gt;
This command allows the specification of background colors for various parts of the chart. Any ''color-id''s specified should be defined first using [[&lt;tvar name=1&gt;#Colors&lt;/tvar&gt;|Colors]].

&lt;!--T:446--&gt;
; canvas&lt;nowiki&gt;:&lt;/nowiki&gt;''color-id'' ''(optional)''
: Specify a background color for the whole image.

&lt;!--T:447--&gt;
; bars&lt;nowiki&gt;:&lt;/nowiki&gt;''color-id'' ''(optional)''
: Specify a background color for all bars.

&lt;!--T:448--&gt;
Examples:
&lt;/translate&gt;

&lt;pre&gt;
BackgroundColors = bars:darkgrey

BackgroundColors = canvas:lightgrey bars:darkgrey

BackgroundColors = canvas:lightgrey
&lt;/pre&gt;

{{anchor|bardata}}
&lt;translate&gt;
=== BarData === &lt;!--T:451--&gt;

&lt;!--T:452--&gt;
This is an optional command which if present determines which bars will be drawn on the chart and in which order.
If it is omitted then bars will be drawn in order of their appearance in command [[&lt;tvar name=1&gt;#PlotData&lt;/tvar&gt;|PlotData]].

&lt;!--T:453--&gt;
For complex timelines with many bars, usage of this command is recommended:
* It will ease reordering of the displayed data.
* Bar names specified in [[&lt;tvar name=1&gt;#PlotData&lt;/tvar&gt;|PlotData]] can be validated against this list, thus preventing typing errors.

&lt;!--T:454--&gt;
; &lt;tvar name=2&gt;bar&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''bar-id'' ''(optional)''
: Defines the bar id. Other commands (notably [[&lt;tvar name=1&gt;#PlotData&lt;/tvar&gt;|PlotData]]) will expect this id for reference. This will also be the label to be shown along the axis, unless attribute ''text'' is present. The bar id should not contain any spaces: use underscores instead, these will be converted to spaces, as with article titles.
&lt;/translate&gt;

; &lt;translate&gt;&lt;!--T:732--&gt; &lt;tvar name=1&gt;bar&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''barset-id'' ''(optional)''&lt;/translate&gt;
: &lt;translate&gt;&lt;!--T:733--&gt; Specifies the barset id to be used for other commands.&lt;/translate&gt; &lt;translate&gt;&lt;!--T:734--&gt; Like the bar id, underscores should be used as opposed to spaces.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:455--&gt;
; &lt;tvar name=2&gt;text&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''some_text'' ''(optional)''
: When specified this specifies the text to be presented along the axis, instead of the bar id. See also rules for [[&lt;tvar name=1&gt;#Text input&lt;/tvar&gt;|text input]]. The text may include one embedded link (see '''Note 1''').

&lt;!--T:456--&gt;
; &lt;tvar name=1&gt;link&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''local-URL'' ''(optional)''
: Specify a web link (see '''Note 1''') (URL). The label along the axis will be shown as a blue clickable link.

&lt;!--T:457--&gt;
'''Notes'''
# Either use attribute ''&lt;tvar name=1&gt;link&lt;/tvar&gt;'', or an embedded link in attribute ''&lt;tvar name=2&gt;text&lt;/tvar&gt;'', not both.

&lt;!--T:458--&gt;
Examples:
&lt;/translate&gt;

&lt;pre&gt;
BarData =
  bar:Japan
  bar:US       text:"United States"  # refer in PlotData to bar "US" but show "United States"
  bar:China    text:[[China]]        # label China will be shown as blue clickable link to the English Wikipedia article about China
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:459--&gt;
The following lines produce the same output (only reference in [[&lt;tvar name=1&gt;#PlotData&lt;/tvar&gt;|PlotData]] changes):
&lt;/translate&gt;

&lt;pre&gt;
bar:US            text:[[United_States]]

bar:US            text:"United States" link:http://www.wikipedia.org/wiki/United_States

bar:United_States                      link:http://www.wikipedia.org/wiki/United_States
&lt;/pre&gt;

{{anchor|colors|Color}}
&lt;translate&gt;
=== Colors === &lt;!--T:462--&gt;

&lt;!--T:463--&gt;
This command allows colors to be defined and coupled to an id (identification tag).
Other commands will refer to colors with the id specified here.
This command expects one or more color definitions, each on a separate indented line.

&lt;!--T:464--&gt;
; &lt;tvar name=1&gt;id&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''color-id''
: Other commands will use this id to specify text, bar or background colors.

&lt;!--T:465--&gt;
; &lt;tvar name=1&gt;value&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''color-space''(''coordinates'')&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:639--&gt;
: Actual color definition. Color values can be either be specified as:&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:640--&gt;
:* ''predefined-color-name'': 32 color constants are predefined and recognized (see the [&lt;tvar name=url&gt;http://ploticus.sourceforge.net/doc/color.html&lt;/tvar&gt; Ploticus color page] where all these constants are defined).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:641--&gt;
:* '''&lt;tvar name=1&gt;rgb&lt;/tvar&gt;('''''red''''','''''green''''','''''blue''''')''': specify 3 numbers between 0 (minimal) and 1 (maximal)&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:642--&gt;
:* '''&lt;tvar name=1&gt;hsb&lt;/tvar&gt;('''''hue''''','''''saturation''''','''''brightness''''')''': specify 3 numbers between 0 and 1.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:643--&gt;
:* '''&lt;tvar name=1&gt;gray&lt;/tvar&gt;('''''value''''')''': specify a number between 0 (black) and 1 (white).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:644--&gt;
: ''Notes''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:645--&gt;
:# 0 and 1 colorspace coordinates must be specified as integers only, intermediate coordinates require a dot as the decimal separator after 0.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:646--&gt;
:# To create RGB or HSV colors please see [&lt;tvar name=url&gt;http://web.bentley.edu/empl/c/ncarter/MA307/color-converter.html&lt;/tvar&gt; RGB/HSB Color converter]&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:647--&gt;
: ''Hexadecimal to rgb()''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:648--&gt;
:: To convert from hexadecimal (#D09916) to rgb (rgb(0.816,0.600,0.086)):&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:649--&gt;
::# Visit [&lt;tvar name=url&gt;http://www.colorhexa.com/&lt;/tvar&gt; ColorHexa], and search for your hexadecimal colour.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:650--&gt;
::# Read the line of text at the start along the lines of "In a RGB color space, hex ... is composed of RR.R% red, GG.G% green and BB.B% blue".&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:651--&gt;
::# Divide the three numbers (RR.R, GG.G and BB.B) by 100, and use the resultant number (between 0 and 1) as the values for rgb().

&lt;!--T:466--&gt;
; &lt;tvar name=1&gt;legend&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''some_text'' ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:652--&gt;
: Specifies the text that should be displayed in the [[&lt;tvar name=1&gt;#Legend&lt;/tvar&gt;|legend]] for this color. If this attribute is omitted no entry will appear in the legend at all.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:653--&gt;
: '''Notes:'''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:654--&gt;
:# See [[&lt;tvar name=1&gt;#Text input&lt;/tvar&gt;|Text Input]] for rules.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:655--&gt;
:# Embedded links are supported in legend texts, see [[&lt;tvar name=1&gt;#Clickable maps&lt;/tvar&gt;|Clickable maps]].

&lt;!--T:467--&gt;
Example:
&lt;/translate&gt;

&lt;pre&gt;
Colors =
  id:war       value:red   legend:War_Period
  id:peace     value:blue  legend:Peace_Time
  id:treaty    value:rgb(0.6,0,0.6)
  id:lightgrey value:gray(0.9)
  id:darkgrey  value:gray(0.1)
&lt;/pre&gt;

&lt;translate&gt;
==== Predefined colors ==== &lt;!--T:468--&gt;
&lt;/translate&gt;

&lt;timeline&gt;
Imagesize = width:393 height:281
PlotArea  = left:5 right:5 top:0 bottom:257
Period    = from:2 till:3 #dummy
TimeAxis  = orientation:horizontal #dummy
Legend    = position:bottom
Colors =
  id:black        value:black        legend:black
  id:tan2         value:tan2         legend:tan2
  id:tan1         value:tan1         legend:tan1
  id:white        value:white        legend:white

  id:pink         value:pink         legend:pink
  id:coral        value:coral        legend:coral
  id:magenta      value:magenta      legend:magenta
  id:claret       value:claret       legend:claret
  id:red          value:red          legend:red

  id:redorange    value:redorange    legend:redorange
  id:orange       value:orange       legend:orange
  id:lightorange  value:lightorange  legend:lightorange

  id:yelloworange value:yelloworange legend:yelloworange
  id:yellow2      value:yellow2      legend:yellow2
  id:yellow       value:yellow       legend:yellow
  id:dullyellow   value:dullyellow   legend:dullyellow

  id:brightgreen  value:brightgreen  legend:brightgreen
  id:green        value:green        legend:green
  id:kelleygreen  value:kelleygreen  legend:kelleygreen
  id:teal         value:teal         legend:teal
  id:drabgreen    value:drabgreen    legend:drabgreen
  id:yellowgreen  value:yellowgreen  legend:yellowgreen
  id:limegreen    value:limegreen    legend:limegreen

  id:skyblue      value:skyblue      legend:skyblue
  id:oceanblue    value:oceanblue    legend:oceanblue
  id:blue         value:blue         legend:blue
  id:brightblue   value:brightblue   legend:brightblue
  id:darkblue     value:darkblue     legend:darkblue

  id:purple       value:purple       legend:purple
  id:lightpurple  value:lightpurple  legend:lightpurple
  id:powderblue   value:powderblue   legend:powderblue
  id:powderblue2  value:powderblue2  legend:powderblue2
  id:lavender     value:lavender     legend:lavender
TextData =
  pos:(0,0) text:
&lt;/timeline&gt;

&lt;translate&gt;
==== Reference to Colors in HTML ==== &lt;!--T:476--&gt;
&lt;/translate&gt;
{|
|-
|bgcolor="#000000"|&lt;span style="color:white;"&gt;#000000&lt;/span&gt;
|bgcolor="#b29999"|#b29999
|bgcolor="#e5d3c9"|#e5d3c9
|bgcolor="#ffffff"|#ffffff
||&amp;nbsp;
||&amp;nbsp;
||&amp;nbsp;
|-
|bgcolor="#ffcccc"|#ffcccc
|bgcolor="#ff9999"|#ff9999
|bgcolor="#ff4c7f"|#ff4c7f
|bgcolor="#b24c4c"|&lt;span style="color:white;"&gt;#b24c4c&lt;/span&gt;
|bgcolor="#ff0000"|#ff0000
|bgcolor="#dc143c"|#dc143c
||&amp;nbsp;
|-
|bgcolor="#ff7f00"|#ff7f00
|bgcolor="#ff9e23"|#ff9e23
|bgcolor="#ffcc99"|#ffcc99
|bgcolor="#ffd800"|#ffd800
|bgcolor="#eaea00"|#eaea00
|bgcolor="#ffff00"|#ffff00
|bgcolor="#ffe599"|#ffe599
|-
|bgcolor="#00ff00"|#00ff00
|bgcolor="#00b200"|#00b200
|bgcolor="#4c994c"|&lt;span style="color:white;"&gt;#4c994c&lt;/span&gt;
|bgcolor="#007f33"|&lt;span style="color:white;"&gt;#007f33&lt;/span&gt;
|bgcolor="#99cc99"|#99cc99
|bgcolor="#99e599"|#99e599
|bgcolor="#ccffb2"|#ccffb2
|-
|bgcolor="#b2ccff"|#b2ccff
|bgcolor="#007fcc"|#007fcc
|bgcolor="#0066cc"|&lt;span style="color:white;"&gt;#0066cc&lt;/span&gt;
|bgcolor="#0000ff"|&lt;span style="color:white;"&gt;#0000ff&lt;/span&gt;
||&amp;nbsp;
||&amp;nbsp;
||&amp;nbsp;
|-
|bgcolor="#770077"|&lt;span style="color:white;"&gt;#770077&lt;/span&gt;
|bgcolor="#aa4caa"|&lt;span style="color:white;"&gt;#aa4caa&lt;/span&gt;
|bgcolor="#9999ff"|#9999ff
|bgcolor="#b2b2ff"|#b2b2ff
|bgcolor="#ccb2cc"|#ccb2cc
||&amp;nbsp;
||&amp;nbsp;
|-
|}

{{anchor|dateformat}}
&lt;translate&gt;
=== DateFormat === &lt;!--T:478--&gt;

&lt;!--T:479--&gt;
This command defines how dates, specified in other commands, should be interpreted.

&lt;!--T:480--&gt;
Valid date formats are:

&lt;!--T:481--&gt;
; dd/mm/yyyy ''(dates in most English-speaking countries)''
: Dates are interpreted as day/month/year
: '''Note''': this format is only allowed for dates starting from 01/01/1800

&lt;!--T:482--&gt;
; mm/dd/yyyy ''(dates in US)''
: Dates are interpreted as month/day/year
: '''Note''': this format is only allowed for dates starting from 01/01/1800

&lt;!--T:483--&gt;
; yyyy (this is the default format)
: This deals with [[:en:integer|integer]]s from -9999 to 9999 without leading zeroes

&lt;!--T:484--&gt;
''Note'' that the following formats are still not supported:
* the ISO 8601 standard format: '''yyyy-mm-dd''' (standard in Canada).
* the alternate Central-European standard format: '''yyyy.mm.dd'''.
* the date formats with month but without day: '''mm/yyyy''' or ISO 8601 '''yyyy-mm'''.
* the date formats with quarters: '''qq/yyyy''' or ISO 8601 '''yyyy-Qq'''.
* other date element separators, multilingual abbreviated month names...

&lt;!--T:485--&gt;
Example:
&lt;/translate&gt;
&lt;pre&gt;
DateFormat = mm/dd/yyyy
&lt;/pre&gt;

{{anchor|define}}
&lt;translate&gt;
=== Define === &lt;!--T:486--&gt;

&lt;!--T:487--&gt;
This command allows definition of text constants, i.e. shorthands for pieces of script code that occur multiple times.
Text constants should always start with a '''$''' (dollar sign).

&lt;!--T:488--&gt;
Example:
&lt;/translate&gt;

&lt;pre&gt;
Define $broad       = width:30
Define $narrow      = width:10
Define $bardefaults = $broad fontsize:S
&lt;/pre&gt;

{{anchor|imagesize-(mandatory)|ImageSize}}
&lt;translate&gt;
=== ImageSize (mandatory) === &lt;!--T:489--&gt;

&lt;!--T:490--&gt;
This command defines the overall size of the final image. Specify values in [[&lt;tvar name=1&gt;#Measurements&lt;/tvar&gt;|absolute measurements]].

&lt;!--T:491--&gt;
; &lt;tvar name=2&gt;width&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''pixels/auto''
: Width of final image in pixels: maximum is 1600 pixels, minimum is 25
: (can also be set to '''auto''' if the [[&lt;tvar name=1&gt;#TimeAxis (mandatory&lt;/tvar&gt;|TimeAxis]] direction is set to '''vertical''').

&lt;!--T:492--&gt;
; &lt;tvar name=2&gt;height&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''pixels/auto''
: Height of final image in pixels: maximum is 1200 pixels, minimum is 25
: (can also be set to '''auto''' if the [[&lt;tvar name=1&gt;#TimeAxis (mandatory&lt;/tvar&gt;|TimeAxis]] direction is set to '''horizontal''').

&lt;!--T:493--&gt;
; &lt;tvar name=1&gt;barincrement&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''pixels''
: Amount in pixels that should be added to the image size for each bar specified
: (only allowed in combination with width:auto or height:auto, and then mandatory).

&lt;!--T:494--&gt;
For maximum flexibility you can let the script calculate the height or width of the image, based on the number of bars and the amount in pixels to add per bar. Specify '''&lt;tvar name=1&gt;height:auto&lt;/tvar&gt;''' (for horizontal time axis) or '''&lt;tvar name=2&gt;width:auto&lt;/tvar&gt;''' (for vertical time axis).
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:495--&gt; This is especially helpful when the number of bars in a timeline is likely to change over time again and again.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:720--&gt; Or to ensure equal distances between bars in images with many narrow bars where differences in amount of white space would soon be noticed (see for a real example [[:en:Template:Vocal and instrumental pitch ranges|:en:Template:Vocal and instrumental pitch ranges]]).&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:721--&gt; Or to make sure several related timelines always use the same distance between bars, no matter how many bars each contains (see for a real example [[:en:List of popes (graphical)|:en:List of popes (graphical)]].&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:722--&gt; In short it is a good idea most of the time.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:496--&gt;
Examples:
&lt;/translate&gt;

&lt;pre&gt;
ImageSize = width:800 height:600

ImageSize = width:800 height:auto barincrement:30
&lt;/pre&gt;

{{anchor|legend}}
&lt;translate&gt;
=== Legend === &lt;!--T:498--&gt;

&lt;!--T:499--&gt;
A legend will only be shown when this command is present, and at least one of the [[&lt;tvar name=1&gt;#Colors&lt;/tvar&gt;|colors]] has the &lt;tvar name=2&gt;&lt;code&gt;legend:&lt;/code&gt;&lt;/tvar&gt; attribute specified.
There are several ways to define the appearance and position of the legend. Some attributes are mutually exclusive (see below).

&lt;!--T:500--&gt;
; &lt;tvar name=1&gt;orientation&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''hor/ver'' ''(optional)''
: Specify &lt;tvar name=2&gt;hor[izontal]&lt;/tvar&gt; or &lt;tvar name=3&gt;ver[tical]&lt;/tvar&gt; (default).
: ''restriction'': orientation = '&lt;tvar name=4&gt;horizontal&lt;/tvar&gt;' and position = '&lt;tvar name=5&gt;right&lt;/tvar&gt;' are mutually exclusive

&lt;!--T:501--&gt;
; &lt;tvar name=1&gt;position&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''top/bottom/right'' ''(optional)''
: Defines placement of the legend relative to the chart area. Specify top, bottom (default) or right.
: ''restriction'': orientation = '&lt;tvar name=2&gt;horizontal&lt;/tvar&gt;' and position = '&lt;tvar name=3&gt;right&lt;/tvar&gt;' are mutually exclusive

&lt;!--T:502--&gt;
; &lt;tvar name=1&gt;columns&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''integer'' ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:723--&gt;
: Specify 1, 2, 3 or 4.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:724--&gt;
: When this attribute is omitted the number of columns is determined as follows:&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:725--&gt;
:* '''&lt;tvar name=1&gt;orientation horizontal&lt;/tvar&gt;''': Attribute columns does not apply here. All entries will be on the same line.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:726--&gt;
:* '''&lt;tvar name=1&gt;orientation vertical&lt;/tvar&gt;''':&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:727--&gt;
:** '''&lt;tvar name=1&gt;position right&lt;/tvar&gt;''': All entries will be in one column&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:728--&gt;
:** '''&lt;tvar name=1&gt;position top&lt;/tvar&gt;''' or '''&lt;tvar name=2&gt;bottom&lt;/tvar&gt;''': The number of columns depends on the number of entries to be shown:&lt;br /&gt;1-5 entries: 1 column, 6-10 entries: 2 columns, 11 or more entries: 3 columns.

&lt;!--T:503--&gt;
'''''Tip:''' you may consider omitting the following parameters at first, and only add them when defaults settings are not satisfactory.''

&lt;!--T:504--&gt;
; &lt;tvar name=1&gt;columnwidth&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' ''(optional)''
: Defines the distance between columns. You can specify an [[&lt;tvar name=2&gt;#Measurements&lt;/tvar&gt;|absolute distance]] or a relative distance (as percentage of the image width).
: ''restriction'': this parameter is ignored when columns = 1 is defined or implied.

&lt;!--T:505--&gt;
; &lt;tvar name=1&gt;left&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' ''(optional)''
: Defines the distance between the left side of the legend and the left side of the image. You can specify an absolute distance or a relative distance (as percentage of the page width).

&lt;!--T:506--&gt;
; &lt;tvar name=1&gt;top&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' ''(optional)''
: Defines the distance between the top of the legend and the bottom of the image. You can specify an absolute distance or a relative distance (as percentage of the page height).

&lt;!--T:507--&gt;
Examples:
&lt;/translate&gt;

&lt;pre&gt;
Legend = orientation:vertical position:bottom columns:3 columnwidth:140

Legend = orientation:horizontal position:bottom

Legend = left:100 top:120 columns:3
&lt;/pre&gt;

{{anchor|linedata}}
&lt;translate&gt;
=== LineData === &lt;!--T:510--&gt;

&lt;!--T:511--&gt;
Some timelines extend over several clearly distinct periods. A line demarcating these periods may serve as a visual aid.

&lt;!--T:512--&gt;
; &lt;tvar name=1&gt;at&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time''
: Draws a line perpendicular to the time axis (between minimum and maximal positions, see also below).
: Specify the date/year where the line should be drawn, in compliance with the specified [[&lt;tvar name=2&gt;#DateFormat&lt;/tvar&gt;|DateFormat]].

&lt;!--T:513--&gt;
; &lt;tvar name=1&gt;color&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''color-id'' ''(optional)''
: Specify the color in which the line should drawn.
: '''Note''': The color id specified should be defined first with command [[&lt;tvar name=2&gt;#Colors&lt;/tvar&gt;|Colors]].

&lt;!--T:514--&gt;
; &lt;tvar name=1&gt;layer&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''front/back'' ''(optional)''
: Specify front or back (default). Defines whether the line should appear in front of or behind all time segment bars.

&lt;!--T:515--&gt;
; &lt;tvar name=1&gt;width&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' ''(optional)''
: Specify value between 0.1 (very thin) and 10 (very thick); the default value is 1

&lt;!--T:516--&gt;
'''Advanced positioning options'''

&lt;!--T:517--&gt;
You can draw lines in any direction. Only in rare cases the following extra attributes may be needed for full flexibility:

&lt;!--T:656--&gt;
# ''Parallel to the time axis'' with arbitrary start and stop times:&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:657--&gt;
#; &lt;tvar name=1&gt;atpos&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''position''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:658--&gt;
#; &lt;tvar name=1&gt;from&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time'' ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:659--&gt;
#; &lt;tvar name=1&gt;till&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time'' ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:660--&gt;
#: Specify the [[&lt;tvar name=1&gt;#Measurement&lt;/tvar&gt;|absolute or relative position]] on the axis orthogonal to the [[&lt;tvar name=2&gt;#TimeAxis (mandatory)&lt;/tvar&gt;|TimeAxis]].&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:661--&gt;
#: Specify the dates/years between which the line should be drawn, in compliance with the specified [[&lt;tvar name=1&gt;#DateFormat&lt;/tvar&gt;|DateFormat]] (default is the full range of time as set in the mandatory [[&lt;tvar name=2&gt;#Period (mandatory)&lt;/tvar&gt;|Period]] command, see also below).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:662--&gt;
# ''Orthogonal to the time axis'' with arbitrary start and stop positions:&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:663--&gt;
#; at&lt;nowiki&gt;:&lt;/nowiki&gt;''time''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:664--&gt;
#; frompos&lt;nowiki&gt;:&lt;/nowiki&gt;''position'' ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:665--&gt;
#; tillpos&lt;nowiki&gt;:&lt;/nowiki&gt;''position'' ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:666--&gt;
#: Specify the date/year where the line should be drawn, in compliance with the specified [[&lt;tvar name=1&gt;#DateFormat&lt;/tvar&gt;|DateFormat]].&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:667--&gt;
#: Specify the start and stop [[&lt;tvar name=1&gt;#Measurement&lt;/tvar&gt;|absolute or relative positions]] on the axis orthogonal to the [[&lt;tvar name=2&gt;#TimeAxis (mandatory)&lt;/tvar&gt;|TimeAxis]] (default is the full length of the [[&lt;tvar name=3&gt;#DrawArea&lt;/tvar&gt;|DrawArea]]).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:668--&gt;
#: Draws a line orthogonal to the time axis (default at full range of time as set in the mandatory [[&lt;tvar name=1&gt;#Period (mandatory)&lt;/tvar&gt;|Period]] command, see also below).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:669--&gt;
# ''In any direction'' with arbitrary start and stop points:&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:670--&gt;
#; points&lt;nowiki&gt;:&lt;/nowiki&gt;(''x1'',''y1'')(''x2'',''y2'')&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:671--&gt;
#: Specify the [[&lt;tvar name=1&gt;#Measurement&lt;/tvar&gt;|absolute or relative positions]] as coordinates, independently of the direction of the time axis.

&lt;!--T:518--&gt;
Example:
&lt;/translate&gt;

&lt;timeline&gt;
ImageSize  = width:200 height:120
PlotArea   = left:20 right:10 top:10 bottom:20
TimeAxis   = orientation:horizontal
AlignBars  = justify
Colors =
  id:gray1 value:gray(0.3)
  id:gray2 value:gray(0.5)
  id:gray3 value:gray(0.7)
Period     = from:0 till:10
ScaleMajor = unit:year increment:1 start:0

PlotData =
  bar:X color:gray1 width:15
  from:start till:end
  bar:Y color:gray2
  from:start till:end
  bar:Z color:gray3
  from:start till:end

LineData =
  layer:front
  at:1                         color:yellow
  at:2                         color:orange  layer:back
  at:4  frompos:50 tillpos:105 color:green
  from:5 till:8 atpos:50       color:red
  points:(100,20)(170,105)     color:blue    width:3
&lt;/timeline&gt;

&lt;syntaxhighlight lang="perl" line style="font-size:90%"&gt;
LineData =
  layer:front                                            # all lines in front of bars unless stated otherwise
  at:1                         color:yellow              # perpendicular to time axis full length
  at:2                         color:orange  layer:back  # perpendicular to time axis full length but behind bars
  at:4  frompos:50 tillpos:105 color:green               # perpendicular to time axis, with specified start and stop points
  from:5 till:8 atpos:50       color:red                 # parallel to time axis
  points:(100,20)(170,105)     color:blue    width:3     # from one arbitrary absolute position to another, extra thick
&lt;/syntaxhighlight&gt;

{{anchor|period-(mandatory)|Period}}
&lt;translate&gt;

=== &lt;tvar name=1&gt;Period&lt;/tvar&gt; (mandatory) === &lt;!--T:522--&gt;

&lt;!--T:523--&gt;
Defines the time period that will be displayed in the chart. Both parameters are mandatory. Specify dates in compliance with specified [[&lt;tvar name=1&gt;#DateFormat&lt;/tvar&gt;|DateFormat]].

&lt;!--T:524--&gt;
; &lt;tvar name=1&gt;from&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time''
: Timeline starts here. The specified value can be referenced as start in commands like [[&lt;tvar name=2&gt;#PlotData&lt;/tvar&gt;|PlotData]] and [[&lt;tvar name=3&gt;#TextData&lt;/tvar&gt;|TextData]].

&lt;!--T:525--&gt;
; &lt;tvar name=1&gt;till&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time''
: Time ends here. The specified value can be referenced as end in other commands.

&lt;!--T:526--&gt;
Example:
&lt;pre&gt;
Period = from:01/09/1939 till:02/09/1945
&lt;/pre&gt;
&lt;/translate&gt;

{{anchor|plotarea-(mandatory)}}
&lt;translate&gt;
=== PlotArea (mandatory) === &lt;!--T:527--&gt;

&lt;!--T:528--&gt;
; &lt;tvar name=1&gt;left&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance''
: Margin between left side of image and left side of plot area. Specify value in absolute or relative measurements.

&lt;!--T:529--&gt;
; &lt;tvar name=1&gt;top&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance''
: Margin between top of image and top of plot area. Specify value in absolute or relative measurements.

&lt;!--T:530--&gt;
; &lt;tvar name=1&gt;right&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' ''(recommended)''
: Margin between right side of image and right side of plot area. Specify value in absolute or relative measurements.
: This attribute and the deprecated ''&lt;tvar name=2&gt;width&lt;/tvar&gt;'' attribute are mutually exclusive.

&lt;!--T:531--&gt;
; &lt;tvar name=1&gt;bottom&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' ''(recommended)''
: Margin between bottom of image and bottom of plot area. Specify value in absolute or relative measurements.
: This attribute and the deprecated ''&lt;tvar name=2&gt;height&lt;/tvar&gt;'' attribute are mutually exclusive.
: The minimum value for this attribute is 20 pixels if you have specified legend labels (see [[&lt;tvar name=3&gt;#Legend&lt;/tvar&gt;|Legend]]).

&lt;!--T:532--&gt;
; &lt;tvar name=1&gt;&lt;s&gt;width&lt;/s&gt;&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' ''(deprecated)''
: Specify value in [[&lt;tvar name=2&gt;#Measurements&lt;/tvar&gt;|absolute or relative measurements]].
: '''do not use anymore''', see the ''&lt;tvar name=3&gt;right&lt;/tvar&gt;'' attribute above.

&lt;!--T:533--&gt;
; &lt;tvar name=1&gt;&lt;s&gt;height&lt;/s&gt;&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' ''(deprecated)''
: Specify value in absolute or relative measurements.
: '''do not use anymore''', see the ''&lt;tvar name=2&gt;bottom&lt;/tvar&gt;'' attribute above.

&lt;!--T:534--&gt;
'''Notes:'''
# The ''&lt;tvar name=1&gt;width&lt;/tvar&gt;'' and ''&lt;tvar name=2&gt;height&lt;/tvar&gt;'' attributes are only retained for downward compatibility. Earlier a plot area could only be defined by its total ''&lt;tvar name=3&gt;width&lt;/tvar&gt;'' and ''&lt;tvar name=4&gt;height&lt;/tvar&gt;'', and ''&lt;tvar name=5&gt;left&lt;/tvar&gt;'' and ''&lt;tvar name=6&gt;bottom&lt;/tvar&gt;'' margins.
# Now you can specify all four margins, and are advised to do so, and not use ''&lt;tvar name=7&gt;width&lt;/tvar&gt;'' and ''&lt;tvar name=8&gt;height&lt;/tvar&gt;'' attributes anymore.
# The advantage is added flexibility: when you change the overall image size, you do not need to adjust the plotarea definition as well. This is even more important when the image size is calculated automatically (see [[&lt;tvar name=9&gt;#ImageSize (mandatory)&lt;/tvar&gt;|ImageSize]]).

&lt;!--T:535--&gt;
Example:
&lt;/translate&gt;

&lt;pre&gt;
PlotArea = left:40 bottom:60 top:10 right:10 # e.g. extra space to the left and below the plot area for axis labels and legend
&lt;/pre&gt;

{{anchor|plotdata}}
&lt;translate&gt;
=== PlotData === &lt;!--T:536--&gt;

&lt;!--T:537--&gt;
Used to define bars (symbolizing a time period), and add text next to these bars on a specific position.

&lt;!--T:538--&gt;
For texts which are not related to a certain period or date/year or which require extensive formatting use command [[&lt;tvar name=1&gt;#TextData&lt;/tvar&gt;|TextData]].

&lt;!--T:539--&gt;
Attributes ''&lt;tvar name=1&gt;text&lt;/tvar&gt;'', ''&lt;tvar name=2&gt;at&lt;/tvar&gt;'', ''&lt;tvar name=3&gt;from&lt;/tvar&gt;'' and ''&lt;tvar name=4&gt;till&lt;/tvar&gt;'' always apply only to the line on which they occur. All other attributes, when not combined with one of these four, act as default for the remainder of the command block or until a new default is specified, and may be overruled for a single line. See [[&lt;tvar name=5&gt;#Parameters vs data items&lt;/tvar&gt;|Parameters vs data items]] for more info and an example.

&lt;!--T:540--&gt;
PlotData accepts a lot of attributes, some of which are mutually exclusive. These attributes can be grouped as follows:
* Positional attributes
* Bar related attributes
* Text attributes
* Marker attribute

==== Positional attributes ==== &lt;!--T:541--&gt;

&lt;!--T:542--&gt;
; &lt;tvar name=1&gt;at&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time'' ''(applies only to current line in data block)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:699--&gt;
: Specifies at which date/year a text or [[&lt;tvar name=1&gt;#Marker attributes&lt;/tvar&gt;|marker]] should be positioned. Depending on attribute '''&lt;tvar name=2&gt;align&lt;/tvar&gt;''' the text either starts, ends or is centered at this position. Use date/year format as specified in [[&lt;tvar name=3&gt;#DateFormat&lt;/tvar&gt;|DateFormat]] or specify ''&lt;tvar name=4&gt;start&lt;/tvar&gt;'' or ''&lt;tvar name=5&gt;end&lt;/tvar&gt;'' which refers to time frame defined by command [[&lt;tvar name=6&gt;#Period&lt;/tvar&gt;|Period]].&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:700--&gt;
: ''Note:'' This attribute can not be combined with attributes '''&lt;tvar name=1&gt;from&lt;/tvar&gt;''' and '''&lt;tvar name=2&gt;till&lt;/tvar&gt;'''.

&lt;!--T:543--&gt;
; &lt;tvar name=1&gt;from&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time'' ''(applies only to current line in data block)''
; &lt;tvar name=2&gt;till&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time'' ''(applies only to current line in data block)''
: Specifies at which date/year a bar should start and end. Use date/year format as specified in [[&lt;tvar name=3&gt;#DateFormat&lt;/tvar&gt;|DateFormat]] or specify ''start'' which refers to time frame defined by command Period.
: ''Note:'' These two attributes should be used in combination and can not be combined with attribute '''&lt;tvar name=4&gt;at&lt;/tvar&gt;'''.

&lt;!--T:544--&gt;
; &lt;tvar name=1&gt;shift&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;(''x'',''y'') ''(optional)''
: Specifies a horizontal and vertical displacement in [[&lt;tvar name=2&gt;#Measurements&lt;/tvar&gt;|absolute measurements]] for a text. This allows:
:* Texts to be shifted to avoid overlaps between successive bars;
:* Placement of text beside a bar, instead of on top of it.

&lt;!--T:545--&gt;
Examples:
&lt;/translate&gt;

&lt;pre&gt;
PlotData=
  bar:Japan from:start      till:19/02/1945 color:JT
  bar:Japan from:19/02/1945 till:14/03/1945 color:AI
  bar:Japan from:02/09/1945 till:end        color:AO

  at:07/12/1941 shift:(0,-15) text:"&lt;-- WW2 reaches Asia"
&lt;/pre&gt;

&lt;translate&gt;
==== Bar related attributes ==== &lt;!--T:547--&gt;

&lt;!--T:548--&gt;
; &lt;tvar name=1&gt;bar&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''bar-id''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:701--&gt;
: Specifies to which bar all other attributes apply (including the optional marker attributes and text attributes).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:702--&gt;
: The ''bar-id'' specified here will also be the text presented along the axis, next to the bar.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:703--&gt;
:* When command [[&lt;tvar name=1&gt;#BarData&lt;/tvar&gt;|BarData]] has '''not''' been used, bars will be drawn in the order in which they occur in any [[&lt;tvar name=2&gt;#PlotData&lt;/tvar&gt;|PlotData]] data block.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:704--&gt;
:* When command [[&lt;tvar name=1&gt;#BarData&lt;/tvar&gt;|BarData]] has been used, bars will presented in the order specified there, also the ''bar-id'' specified here will be validated against that list. Also the text presented along the axis will depend on the definition in BarData.

&lt;!--T:549--&gt;
; &lt;tvar name=1&gt;barset&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''barset-id'' (''optional'')&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:705--&gt;
: Restarts the bar display "from the top", allowing multiple bars on the same line.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:706--&gt;
: The specified ''barset-id'' must have been declared in [[&lt;tvar name=1&gt;#BarData&lt;/tvar&gt;|BarData]].&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:707--&gt;
: The default barset is anonymous and needs not be specified if there's no [[&lt;tvar name=1&gt;#BarData&lt;/tvar&gt;|BarData]].&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:708--&gt;
: Blank lines may be added to skip over lines that you do not wish to add to with declarations such as &lt;tvar name=1&gt;&lt;code&gt;at:1234&lt;/code&gt;&lt;/tvar&gt; with no further attributes. Multiple bars may then be specified on after this attribute.

&lt;!--T:550--&gt;
; &lt;tvar name=1&gt;color&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''color-id'' (''optional'')
: Specifies the color is which the bar should be drawn.
: The color id specified should be defined first with command [[&lt;tvar name=2&gt;#Colors&lt;/tvar&gt;|Colors]].
: The default value will be the same color as the previously specified bar.

&lt;!--T:551--&gt;
; &lt;tvar name=1&gt;width&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' (''optional'')
: Specifies the width of the bar in [[&lt;tvar name=2&gt;#Measurements&lt;/tvar&gt;|absolute or relative measurements]].
: The default value will be computed according to the total size of the [[&lt;tvar name=3&gt;#PlotArea (mandatory)&lt;/tvar&gt;|PlotArea]], and the maximum number of bars in all barsets (including the default anonymous barset).

&lt;!--T:552--&gt;
Example:
&lt;/translate&gt;

&lt;pre&gt;
BarData=
  bar:US text:United States
  bar:SB text:Sea Battles

Colors=
  id:US value:blue legend:United_States
  id:SB value:rgb(0.8,0,0.7) legend:Sea_Battles

PlotData=
  width:0.3                                                            # see note 1
  bar:SB     from:07/08/1942 till:09/02/1943 text:Guadalcanal color:SB # see note 2
  bar:US     from:start      till:end color:US                         # see note 3
  bar:Midway from:start      till:end color:US                         # see note 4
  bar:US     at:07/12/1941   text:7/12 Pearl Harbour                   # see note 5
&lt;/pre&gt;

&lt;translate&gt;&lt;!--T:736--&gt; Notes:&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:737--&gt; this line establishes a default bar width for the remainder of the data block&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:738--&gt; this line specifies a bar to be drawn and a text to placed on it at the same time&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:739--&gt; bar US will be drawn before bar SB, even when specified after it, because command [[&lt;tvar name=1&gt;#BarData&lt;/tvar&gt;|BarData]] determines the sequence&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:740--&gt; bar Midway will be rejected because it is not declared with command [[&lt;tvar name=1&gt;#BarData&lt;/tvar&gt;|BarData]]&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:741--&gt; the last line will not result in a bar being plotted, it merely specifies on which bar the text should be placed&lt;/translate&gt;

&lt;translate&gt;
==== Text attributes (optional) ==== &lt;!--T:555--&gt;

&lt;!--T:556--&gt;
; &lt;tvar name=1&gt;text&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''some_text'' ''(applies only to current line in data block)''
: Defines a text that should be plotted on or near a bar.
: '''Notes'''
:# See also [[&lt;tvar name=2&gt;#Text Input&lt;/tvar&gt;|Text Input]] for rules.
:# The text may include embedded links (see '''Notes 1 &amp; 2''') for use in clickable maps.
:# See [[&lt;tvar name=3&gt;#Clickable maps&lt;/tvar&gt;|Clickable maps]] for information about texts with embedded links and limitations.

&lt;!--T:557--&gt;
; &lt;tvar name=1&gt;textcolor&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''color-id'' ''(optional)''
: Defines the color of the text. The color id specified should be defined first with command [[&lt;tvar name=2&gt;#Colors&lt;/tvar&gt;|Colors]]. When not specified color black will be assumed.

&lt;!--T:558--&gt;
; &lt;tvar name=1&gt;fontsize&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''integer/tag'' ''(optional)''
: Specify a point size between 6 and 30, or (preferably) one of tags XS, S (default), M, L or XL. See [[&lt;tvar name=2&gt;#Font support&lt;/tvar&gt;|Font support]] for more details.

&lt;!--T:559--&gt;
; &lt;tvar name=1&gt;anchor&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''middle/from/till'' ''(optional)''
: Specify the anchor position. If not defined, the anchor position is either explicitly set with the attribute at, or implicitly with the attributes from and till. In the latter case the text will be positioned in the middle of the defined bar segment.

&lt;!--T:560--&gt;
; &lt;tvar name=1&gt;align&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''center/left/right'' ''(optional)''
: Specify &lt;tvar name=2&gt;center&lt;/tvar&gt; (default), &lt;tvar name=3&gt;left&lt;/tvar&gt; or &lt;tvar name=4&gt;right&lt;/tvar&gt;.

&lt;!--T:561--&gt;
; &lt;tvar name=1&gt;link&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''URL'' ''(optional, applies only to current line in data block)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:709--&gt;
: Specify a web link (see '''Note 1''') (URL) for use in clickable maps. The text will be shown as a blue clickable link.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:710--&gt;
: '''Notes'''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:711--&gt;
:# This attribute can only be used with the '''&lt;tvar name=1&gt;text&lt;/tvar&gt;''' attribute.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:712--&gt;
:# Either use attribute link, or an embedded link in attribute text, not both.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:713--&gt;
:# On PNG images rendered as clickable maps, only one clickable link will be shown per text segment: text with line breaks (~) constitutes several segments.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:714--&gt;
:# See [[&lt;tvar name=1&gt;#Clickable maps&lt;/tvar&gt;|Clickable maps]] for information about texts with embedded links and limitations.

&lt;!--T:562--&gt;
Example:
&lt;/translate&gt;

&lt;pre&gt;
PlotData=
   bar:US at:07/12/1941 align:left textcolor:black fontsize:XS text:7/12 [[Pearl Harbour]]
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:563--&gt;
produces the same result as:
&lt;/translate&gt;

&lt;pre&gt;
PlotData=
   bar:US at:07/12/1941 align:left textcolor:black fontsize:XS text:"7/12 Pearl Harbour" link:http://www.wikipedia.org/wiki/Pearl_Harbour
&lt;/pre&gt;

{{anchor|Marker attributes}}
&lt;translate&gt;
==== Marker attribute (optional) ==== &lt;!--T:565--&gt;

&lt;!--T:566--&gt;
; &lt;tvar name=1&gt;mark&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;(''symbol'',''color-id'')
: Places a marker in a bar at the specified position.
:* The only value for ''symbol'' supported to date is '''&lt;tvar name=2&gt;line&lt;/tvar&gt;'''.
:* The ''color-id'' specified should be defined first with command [[&lt;tvar name=3&gt;#Colors&lt;/tvar&gt;|Colors]]. When not specified color black will be assumed.

&lt;!--T:567--&gt;
Example:
&lt;pre&gt;
PlotData=
  bar:test width:15 color:red
  from:1900 till:2000
  at:1990 mark:(line,white)
&lt;/pre&gt;

&lt;!--T:568--&gt;
will be shown as:
&lt;/translate&gt;

&lt;timeline&gt;
ImageSize  = width:140 height:60
PlotArea   = width:100 height:30 left:20 bottom:30
TimeAxis   = orientation:horizontal
DateFormat = yyyy
Period     = from:1900 till:2000
AlignBars  = early
ScaleMajor = unit:year increment:50 start:1900
Colors =
  id:canvas value:rgb(1,1,0.85)
BackgroundColors = canvas:canvas
PlotData =
  width:15 color:red
  bar:test from:1900 till:2000
  bar:test at:1990 mark:(line,white)
&lt;/timeline&gt;

{{anchor|scalemajor}}
&lt;translate&gt;
=== ScaleMajor === &lt;!--T:569--&gt;

&lt;!--T:570--&gt;
This command divides the timeline into smaller periods, either
* Graphically, through thin vertical or horizontal lines in the chart
* Textually, through stubs in the time axis, below or to the left of the chart
* Both graphically and textually

&lt;!--T:571--&gt;
; &lt;tvar name=1&gt;gridcolor&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''color-id'' ''(optional)''
: Defines the color for the grid lines.
: When this attribute is omitted no grid lines will be drawn.
: The ''color-id'' specified should be defined first with command [[&lt;tvar name=2&gt;#Colors&lt;/tvar&gt;|Colors]].

&lt;!--T:572--&gt;
; &lt;tvar name=1&gt;unit&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time-unit'' ''(optional)''
: Specifies the time unit by which the grid spacing is incremented.
: Specify '''day''', '''month''' or '''year''' (default).
: When [[&lt;tvar name=2&gt;#DateFormat&lt;/tvar&gt;|DateFormat]] = '''yyyy''' is specified, only unit '''year''' is allowed.

&lt;!--T:573--&gt;
; &lt;tvar name=1&gt;increment&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''integer'' ''(optional)''
: Specifies the (non zero) number of units by which the grid spacing is incremented.
: The default increment is '''1'''.

&lt;!--T:574--&gt;
; &lt;tvar name=1&gt;start&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''time'' ''(optional)''
: Specifies where the first grid line and/or stub should be displayed.
: Defaults to start of defined [[&lt;tvar name=2&gt;#Period&lt;/tvar&gt;|Period]].

&lt;!--T:575--&gt;
'''Note''': the orientation of the lines and/or placement of the stubs depends on the orientation of the [[&lt;tvar name=1&gt;#TimeAxis (mandatory)&lt;/tvar&gt;|TimeAxis]].

&lt;!--T:576--&gt;
Examples:
&lt;/translate&gt;

&lt;pre&gt;
ScaleMajor = gridcolor:red start:1940

ScaleMajor = gridcolor:red unit:month increment:3 start:01/09/1939
&lt;/pre&gt;

{{anchor|scaleminor}}
&lt;translate&gt;
=== ScaleMinor === &lt;!--T:578--&gt;

&lt;!--T:579--&gt;
This command defines a further subdivision of the timescale (see [[&lt;tvar name=1&gt;#ScaleMajor&lt;/tvar&gt;|ScaleMajor]] for attributes syntax).

&lt;!--T:580--&gt;
Example:
&lt;pre&gt;
ScaleMajor = grid:red  unit:year  increment:1 start:01/01/1940
ScaleMinor = grid:blue unit:month increment:3 start:01/10/1939
&lt;/pre&gt;
&lt;/translate&gt;

{{anchor|textdata}}
&lt;translate&gt;
=== TextData === &lt;!--T:581--&gt;

&lt;!--T:582--&gt;
Used to define a text block that can be positioned anywhere on the chart.

&lt;!--T:583--&gt;
; &lt;tvar name=1&gt;text&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;/tvar&gt;''some_text''
: The actual text.
: See also [[&lt;tvar name=2&gt;#Text input&lt;/tvar&gt;|Text Input]] for rules.
: The text may include [[&lt;tvar name=3&gt;#Clickable maps&lt;/tvar&gt;|embedded links]] (see also '''Notes 1 &amp; 2''').

&lt;!--T:584--&gt;
; &lt;tvar name=2&gt;&lt;nowiki&gt;pos:&lt;/nowiki&gt;&lt;/tvar&gt;(''x'',''y'')
: Defines the top-left corner of the text block in [[&lt;tvar name=1&gt;#Measurements&lt;/tvar&gt;|absolute or relative measurements]].

&lt;!--T:585--&gt;
; &lt;tvar name=1&gt;&lt;nowiki&gt;link:&lt;/nowiki&gt;&lt;/tvar&gt;''URL'' ''(optional)''
: Specify a web link (see '''Note 1''') for use in clickable maps.
: The label along the axis will be shown as a blue clickable link.

&lt;!--T:586--&gt;
; &lt;tvar name=1&gt;&lt;nowiki&gt;textcolor:&lt;/nowiki&gt;&lt;/tvar&gt;''color-id'' ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:679--&gt;
: Defines the color of the text to draw.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:680--&gt;
: The ''color-id'' specified should be defined first using [[&lt;tvar name=1&gt;#Colors&lt;/tvar&gt;|Colors]].&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:681--&gt;
: When not specified, the color is black.

&lt;!--T:587--&gt;
; &lt;nowiki&gt;fontsize:&lt;/nowiki&gt;''integer/tag'' ''(optional)''
: Specify a point size between 6 and 30, or (preferably) one of tags '''&lt;tvar name=1&gt;XS&lt;/tvar&gt;''', '''&lt;tvar name=2&gt;S&lt;/tvar&gt;''' (default), '''&lt;tvar name=3&gt;M&lt;/tvar&gt;''', '''&lt;tvar name=4&gt;L&lt;/tvar&gt;''' or '''&lt;tvar name=5&gt;XL&lt;/tvar&gt;''' (see [[&lt;tvar name=6&gt;#Font support&lt;/tvar&gt;|Font support]] for more details).

&lt;!--T:588--&gt;
; &lt;tvar name=1&gt;&lt;nowiki&gt;tabs:&lt;/nowiki&gt;&lt;/tvar&gt;(''x&lt;sub&gt;1&lt;/sub&gt;''-''alignment&lt;sub&gt;1&lt;/sub&gt;'',''x&lt;sub&gt;2&lt;/sub&gt;''-''alignment&lt;sub&gt;2&lt;/sub&gt;...'') ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:682--&gt;
: Defines position and alignment for tab character: '''^''' (caret).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:683--&gt;
: Specify multiple tab settings as a comma-separated list of ''x&lt;sub&gt;n&lt;/sub&gt;'''''-'''''align&lt;sub&gt;n&lt;/sub&gt;'' where&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:684--&gt;
:* ''x&lt;sub&gt;n&lt;/sub&gt;'' is the horizontal displacement in [[&lt;tvar name=1&gt;#Measurements&lt;/tvar&gt;|absolute measurements]] from the left side of the text;&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:685--&gt;
:* ''alignment&lt;sub&gt;n&lt;/sub&gt;'' is the alignment for the text segment (specify '''&lt;tvar name=1&gt;center&lt;/tvar&gt;''', '''&lt;tvar name=2&gt;left&lt;/tvar&gt;''' or '''&lt;tvar name=3&gt;right&lt;/tvar&gt;''').

&lt;!--T:589--&gt;
; &lt;tvar name=1&gt;&lt;nowiki&gt;lineheight:&lt;/nowiki&gt;&lt;/tvar&gt;''distance'' ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:686--&gt;
: Defines spacing between consecutive lines in [[&lt;tvar name=1&gt;#Measurements&lt;/tvar&gt;|absolute measurements]].&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:687--&gt;
: Specify a value up to 40 pixels (or 0.4in).&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:688--&gt;
: When not specified a default lineheight will be based on the font size currently in use.

&lt;!--T:590--&gt;
'''Notes''':
# Either use attribute ''link'', or an embedded link in attribute ''text'', not both.
# On PNG images only one clickable link will be shown per text segment (text with tabs (^) constitutes several segments).&lt;!-- is this strictly relevant here? --&gt;

&lt;!--T:591--&gt;
Example:
&lt;/translate&gt;

&lt;syntaxhighlight lang="moin"&gt;
TextData =
  pos:(20,67) textcolor:black fontsize:S
  tabs:(10-right,14-left,50-left,90-left,230-left)
  text:^1^1940^27/9^Germany,Italy and Japan sign [[Tripartite Pact]]
  text:^10^1944^1-22/7^Bretton Woods 44 nations establish
  text:^^^^^IMF and World Bank
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
&lt;!--T:623--&gt;
will be shown as:
&lt;/translate&gt;

&lt;timeline&gt;
ImageSize = width:400 height:70
PlotArea  = width:400 height:70 left:0 bottom:0
TimeAxis  = orientation:vertical # dummy, required
Period    = from:0 till:1 # dummy, required
Colors    =
  id:canvas value:rgb(1,1,0.85)
BackgroundColors = canvas:canvas
TextData  =
  pos:(20,67) textcolor:black fontsize:S
  tabs:(10-right,14-left,50-left,90-left,230-left)
  text:^1^1940^27/9^Germany,Italy and Japan sign [[Tripartite Pact]]
  text:^10^1944^1-22/7^Bretton Woods 44 nations establish
  text:^^^^^IMF and World Bank
&lt;/timeline&gt;

{{anchor|timeaxis-(mandatory)}}
&lt;translate&gt;
=== TimeAxis (mandatory) === &lt;!--T:592--&gt;

&lt;!--T:593--&gt;
Defines the orientation of the time axis, and textual representation of stubs along that axis.

&lt;!--T:594--&gt;
; &lt;tvar name=1&gt;&lt;nowiki&gt;format:&lt;/nowiki&gt;&lt;/tvar&gt;''time-format'' ''(optional)''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:689--&gt;
: Specify in which format dates should be presented along the time axis.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:690--&gt;
: Currently only format '''yyyy''' (default) is supported. This means that if a the &lt;tvar name=1&gt;&lt;code&gt;unit:&lt;/code&gt;&lt;/tvar&gt; attribute for [[&lt;tvar name=2&gt;#ScaleMajor&lt;/tvar&gt;|ScaleMajor]] is set to anything other than &lt;tvar name=3&gt;&lt;code&gt;year&lt;/code&gt;&lt;/tvar&gt;, the major grid lines will not be in sync with the axis labels. For instance, setting &lt;tvar name=4&gt;&lt;code&gt;unit:month&lt;/code&gt;&lt;/tvar&gt; and &lt;tvar name=5&gt;&lt;code&gt;increment:6&lt;/code&gt;&lt;/tvar&gt; will result in major gridlines every 6 months, but axis labels every 6 ''years''. Support for more formats may follow.

&lt;!--T:595--&gt;
; &lt;tvar name=1&gt;&lt;nowiki&gt;orientation:&lt;/nowiki&gt;&lt;/tvar&gt;''&lt;tvar name=2&gt;hor&lt;/tvar&gt;/&lt;tvar name=3&gt;ver&lt;/tvar&gt;''&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:742--&gt;
: Specify &lt;tvar name=3&gt;'''hor'''['''izontal''']&lt;/tvar&gt; or &lt;tvar name=4&gt;'''ver'''['''tical''']&lt;/tvar&gt;.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:743--&gt;
: The default time axis orientation is horizontal.

&lt;!--T:596--&gt;
; &lt;tvar name=1&gt;&lt;nowiki&gt;order:&lt;/nowiki&gt;''reverse''&lt;/tvar&gt; ''(optional)''
: Specify '''&lt;tvar name=2&gt;reverse&lt;/tvar&gt;''' as the option to reverse the time flow.
: The default is the forward time flow.

&lt;!--T:597--&gt;
Example:
&lt;/translate&gt;

&lt;pre&gt;
TimeAxis = orientation:horizontal format:yyyy
&lt;/pre&gt;

&lt;translate&gt;
== Presets == &lt;!--T:598--&gt;

&lt;!--T:599--&gt;
Presets are a shorthand for often used settings. They save a few code lines and promote standardisation, but may be confusing, as the timeline script become less self documenting.

&lt;!--T:600--&gt;
At the moment two presets are available:

&lt;!--T:729--&gt;
* '''&lt;tvar name=1&gt;Preset = TimeVertical_OneBar_UnitYear&lt;/tvar&gt;''', which expands to
&lt;/translate&gt;

&lt;pre&gt;
PlotArea   = left:45 right:10 top:10 bottom:10
TimeAxis   = orientation:vertical format:yyyy
DateFormat = yyyy
AlignBars  = early
ScaleMajor = unit:year
ScaleMinor = unit:year
PlotData   =
   mark:(line,white) align:left fontsize:S width:20 shift:(20,0)
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:602--&gt;
* '''&lt;tvar name=1&gt;Preset = TimeHorizontal_AutoPlaceBars_UnitYear&lt;/tvar&gt;''', which expands to
&lt;/translate&gt;

&lt;pre&gt;
ImageSize  = height:auto barincrement:20
PlotArea   = left:25 right:25 top:15 bottom:30
TimeAxis   = orientation:horizontal format:yyyy
Colors = 
  id:canvas value:gray(0.7)
  id:grid1  value:gray(0.4)
  id:grid2  value:gray(0.2)
BackgroundColors = canvas:canvas
DateFormat = yyyy
AlignBars  = justify
ScaleMajor = unit:year grid:grid1
ScaleMinor = unit:year
Legend = orientation:vertical left:35 top:130
PlotData =
   align:left anchor:from fontsize:M width:15 shift:(4,-6) textcolor:black
&lt;/pre&gt;

&lt;translate&gt;
== Implementation and integration limitations == &lt;!--T:604--&gt;
&lt;/translate&gt;

{{anchor|font-support}}
&lt;translate&gt;
=== Font support === &lt;!--T:605--&gt;

&lt;!--T:606--&gt;
Timeline has somewhat limited Unicode support:

&lt;!--T:672--&gt;
* it uses the FreeSans.ttf font, which supports a subset of all the possible glyphs ;&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:673--&gt;
* for instance, it supports the West- and East-European diacritics for the Latin alphabet, as well as the Cyrillic, Greek and Armenian alphabets, the Hebrew abjad (but without visual reordering), the Devanagari, Bengali, Gurmukhi, Gujarati, Tamil and Kannara abugidas for Indian languages, the Kanas alphasyllabaries (for basic Japanese only), and a good subset of extended general punctuation, currency unit symbols, subscript/superscript digits, letterlike symbols, fractions and Roman numbers, some arrows and mathematical operators;&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:674--&gt;
* but it lacks the Georgian alphabets, the Arabic abjad, the Hangul alphabet and syllables, the Oriya, Telugu Thai, Lao and Tibetan abugidas, the Kanji and Han ideographs (so Chinese, Korean, Georgian, Arabic and Thai are not supported, and Japanese must still be transliterated to basic Kanas or to Latin);&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:675--&gt;
* also it does not support Dingbats, as well as non linguistic symbols like box drawing characters that should be drawn using the supported line drawing commands.&lt;/translate&gt;
&lt;translate&gt;
&lt;!--T:676--&gt;
* Different fonts can be set in LocalSettings.php which may have better Unicode support. For example, the Malayalam Wikipedia uses a different font which has better Malayalam language support.
&lt;/translate&gt;

&lt;timeline&gt;
ImageSize = width:400 height:260
PlotArea  = top:0 left:0 bottom:0 right:0
Period    = from:1 till:2 # dummy
TimeAxis  = orientation:vertical #dummy
Colors    =
  id:bg value:gray(0.95)
Backgroundcolors = canvas:bg
TextData=
  pos:(10,20) fontsize:L text:"维基百科 : ideographs (not supported)"
  pos:(10,50) fontsize:L text:"ウィキペディア : kana"
  pos:(10,80) fontsize:L text:"יִשְרָאֵל‎ : Hebrew (not reordered)"
  pos:(10,110) fontsize:L text:"Ελλάς Ζυρίχης : Greek"
  pos:(10,140) fontsize:L text:"Флора Центральной Европы : Cyrillic"
  pos:(10,170) fontsize:L text:"Zażółć gęślą jaźń : Extended Latin"
  pos:(10,200) fontsize:L text:"فارسی : Persian (not supported)"
  pos:(10,230) fontsize:L text:"العربي : Arabic (not supported)"
&lt;/timeline&gt;

&lt;translate&gt;&lt;!--T:608--&gt; As a legacy of bitmap font usage, only five font tags are predefined. They will render at slightly different sizes in PNG and SVG images to produce optimal readability for both platforms.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:677--&gt; It is advised to use these tags instead of numbers whenever possible.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:678--&gt; They are: '''&lt;tvar name=1&gt;XS&lt;/tvar&gt;'''=eXtra Small, '''&lt;tvar name=2&gt;S&lt;/tvar&gt;'''=Small (default), '''&lt;tvar name=3&gt;M&lt;/tvar&gt;'''=Medium, '''&lt;tvar name=4&gt;L&lt;/tvar&gt;'''=Large, '''&lt;tvar name=5&gt;XL&lt;/tvar&gt;'''=eXtra Large&lt;/translate&gt;

&lt;timeline&gt;
ImageSize = width:144 height:92
PlotArea  = top:20 left:20 bottom:20 right:20
TimeAxis  = orientation:vertical #dummy
Period   = from:1 till:2 # dummy
Colors    =
  id:bg  value:gray(0.95)
Backgroundcolors = canvas:bg
TextData =
  pos:(10,70) fontsize:XS text:"fontsize:XS"
  pos:(10,58) fontsize:S  text:"fontsize:S"
  pos:(10,41) fontsize:M  text:"fontsize:M"
  pos:(10,25) fontsize:L  text:"fontsize:L"
  pos:(10,7)  fontsize:XL text:"fontsize:XL"
&lt;/timeline&gt;

&lt;translate&gt;
=== EasyTimeline code with template parameter or magic words === &lt;!--T:610--&gt;

&lt;!--T:611--&gt;
If you want to use easy timeline with template parameters or things like &lt;tvar name=1&gt;&lt;nowiki&gt;{{CURRENTDAY2}}&lt;/nowiki&gt;&lt;/tvar&gt; you can use &lt;tvar name=2&gt;#tag&lt;/tvar&gt; syntax:
&lt;/translate&gt;

&lt;pre&gt;
{{#tag:timeline|
Timeline code here
}}
&lt;/pre&gt;

&lt;translate&gt;&lt;!--T:613--&gt; However, one must replace all |'s with &lt;tvar name=1&gt;&lt;nowiki&gt;{{!}}&lt;/nowiki&gt;&lt;/tvar&gt; (which should be a template containing just &lt;tvar name=2&gt;&lt;code&gt;|&lt;/code&gt;&lt;/tvar&gt;).&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:735--&gt; See the section on &lt;tvar name=1&gt;#tag&lt;/tvar&gt; at &lt;tvar name=2&gt;{{ll|Help:Magic words}}&lt;/tvar&gt; for details&lt;/translate&gt;

&lt;translate&gt;
=== Known bugs and limitations in embedded links === &lt;!--T:614--&gt;
&lt;/translate&gt;

&lt;ul&gt;
&lt;li&gt;&lt;translate&gt;&lt;!--T:615--&gt; You can currently specify only one link per text segment.&lt;/translate&gt;&lt;/li&gt;

&lt;li&gt;&lt;translate&gt;&lt;!--T:616--&gt; Link trailers are not recognized, you must put the full text that is part of the link within "&lt;code&gt;[[]]&lt;/code&gt;".&lt;/translate&gt;&lt;/li&gt;

&lt;li&gt;&lt;translate&gt;&lt;!--T:617--&gt; Links that are not specified at the beginning of the text (or the beginning of a new line after a line break specified by a tilde) are incorrectly positioned (the normal text color is used at the correct position, and the text with the blue link color is overdrawn on top of it with the wrong horizontal position). See the first example trying to show "Help:Link" above in this section.&lt;/translate&gt;&lt;/li&gt;

&lt;li&gt;&lt;translate&gt;&lt;!--T:618--&gt; If the displayed text in bar legends of a PlotData contains newlines (represented by a &lt;nowiki&gt;~&lt;/nowiki&gt;), the targer URL is broken, keeping only the first word in it.&lt;/translate&gt;
&lt;p&gt;&lt;translate&gt;&lt;!--T:731--&gt; For example the following code in bar data:&lt;/translate&gt;&lt;/p&gt;

&lt;pre&gt;
  from:1935 till:2004 text:"[[Françoise Sagan|Françoise Quoirez,~alias Françoise Sagan]]" color:writer
&lt;/pre&gt;

&lt;translate&gt;
&lt;!--T:624--&gt;
currently renders as
&lt;/translate&gt;

&lt;timeline&gt;
ImageSize = width:380 height:40
Colors =
  id:g1 value:gray(0.8)
  id:g5 value:gray(0.6)
  id:writer value:rgb(0.7,1,0.7)
DateFormat = yyyy
TimeAxis = orientation:horizontal format:yyyy # required
Period = from:1900 till:2100 # required
ScaleMinor = gridcolor:g1 unit:year increment:50 start:1900
ScaleMajor = gridcolor:g5 unit:year increment:100 start:1900
AlignBars = justify
PlotArea = left:16 right:16 top:0 bottom:20 # required
BarData =
  barset:writers
PlotData =
  barset:writers width:20 align:left shift:(16,2)
  from:1935 till:2004 text:"[[Françoise Sagan|Françoise Quoirez,~alias Françoise Sagan]]" color:writer
&lt;/timeline&gt;

&lt;translate&gt;&lt;!--T:625--&gt; where the target links to [[w:Françoise|Françoise]] instead of [[w:Françoise Sagan|Françoise Sagan]], and shows the incorrect tooltip text "Françoise Sagan/.." with extra characters.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:636--&gt; This bug does not occur if the target link contains a single word.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:637--&gt; Surrounding the full text (with the link itself) with quotes does not solve the problem.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:638--&gt; Additionally, this requently causes the timeline to fail without showing the error during its rendering (no image rendered on the browser).&lt;/translate&gt;
&lt;/li&gt;

&lt;li&gt;&lt;translate&gt;&lt;!--T:619--&gt; In addition the target is assumed as belonging to the same parent page as the current subpage even though the target link does not start with a "/" (with the wiki syntax), so timelines containing links are not usable in subpages (like this one).&lt;/translate&gt;&lt;/li&gt;
&lt;/ul&gt;</text>
    <sha1>5c30bbed75ce2e83439940292ebb73e4c9d924a9</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>User talk:Suryamawar85</title>
  <ns>3</ns>
  <id>1992234</id>
  <revision>
    <id>6624092</id>
    <timestamp>2024-07-09T04:58:12Z</timestamp>
    <contributor>
      <username>Suryamawar85</username>
      <id>17970491</id>
    </contributor>
    <comment>/* "Menghadapi Tantangan Era Digital dalam Krisis Ekonomi" */ new section</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="951" xml:space="preserve">== "Menghadapi Tantangan Era Digital dalam Krisis Ekonomi" ==

Mengelola Utang dengan Bijak

Jika Anda memiliki utang, bulan Juli adalah saat yang tepat untuk mulai mengelola utang Anda dengan bijak. Mulailah dengan membuat daftar semua utang yang Anda miliki dan prioritaskan untuk melunasi utang dengan bunga tertinggi terlebih dahulu. Selain itu, pertimbangkan untuk mengonsolidasikan utang Anda ke dalam satu pinjaman dengan bunga yang lebih rendah.

Investasi untuk Masa Depan

Salah satu strategi pintar untuk meraih kesuksesan finansial di bulan Juli adalah dengan mulai berinvestasi untuk masa depan. Pertimbangkan untuk mengalokasikan sebagian pendapatan Anda untuk berinvestasi di instrumen keuangan yang sesuai dengan tujuan keuangan Anda. Dengan berinvestasi, Anda dapat memperoleh keuntungan jangka panjang dan mencapai kebebasan finansial. [[User:Suryamawar85|Suryamawar85]] ([[User talk:Suryamawar85#top|talk]]) 04:58, 9 July 2024 (UTC)</text>
    <sha1>1fb63ca33366234b3271a59a2eea6fc2050b1419</sha1>
  </revision>
</page>
<page arvcontinue="20240709005800|6624241">
  <title>Extension:EasyTimeline/installation</title>
  <ns>102</ns>
  <id>23169</id>
  <revision>
    <id>6624093</id>
    <parentid>6028136</parentid>
    <timestamp>2024-07-09T04:59:11Z</timestamp>
    <contributor>
      <username>Pppery</username>
      <id>5901069</id>
    </contributor>
    <comment>Remove some outdated (pre-shellbox?) stuff and ancient hacks. This extension is still not well-maintained</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="8629" xml:space="preserve">&lt;languages/&gt;
&lt;translate&gt;
&lt;!--T:1--&gt;
This section deals with issues on how to activate &lt;tvar name=ext&gt;{{ll|Extension:EasyTimeline|EasyTimeline}}&lt;/tvar&gt; in other MediaWiki installations.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:2--&gt; EasyTimeline is an extension to the MediaWiki software.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:3--&gt; However you need to do a few things in order to activate it.&lt;/translate&gt;

{{note|1=&lt;translate&gt;&lt;!--T:4--&gt; When you run MediaWiki on another platform than Linux, the following may not apply or be incomplete.&lt;/translate&gt;}}

&lt;translate&gt;
==Download Ploticus== &lt;!--T:5--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:6--&gt; EasyTimeline uses the open source program [&lt;tvar name=url&gt;http://ploticus.sourceforge.net/doc/welcome.html&lt;/tvar&gt; Ploticus], which is not included in the MediaWiki installation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:7--&gt; Download the proper version for your OS:&lt;/translate&gt;
http://ploticus.sourceforge.net/doc/download.html

&lt;translate&gt;&lt;!--T:78--&gt; Or, if you are on Ubuntu with shell access, you can simply do&lt;/translate&gt;

&lt;syntaxhighlight lang="shell-session"&gt;
$ sudo apt install ploticus
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
&lt;!--T:8--&gt;
EasyTimeline expects the Ploticus executable to be located at &lt;code&gt;/usr/bin/ploticus&lt;/code&gt;, if it is not just make sure it's executable and put the appropriate location in &lt;code&gt;$wgTimelinePloticusCommand&lt;/code&gt; described below.

==Download PHP/PERL scripts== &lt;!--T:11--&gt;

&lt;!--T:12--&gt;
''EasyTimeline.pl'' is the actual plug-in, written in perl.

&lt;!--T:13--&gt;
''Timeline.php'' is the MediaWiki php wrapper that invokes the perl script with proper arguments, and feeds generated image and image map (if applicable) to the html output.

&lt;!--T:14--&gt;
Download it from [[Special:ExtensionDistributor/timeline]]

&lt;!--T:15--&gt;
...or if you have shell access, go to your extensions directory, and type ...
&lt;/translate&gt;

 git clone -b REL1_28 https://gerrit.wikimedia.org/r/mediawiki/extensions/timeline.git

&lt;translate&gt;&lt;!--T:16--&gt; Do not use the EasyTimeline.pl script, or its compiled version, from the authors support page.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:17--&gt; These are meant for offline usage (= outside WikiMedia).&lt;/translate&gt;

&lt;translate&gt;
== Install fonts == &lt;!--T:20--&gt;

&lt;!--T:22--&gt;
EasyTimeline by default uses the font &lt;code&gt;FreeSans.ttf&lt;/code&gt;, which can be downloaded from [&lt;tvar name=url&gt;https://www.gnu.org/software/freefont/&lt;/tvar&gt; GNU FreeFont].

&lt;!--T:23--&gt;
Or, if you are on Ubuntu with shell access, you can simply do
&lt;/translate&gt;

&lt;syntaxhighlight lang="shell-session"&gt;
$ sudo apt install fonts-freefont-ttf
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
&lt;!--T:24--&gt;
To make sure EasyTimeline can find &lt;code&gt;FreeSans.ttf&lt;/code&gt;, set &lt;code&gt;GDFONTPATH&lt;/code&gt;, described below.

==Configure MediaWiki== &lt;!--T:26--&gt;

=== Load extension === &lt;!--T:27--&gt;

&lt;!--T:28--&gt;
Add the following to you &lt;tvar name=1&gt;{{ll|Manual:LocalSettings.php|LocalSettings.php}}&lt;/tvar&gt; file:
&lt;/translate&gt;

&lt;syntaxhighlight lang="php"&gt;
wfLoadExtension( "timeline" ); // &lt;translate nowrap&gt;&lt;!--T:29--&gt; Add EasyTimeline extension&lt;/translate&gt;
&lt;/syntaxhighlight&gt;

=== Ploticus ===

&lt;translate&gt;&lt;!--T:31--&gt; On RHEL/CentOS, for instance, &lt;code&gt;/usr/bin/pl&lt;/code&gt; is the ploticus executable.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:32--&gt; If the ploticus location on your system does not match the defaults listed at the top of &lt;code&gt;extensions/timeline/extension.json&lt;/code&gt;, you will need to explicitly set the paths, e.g.&lt;/translate&gt;

Add the following to you '''{{ll|Manual:LocalSettings.php|LocalSettings.php}}''' file:
&lt;syntaxhighlight lang="php"&gt;
$wgTimelinePloticusCommand = "/usr/bin/pl"; // &lt;translate nowrap&gt;&lt;!--T:35--&gt; alternate location of ploticus, depending on OS&lt;/translate&gt;
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
&lt;!--T:36--&gt;
Alternatively you may create symlinks to the alternate location.
&lt;/translate&gt;

{{note|1=&lt;translate&gt;&lt;!--T:37--&gt; The extension's default settings for ploticus and perl:&lt;/translate&gt;}}

&lt;syntaxhighlight lang="php"&gt;
$wgTimelinePloticusCommand = "/usr/bin/ploticus";
$wgTimelinePerlCommand = "/usr/bin/perl";
&lt;/syntaxhighlight&gt;
&lt;translate&gt;
===Font=== &lt;!--T:74--&gt;

&lt;!--T:75--&gt;
Add the following to your '''&lt;tvar name=ls&gt;{{ll|Manual:LocalSettings.php|LocalSettings.php}}&lt;/tvar&gt;''' file to make sure EasyTimeline finds the font:
&lt;/translate&gt;

&lt;syntaxhighlight lang="php"&gt;
$wgTimelineFontDirectory = "/usr/share/fonts/truetype/freefont"; // Directory containing FreeSans.ttf.
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
&lt;!--T:76--&gt;
If &lt;tvar name=ttf&gt;&lt;code&gt;FreeSans.ttf&lt;/code&gt;&lt;/tvar&gt; is not available, instead set:
&lt;/translate&gt;

&lt;syntaxhighlight lang="php"&gt;
$wgTimelineFontFile = 'ascii'; // Use the internal Ploticus font
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
===Image directory=== &lt;!--T:40--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:41--&gt; Create a directory for timeline images and ensure it's read/writable by your web server's user.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:42--&gt; For example if your web server user is "www-data", you would do:&lt;/translate&gt;

&lt;syntaxhighlight lang="shell-session"&gt;
$ cd (&lt;translate nowrap&gt;&lt;!--T:77--&gt; wiki root directory&lt;/translate&gt;)
$ mkdir images/timeline
$ chown www-data images/timeline
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
==Known problems== &lt;!--T:43--&gt;

===Command Variables are Non-Transclusion=== &lt;!--T:44--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:45--&gt; This problem occurs when an editor attempts to add certain words inside of the timeline which may be commands under document.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:46--&gt; One such example word instance would be for the word '''construction'''; when used in a timeline as a dated entry, an error type occurs, rendering the word ''construction'' as a command and not a clickable link.&lt;/translate&gt;

&lt;translate&gt;
===Charts not clickable=== &lt;!--T:47--&gt;
&lt;/translate&gt;

{{Note|1=&lt;translate&gt;&lt;!--T:52--&gt; This bug has been resolved in Ploticus 2.32&lt;/translate&gt;}}

&lt;translate&gt;
&lt;!--T:53--&gt;
If that still does not resolve problems you may want to simply edit EasyTimeline.pl to:
&lt;/translate&gt;

&lt;syntaxhighlight lang="perl"&gt;
   $MapPNG = $true ; # switched when link or hint found
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
&lt;!--T:54--&gt;
since it doesn't seem to apply when wikistyled links are just used on text tags and it can be annoying to figure that out.

===Windows only: ''Timeline error: Executable not found. Command line was:''=== &lt;!--T:55--&gt;

&lt;!--T:56--&gt;
If you are getting an error something like
&lt;/translate&gt;

 Timeline error: Executable not found. Command line was:
 "C:/Perl/bin/perl.exe" "C:/Apache2/htdocs/wiki/extensions/timeline/EasyTimeline.pl"
 -i "C:/Apache2/htdocs/wiki/images/timeline/bebc64ea32049f9fe1f251640849a318"
 -m -P "C:/pl232win32/bin/pl.exe"
 -T "C:/Apache2/htdocs/wiki/images/tmp" -A "/wiki/$1"

&lt;translate&gt;
&lt;!--T:57--&gt;
try going into your php file (usually at Timeline.php or EasyTimeline.php) and changing
&lt;/translate&gt;

&lt;syntaxhighlight lang="php"&gt;
 $ret = `{$cmdline}`;
&lt;/syntaxhighlight&gt; 

&lt;translate&gt;&lt;!--T:58--&gt; into&lt;/translate&gt;

&lt;syntaxhighlight lang="php"&gt;
 $ret = `"{$cmdline}"`;
&lt;/syntaxhighlight&gt;

&lt;translate&gt;&lt;!--T:59--&gt; You may also have modified the extension directory name, which will result in the same error even with the above fix.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:60--&gt; Set timelineFile to something like this in LocalSettings.php:&lt;/translate&gt;

&lt;syntaxhighlight lang="php"&gt;
 $wgTimelineTimelineFile = "$IP\\extensions\\EasyTimeline\\EasyTimeline.pl";
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
===Windows only: set path to perl=== &lt;!--T:61--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:62--&gt; When your mediawiki installation runs on Windows you will need to update Timeline.php.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:63--&gt; Set &lt;tvar name=code&gt;&lt;syntaxhighlight lang="php" inline&gt;$wgTimelinePerlCommand&lt;/syntaxhighlight&gt;&lt;/tvar&gt; to the path to perl.exe.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:64--&gt; The default is /usr/bin/perl, this needs to be changed for Windows.&lt;/translate&gt;

&lt;translate&gt;
===No texts displayed=== &lt;!--T:65--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:66--&gt; EasyTimeline contains a quick fix for unicode support.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:67--&gt; This requires free font FreeSans.ttf.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:68--&gt; Maybe you do not have that font in a directory where Ploticus looks.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:69--&gt; You might try to find where that is on your system: see Ploticus docs online.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:70--&gt;
If you want a different font with reasonable code point coverage, try [http://dejavu-fonts.org/ DejaVu], either Sans Condensed or Sans Extra-Light depending on your preferences.

You can set &lt;tvar name="1"&gt;&lt;code&gt;$wgTimelineFonts&lt;/code&gt;&lt;/tvar&gt; to specify the path where EasyTimeline should look for the font. 
&lt;/translate&gt;

[[Category:Graphical Timelines{{#translation:}}]]</text>
    <sha1>58150657a04cae1eae6c5f394ca42ed03c93a2bf</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Discourse/Help</title>
  <ns>0</ns>
  <id>750851</id>
  <revision>
    <id>6624094</id>
    <parentid>5422195</parentid>
    <timestamp>2024-07-09T05:26:08Z</timestamp>
    <contributor>
      <username>117.20.117.67</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6565" xml:space="preserve">{{historical|'''The experimental Discourse prototype was shut down in September 2020.&lt;br&gt;See [[phab:T247010]].'''}}

If you have questions about how to use [http://discourse-mediawiki.wmflabs.org/ discourse-mediawiki.wmflabs.org], just ask in the [https://discourse-mediawiki.wmflabs.org/c/site-feedback Site Feedback category] {{Webarchive|url=https://web.archive.org/web/20180207204744/https://discourse-mediawiki.wmflabs.org/c/site-feedback |date=2018-02-07 }} or here in the [[Talk:Discourse/Help|Discussion]] page. We improve our documentation based on the feedback received.

If you want to learn more about the project to use Discourse as a developer support channel, check [[Discourse]].

== Is Wikimedia Developer Support for you? ==
"Wikimedia Developer Support" is just a name, don't take it too literal. What matters is that the questions are related to software development, no matter how basic or slightly related they might look like. In case of doubt, post your question anyway.

The following cases are just as welcomed:
* I am a developer but not for Wikimedia.
* I ''just'' tinker with... (bots, gadgets, templates...)
* I am a... (designer, tester, sysadmin...)
* I want to learn.

== Creating your account ==
The current pilot in wmflabs.org does not support Wikimedia single user login (SUL). You can sign up via Wikimedia Phabricator or GitHub logins. 

Although the migration of users and content to the production server is theoretically possible and we count on it, at this point it is not guaranteed ([[phab:T184461|T184461]]).

== Following topics and handling notifications ==
Discourse has a collection of features to help users follow the content that is interesting to them. Web and email notifications adapt to regular actions of the users (reading, replying, being mentioned, watching, muting...). For those willing to fine tune their setup to the extreme, Discourse offers many possibilities. Do you want to be notified only when someone mentions you? Do you want to receive an email for every action happening everywhere? Something in between?

=== Five levels for tracking content ===
Discourse offers five levels for tracking topics, tags, and categories. Reading a topic entirely or during a certain time will set it to a higher level, and of course replying in a topic too. Users can refine these actions in their Notification preferences. These levels can be set manually through an icon at the right of topic, tag and category pages. The default options depend on the configuration of the site, and they can be changed via user preferences. From less to more:
* Muted: The user will not be notified about changes, and the topic(s) will not appear in their "Latest".
* Normal: The user will be notified when someone mentions them or replies to their post/comment.
* Watching first post (in tags and categories): Normal + the user will be notified about new topics created.
* Tracking: Normal + in tags and categories the user will track all topics + a count of new replies will be shown in lists.
* Watching: Tracking + the user will receive a notification for every comment.

=== Email and web notifications ===
Users will get email or web notifications depending on the defaults of the system and their user preferences. In addition to the notifications for new topics and replies mentioned above, they can receive other notifications, configur6able:
* Notifications when someone likes their posts or comments.
* A periodical digest featuring the most relevant topics or activity, which will be sent only when the user is not active in the site.
* A "mailing list mode" can be set in user preferences, which will generate emails for every action respecting muted topics, tags, and categories.

== RSS feeds ==
Discourse has RSS feeds all over. If you find a page that looks interesting to track, just add &lt;code&gt;.rss&lt;/code&gt; to the URL and chances are that a feed will be available.

Examples:
* [https://discourse-mediawiki.wmflabs.org/latest Latest] {{Webarchive|url=https://web.archive.org/web/20200908085103/https://discourse-mediawiki.wmflabs.org/latest |date=2020-09-08 }}: https://discourse-mediawiki.wmflabs.org/latest.rss {{Webarchive|url=https://web.archive.org/web/20180210074945/https://discourse-mediawiki.wmflabs.org/latest.rss |date=2018-02-10 }}
* [https://discourse-mediawiki.wmflabs.org/top Top] {{Webarchive|url=https://web.archive.org/web/20200908085007/https://discourse-mediawiki.wmflabs.org/top |date=2020-09-08 }} (and the parameters of Top can be defined in the Top page): https://discourse-mediawiki.wmflabs.org/top.rss {{Webarchive|url=https://web.archive.org/web/20201128141419/https://discourse-mediawiki.wmflabs.org/top.rss |date=2020-11-28 }}
* A category: https://discourse-mediawiki.wmflabs.org/c/ask-here.rss {{Webarchive|url=https://web.archive.org/web/20180213173423/https://discourse-mediawiki.wmflabs.org/c/ask-here.rss |date=2018-02-13 }}
* A tag: https://discourse-mediawiki.wmflabs.org/tags/authentication.rss{{Dead link|date=August 2022 |bot=InternetArchiveBot |fix-attempted=yes }}
* Public activity by a user: https://discourse-mediawiki.wmflabs.org/u/samwilson/activity.rss{{Dead link|date=August 2022 |bot=InternetArchiveBot |fix-attempted=yes }}
* Only new topics created by a user: https://discourse-mediawiki.wmflabs.org/u/samwilson/activity/topics.rss{{Dead link|date=August 2022 |bot=InternetArchiveBot |fix-attempted=yes }}

== Missing a feature that others seem to have (aka user trust levels) ==
Discourse offers more features to users as they hit milestones using the site. This mechanism called [https://meta.discourse.org/t/what-do-user-trust-levels-do/4924 user trust levels] helps preventing spam as well as overwhelming new users with features that they might not need.

These are the default user trust levels and the basic features they can use:
* New (0): Basic posts.
* Basic (1): Upload images and attachments, edit wiki posts, flag posts, send private messages, add links to user profile.
* Members (2): "Invite others to this topic", private group messages.
* Regular (3): Make own posts wikis, recategorize and rename topics, create tags, flagging posts from TL0 users as spam will hide the post and even silence them if enough regulars flag them.
* Leader (4, must be assigned manually): pin/unpin, close, archive, split/merge any topics, and edit all posts.
Disclaimer: User trust levels can be customized by administrators of a site, and therefore the Wikimedia developer Support site trust levels might differ from the defaults in the future.</text>
    <sha1>ca90bf7ad7962aaeaae51a0403006bfe556340b9</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Wikimedia Commons on WordPress</title>
  <ns>0</ns>
  <id>159319</id>
  <revision>
    <id>6624095</id>
    <parentid>6538210</parentid>
    <timestamp>2024-07-09T05:35:18Z</timestamp>
    <contributor>
      <username>175.100.59.53</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="1497" xml:space="preserve">&lt;languages /&gt;
{{Tool
|status = experimental
|type1 = plugin
|type2 = wordpress
|username =
|author =
|description =
|image =
|imagesize =
|version =
|update =
|language = PHP
|mediawiki =
|php =
|license =
|download = {{GithubDownload|JeanFred|CommonsOnCMS}}
|readme =
|changelog =
|parameters =
|tags =
|example =
|compatibility =
}}
&lt;translate&gt;
&lt;!--T:1--&gt;
Prototype of a plugin to embed Wikimedia Commons files in WordPress for disambiguation konkret Wikimedia licences

which mean to  handicap Wikipedia 

by themes and mean the fal licence is in original Wikipedia a contract about free cigarettes provided to smoker 

by a personalstatement and a free art contract licence by special educate to template were know how long wikimedia 

Julian dated payment bills provide

the unresulted common act as wikimedia

on the shell of cigarettes and no by Wikipedia who has also aesthetical licences

and perhaps no wikimedia licence.

the negatives in the affaire direct to the

node called Wega who arranged the wikimedia and not the Wikipedia by a phone

order now there cigarettes free from the abuse cigarettes with the not for sale licence

and the abuse  by vig

== History == &lt;!--T:2--&gt;

&lt;!--T:3--&gt;
Developed in 2011 as part of a &lt;tvar|project&gt;{{ll|Wikimedia Commons on WordPress/Student project}}&lt;/&gt; at the Lille 1 University.

== Code == &lt;!--T:4--&gt;

&lt;!--T:5--&gt;
* [&lt;tvar|github&gt;https://github.com/JeanFred/CommonsOnCMS&lt;/&gt; GitHub]

== See also == &lt;!--T:6--&gt;
&lt;/translate&gt;
* {{ll|PhotoCommons}}</text>
    <sha1>7c1ca0812c9430e5e9101830d3ab0e92fce7f5a8</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Help:Export/15/cs</title>
  <ns>1198</ns>
  <id>1982349</id>
  <revision>
    <id>6624096</id>
    <parentid>6590309</parentid>
    <timestamp>2024-07-09T06:38:16Z</timestamp>
    <contributor>
      <username>Want</username>
      <id>39271</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="117" xml:space="preserve">Prostudujte si příručku, jak používat [[Manual:Pywikibot/cs Pywikibota]], v ní je vše co potřebujete vědět.</text>
    <sha1>edfe1d8c69719d24940b6a10f5e851cd8d154bac</sha1>
  </revision>
  <revision>
    <id>6624100</id>
    <parentid>6624096</parentid>
    <timestamp>2024-07-09T06:42:49Z</timestamp>
    <contributor>
      <username>Want</username>
      <id>39271</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="117" xml:space="preserve">Prostudujte si příručku, jak používat [[Manual:Pywikibot/cs|Pywikibota]], v ní je vše co potřebujete vědět.</text>
    <sha1>b1b39332db1deddda0a7f183e5f20ffed32a644c</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Help:Export/cs</title>
  <ns>12</ns>
  <id>1761659</id>
  <revision>
    <id>6624097</id>
    <parentid>6593305</parentid>
    <timestamp>2024-07-09T06:38:17Z</timestamp>
    <contributor>
      <username>Want</username>
      <id>39271</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="14233" xml:space="preserve">&lt;languages/&gt;
{{PD Help Page|imported=yes}}
Wiki stránky lze exportovat ve speciálním formátu [[w:XML|XML]] pro [[Special:MyLanguage/Help:Import|nahrání importu]] do jiné instalace MediaWiki (pokud je tato funkce na cílové wiki povolena a uživatel je tam správcem) nebo je použít jinak, například pro analýzu obsahu.
Viz také [[m:Syndication feeds|Syndikované kanály]] pro export dalších informací kromě stránek a {{ll|Help:Import}} pro import stránek.

&lt;span id="How_to_export"&gt;&lt;/span&gt;
== Jak exportovat obsah wiki ==

Existují nejméně čtyři způsoby exportu stránek:

* Vložte název článků do pole [[Special:Export|Special:Export]] nebo použijte {{fullurl:Special:Export/FULLPAGENAME}}.
* Zálohovací skript &lt;code&gt;[[Special:MyLanguage/Manual:dumpBackup.php|dumpBackup.php]]&lt;/code&gt; vypíše všechny stránky wiki do souboru XML. &lt;code&gt;dumpBackup.php&lt;/code&gt; funguje pouze v MediaWiki 1.5 nebo novější. Pro spuštění tohoto skriptu musíte mít přímý přístup k serveru. Výpisy projektů Wikimedie jsou pravidelně k dispozici na adrese https://dumps.wikimedia.org/.
* Pro pravidelné načítání stránek, které byly od určitého okamžiku změněny, existuje rozhraní známé jako [[w:OAI-PMH|OAI-PMH]]. U projektů Wikimedie není toto rozhraní veřejně dostupné; viz {{ll|Wikimedia update feed service}}. OAI-PMH obsahuje ochranný formát kolem vlastních exportovaných článků.
* Prostudujte si příručku, jak používat [[Manual:Pywikibot/cs Pywikibota]], v ní je vše co potřebujete vědět.

Ve výchozím nastavení je zahrnuta pouze aktuální verze stránky.
Volitelně můžete získat všechny verze s datem, časem, uživatelským jménem a souhrnem úprav.
Volitelně jsou exportovány také nejnovější verze všech přímo nebo nepřímo volaných šablon.

Kromě toho můžete zkopírovat databázi SQL.
Takto byly k dispozici výpisy databáze před verzí MediaWiki 1.5 a nebudeme je zde dále vysvětlovat.

&lt;span id="Using_'Special:Export'"&gt;&lt;/span&gt;
=== Použití 'Special:Export' ===

Export '''všech stránek oboru názvů''', například.

&lt;span id="Get_the_names_of_pages_to_export"&gt;&lt;/span&gt;
==== Získání názvů stránek pro export ====

Mám pocit, že příklad je lepší, protože níže uvedený popis mi připadá dost nejasný.

# Přejděte na položku [[Special:Allpages|Special:Allpages]] a vyberte požadovaný článek/soubor.
# Zkopírujte seznam názvů stránek do textového editoru.
# Umístěte všechny názvy stránek na samostatné řádky
## Toho lze dosáhnout poměrně rychle, pokud zkopírujete část vykreslené stránky s požadovanými názvy a vložíte ji například do MS Word - použijte speciální příkaz Vložit jako neformátovaný text - pak otevřete funkci Nahradit (Ctrl+H), do pole Najít co zadejte &lt;code&gt;^t&lt;/code&gt;, do pole Nahradit s zadejte &lt;code&gt;^p&lt;/code&gt; a stiskněte tlačítko Nahradit vše. ''(To se opírá o tabulátory mezi názvy stránek; ty jsou obvykle důsledkem toho, že názvy stránek jsou uvnitř značek td ve zdrojovém kódu HTML.)''
## Textový editor [[w:Vim (text editor)|Vim]] také umožňuje rychlý způsob opravy zalomení řádků: Po vložení celého seznamu spusťte příkaz :1,$s/\t/\r/g, který nahradí všechny tabulátory znaky návratu vozíku, a poté :1,$s/^\n//g, který odstraní každý řádek obsahující pouze znak nového řádku.
## Dalším postupem je zkopírování formátovaného textu do libovolného editoru, který zobrazuje HTML. Odstraňte všechny značky {{tag|tr|open}} a {{tag|tr|close}} a nahraďte všechny značky {{tag|td|open}} na &lt;syntaxhighlight lang=html inline&gt;&lt;tr&gt;&lt;td&gt;&lt;/syntaxhighlight&gt; a {{tag|td|open}} na &lt;syntaxhighlight lang=html inline&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/syntaxhighlight&gt;, HTML bude poté zpracováno do potřebného formátu.
## Pokud máte k serveru přístup přes příkazový řádek a MySQL, můžete tento skript použít:

&lt;code lang=shell&gt;
mysql -umike -pmikespassword -hlocalhost wikidbname 
select page_title from wiki_page where page_namespace=0
EOF
&lt;/code&gt;

''Všimněte si, že mike a mikespassword nahradíte svými vlastními. Tento příklad také zobrazuje tabulky s předponou wiki_''

# Předpona jmenného prostoru k názvům stránek (např. 'Help:Contents'), pokud vybraný jmenný prostor není hlavní jmenný prostor.
# '''Opakujte výše uvedené kroky pro další jmenné prostory''' (např. Category:, Template: atd.)

Podobný skript pro databáze PostgreSQL vypadá takto:

&lt;code lang=shell&gt;
psql -At -U wikiuser -h localhost wikidb -c "select page_title from mediawiki.page"
&lt;/code&gt;

''Poznámka: nahraďte jméno uživatele svým vlastním, databáze vás vyzve k zadání hesla. Tento příklad ukazuje tabulky bez předpony wiki_ a se jmenným prostorem zadaným jako součást názvu tabulky.''

Alternativou je rychlý přístup pro ty, kteří mají přístup k počítači s nainstalovaným Pythonem:

# Přejděte na položku [[Special:Allpages|Special:Allpages]] a vyberte požadovaný obor názvů.
# Uložte celou webovou stránku jako ''index.php.htm''. Některé wiki mohou mít více stránek, než se vejde na jednu obrazovku AllPages ; každou z těchto stránek budete muset uložit.
# Spusťte [[m:Help:Export Helper Script|export_all_helper.py]] ve stejném adresáři jako uložený soubor. Výstup můžete chtít odeslat do souboru; např. &lt;code&gt;python export_all_helper.py &gt; main&lt;/code&gt; do souboru s názvem "main".
# Uložení názvů stránek vypsaných skriptem.

&lt;span id="Perform_the_export"&gt;&lt;/span&gt;
==== Provedení exportu ====

* Přejděte na stránku [[Special:Export|Special:Export]] a vložte všechny názvy stránek do textového pole, přičemž se ujistěte, že v něm nejsou žádné prázdné řádky.
* Klikněte na tlačítko 'Odeslat dotaz'
* Výsledné XML uložte do souboru pomocí funkce pro ukládání v prohlížeči.

A na závěr...

* Otevřete soubor XML v textovém editoru. Přejděte na konec a '''zkontrolujte chybová hlášení'''.

Nyní můžete tento soubor XML použít k [[Special:MyLanguage/Help:Import|provedení importu]].

&lt;span id="Exporting_the_full_history"&gt;&lt;/span&gt;
==== Export celé historie ====
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Exporting the revision history may be desirable to retain authorship information and attribution.&lt;/span&gt;
Zaškrtávací políčko v rozhraní [[Special:Export|Special:Export]] určuje, zda se má exportovat celá historie (všechny verze článku), nebo nejnovější verze článků.
Vrací se maximálně 100 revizí; další revize lze vyžádat v souladu s podmínkami uvedenými v {{ll|Parameters to Special:Export}}.


&lt;span id="Export_format"&gt;&lt;/span&gt;
== Formát exportu ==
Formát přijatého souboru XML je ve všech případech stejný.
Je kodifikován ve [[w:XML Schema|XML Schéma]] na adrese https://www.mediawiki.org/xml/export-0.11.xsd
Tento formát není určen k prohlížení ve webovém prohlížeči.
Některé prohlížeče zobrazují pěkně vytištěné XML s odkazy &lt;code&gt;+&lt;/code&gt; a &lt;code&gt;-&lt;/code&gt; pro zobrazení nebo skrytí vybraných částí.
Alternativně lze zdroj XML zobrazit pomocí funkce "view source" v prohlížeči nebo po uložení souboru XML lokálně pomocí zvoleného programu.
Pokud si přečtete přímo zdroj XML, nebude obtížné najít skutečný text wiki.
Pokud nepoužíváte speciální editor XML &lt;nowiki&gt;"&lt;" a "&gt;" se zobrazují jako &amp;amp;lt; a &amp;amp;gt;, aby se předešlo konfliktu se značkami XML; aby se předešlo nejednoznačnosti, je "&amp;amp;" kódováno jako "&amp;amp;amp;".&lt;/nowiki&gt;

V současné verzi formát exportu neobsahuje náhradu značek wiki ve formátu XML (starší návrh viz [[Wikipedia DTD|Wikipedia DTD]]).
Při editaci článku se zobrazí pouze text wiki.

&lt;span id="Example"&gt;&lt;/span&gt;
=== Příklad ===
&lt;syntaxhighlight lang="xml"&gt;
  &lt;mediawiki xml:lang="en"&gt;
    &lt;page&gt;
      &lt;title&gt;Page title&lt;/title&gt;
      &lt;restrictions&gt;edit=sysop:move=sysop&lt;/restrictions&gt;
      &lt;revision&gt;
        &lt;timestamp&gt;2001-01-15T13:15:00Z&lt;/timestamp&gt;
        &lt;contributor&gt;&lt;username&gt;Foobar&lt;/username&gt;&lt;/contributor&gt;
        &lt;comment&gt;I have just one thing to say!&lt;/comment&gt;
        &lt;text&gt;A bunch of [[Special:MyLanguage/text|text]] here.&lt;/text&gt;
        &lt;minor /&gt;
      &lt;/revision&gt;
      &lt;revision&gt;
        &lt;timestamp&gt;2001-01-15T13:10:27Z&lt;/timestamp&gt;
        &lt;contributor&gt;&lt;ip&gt;10.0.0.2&lt;/ip&gt;&lt;/contributor&gt;
        &lt;comment&gt;new!&lt;/comment&gt;
        &lt;text&gt;An earlier [[Special:MyLanguage/revision|revision]].&lt;/text&gt;
      &lt;/revision&gt;
    &lt;/page&gt;
    
    &lt;page&gt;
      &lt;title&gt;Talk:Page title&lt;/title&gt;
      &lt;revision&gt;
        &lt;timestamp&gt;2001-01-15T14:03:00Z&lt;/timestamp&gt;
        &lt;contributor&gt;&lt;ip&gt;10.0.0.2&lt;/ip&gt;&lt;/contributor&gt;
        &lt;comment&gt;hey&lt;/comment&gt;
        &lt;text&gt;WHYD YOU LOCK PAGE??!!! i was editing that jerk&lt;/text&gt;
      &lt;/revision&gt;
    &lt;/page&gt;
  &lt;/mediawiki&gt;
&lt;/syntaxhighlight&gt;

=== DTD ===
Zde je neoficiální, zkrácená [[w:Document Type Definition|definice typu dokumentu]] verze formátu.
Pokud nevíte, co je to DTD, prostě to ignorujte.

&lt;syntaxhighlight lang="xml"&gt;
&lt;!ELEMENT mediawiki (siteinfo,page*)&gt;
&lt;!-- verze obsahuje verze číslo formátu (v současné době 0.3) --&gt;
&lt;!ATTLIST mediawiki
  version  CDATA  #REQUIRED 
  xmlns CDATA #FIXED "https://www.mediawiki.org/xml/export-0.3/"
  xmlns:xsi CDATA #FIXED "http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation CDATA #FIXED
    "https://www.mediawiki.org/xml/export-0.3/ https://www.mediawiki.org/xml/export-0.3.xsd"
  xml:lang  CDATA #IMPLIED
&gt;
&lt;!ELEMENT siteinfo (sitename,base,generator,case,namespaces)&gt;
&lt;!ELEMENT sitename (#PCDATA)&gt;      &lt;!-- Jméno wiki --&gt;
&lt;!ELEMENT base (#PCDATA)&gt;          &lt;!-- URL hlavní stránky --&gt;
&lt;!ELEMENT generator (#PCDATA)&gt;     &lt;!-- Řetězec verze MediaWiki --&gt;
&lt;!ELEMENT case (#PCDATA)&gt;          &lt;!-- Jak se zpracovávají pády v názvech stránek --&gt;
   &lt;!-- možné hodnoty: 'first-letter' | 'case-sensitive'
        Možnost 'Case-insensitive' je vyhrazena pro budoucnost --&gt;
&lt;!ELEMENT namespaces (namespace+)&gt; &lt;!-- Seznam jmenných prostorů a předpon --&gt;
  &lt;!ELEMENT namespace (#PCDATA)&gt;     &lt;!-- Obsahuje předponu jmenného prostoru --&gt;
  &lt;!ATTLIST namespace key CDATA #REQUIRED&gt; &lt;!-- Číslo interního jmenného prostoru --&gt;
&lt;!ELEMENT page (title,id?,restrictions?,(revision|upload)*)&gt;
  &lt;!ELEMENT title (#PCDATA)&gt;         &lt;!-- Název s předponou jmenného prostoru --&gt;
  &lt;!ELEMENT id (#PCDATA)&gt; 
  &lt;!ELEMENT restrictions (#PCDATA)&gt;  &lt;!-- Volitelná omezení stránky --&gt;
&lt;!ELEMENT revision (id?,timestamp,contributor,minor?,comment?,text)&gt;
  &lt;!ELEMENT timestamp (#PCDATA)&gt;     &lt;!-- Podle ISO8601 --&gt;
  &lt;!ELEMENT minor EMPTY&gt;             &lt;!-- Malá značka --&gt;
  &lt;!ELEMENT comment (#PCDATA)&gt; 
  &lt;!ELEMENT text (#PCDATA)&gt;          &lt;!-- Wikisyntax --&gt;
  &lt;!ATTLIST text xml:space CDATA  #FIXED "preserve"&gt;
&lt;!ELEMENT contributor ((username,id) | ip)&gt;
  &lt;!ELEMENT username (#PCDATA)&gt;
  &lt;!ELEMENT ip (#PCDATA)&gt;
&lt;!ELEMENT upload (timestamp,contributor,comment?,filename,src,size)&gt;
  &lt;!ELEMENT filename (#PCDATA)&gt;
  &lt;!ELEMENT src (#PCDATA)&gt;
  &lt;!ELEMENT size (#PCDATA)&gt;
&lt;/syntaxhighlight&gt;

&lt;span id="Processing_XML_export"&gt;&lt;/span&gt;
=== Zpracování exportu XML ===
Exportované XML dokáže zpracovat mnoho nástrojů.
Pokud zpracováváte velký počet stránek (například celý výpis), pravděpodobně nebudete schopni dostat dokument do hlavní paměti, takže budete potřebovat analyzátor založený na metodách [[w:Simple API for XML|SAX]] nebo jiných metodách řízených událostmi.

Regulární výrazy můžete použít také k přímému zpracování částí kódu XML.
Tento způsob může být rychlejší než jiné metody, ale nedoporučuje se, protože se obtížně udržuje.

Zde prosím uveďte metody a nástroje pro zpracování exportu XML:

* [https://github.com/newca12/parse_mediawiki_dump Parse MediaWiki Dump] (''[https://crates.io/crates/parse_mediawiki_dump crates.io]'') je skript Rust pro analýzu výpisů XML. 
* [https://github.com/portstrom/parse_wiki_text Parse Wiki Text] (''[https://crates.io/crates/parse_wiki_text crates.io]'') je skript Rust pro rozbor textu wiki do stromu prvků.
* [[w:Wikipedia:Computer help desk/ParseMediaWikiDump|Parse::MediaWikiDump]] je modul perlu pro zpracování výpisu XML.
* [[m:Processing MediaWiki XML with STX|Zpracování MediaWiki XML pomocí STX]] – transformace XML založená na datovém toku
* Projekt [[m:IBM History flow project|IBM History flow]] jej může číst po použití malého programu [[w:Python programming language|Python]], [http://dunck.us/anabasis/archives/2005/10/13/getting-started-with-history-flow/ export-historyflow-expand.py].

&lt;span id="Details_and_practical_advice"&gt;&lt;/span&gt;
=== Podrobnosti a praktické rady ===

* Chcete-li určit jmenný prostor stránky, musíte její název přiřadit k předponám definovaným v poli &lt;code&gt;/mediawiki/siteinfo/namespaces/namespace&lt;/code&gt;.
* Možná omezení jsou:
** &lt;code&gt;sysop&lt;/code&gt; - Zabezpečené stránky

&lt;span id="Why_to_export"&gt;&lt;/span&gt;
== Proč exportovat ==

Proč prostě nepoužít dynamickou databázi ke stažení?

Předpokládejme, že vytváříte software, který na určitých místech zobrazuje informace pocházející z Wikipedie.
Pokud chcete, aby váš program zobrazoval informace jiným způsobem, než je možné vidět v živé verzi, budete pravděpodobně potřebovat wikikód, který se používá k jejich zadávání, namísto hotového HTML.

Pokud chcete získat všechna data, budete je pravděpodobně chtít přenést co nejefektivnějším způsobem.
Na serverech Wikimedie je potřeba udělat poměrně dost práce, aby se wikikód převedl do HTML.
To je časově náročné jak pro vás, tak pro servery Wikimedie, takže prosté procházení všech stránek není tou správnou cestou.

Chcete-li získat přístup k libovolnému článku ve formátu XML, přejděte na stránku [[Special:Export/Title_of_the_article]]

&lt;span id="See_also"&gt;&lt;/span&gt;
== Související odkazy ==

* {{ll|Parameters to Special:Export}}
* {{ll|Manual:Moving a wiki}}
* {{ll|Exporting all the files of a wiki}}
* [[w:Data portability|''Přenositelnost dat'' na anglické Wikipedii]]

[[Category:Help{{#translation:}}]]</text>
    <sha1>915afceda351b9367ae12a5bfe6d743ec4157939</sha1>
  </revision>
  <revision>
    <id>6624099</id>
    <parentid>6624097</parentid>
    <timestamp>2024-07-09T06:41:11Z</timestamp>
    <contributor>
      <username>Want</username>
      <id>39271</id>
    </contributor>
    <comment>Created page with "Export stránky, včetně všech revizí se hodí, pokud mají být zachovány veškeré informace o tom, kdo a čím k obsahu stránky přispěl."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="14226" xml:space="preserve">&lt;languages/&gt;
{{PD Help Page|imported=yes}}
Wiki stránky lze exportovat ve speciálním formátu [[w:XML|XML]] pro [[Special:MyLanguage/Help:Import|nahrání importu]] do jiné instalace MediaWiki (pokud je tato funkce na cílové wiki povolena a uživatel je tam správcem) nebo je použít jinak, například pro analýzu obsahu.
Viz také [[m:Syndication feeds|Syndikované kanály]] pro export dalších informací kromě stránek a {{ll|Help:Import}} pro import stránek.

&lt;span id="How_to_export"&gt;&lt;/span&gt;
== Jak exportovat obsah wiki ==

Existují nejméně čtyři způsoby exportu stránek:

* Vložte název článků do pole [[Special:Export|Special:Export]] nebo použijte {{fullurl:Special:Export/FULLPAGENAME}}.
* Zálohovací skript &lt;code&gt;[[Special:MyLanguage/Manual:dumpBackup.php|dumpBackup.php]]&lt;/code&gt; vypíše všechny stránky wiki do souboru XML. &lt;code&gt;dumpBackup.php&lt;/code&gt; funguje pouze v MediaWiki 1.5 nebo novější. Pro spuštění tohoto skriptu musíte mít přímý přístup k serveru. Výpisy projektů Wikimedie jsou pravidelně k dispozici na adrese https://dumps.wikimedia.org/.
* Pro pravidelné načítání stránek, které byly od určitého okamžiku změněny, existuje rozhraní známé jako [[w:OAI-PMH|OAI-PMH]]. U projektů Wikimedie není toto rozhraní veřejně dostupné; viz {{ll|Wikimedia update feed service}}. OAI-PMH obsahuje ochranný formát kolem vlastních exportovaných článků.
* Prostudujte si příručku, jak používat [[Manual:Pywikibot/cs Pywikibota]], v ní je vše co potřebujete vědět.

Ve výchozím nastavení je zahrnuta pouze aktuální verze stránky.
Volitelně můžete získat všechny verze s datem, časem, uživatelským jménem a souhrnem úprav.
Volitelně jsou exportovány také nejnovější verze všech přímo nebo nepřímo volaných šablon.

Kromě toho můžete zkopírovat databázi SQL.
Takto byly k dispozici výpisy databáze před verzí MediaWiki 1.5 a nebudeme je zde dále vysvětlovat.

&lt;span id="Using_'Special:Export'"&gt;&lt;/span&gt;
=== Použití 'Special:Export' ===

Export '''všech stránek oboru názvů''', například.

&lt;span id="Get_the_names_of_pages_to_export"&gt;&lt;/span&gt;
==== Získání názvů stránek pro export ====

Mám pocit, že příklad je lepší, protože níže uvedený popis mi připadá dost nejasný.

# Přejděte na položku [[Special:Allpages|Special:Allpages]] a vyberte požadovaný článek/soubor.
# Zkopírujte seznam názvů stránek do textového editoru.
# Umístěte všechny názvy stránek na samostatné řádky
## Toho lze dosáhnout poměrně rychle, pokud zkopírujete část vykreslené stránky s požadovanými názvy a vložíte ji například do MS Word - použijte speciální příkaz Vložit jako neformátovaný text - pak otevřete funkci Nahradit (Ctrl+H), do pole Najít co zadejte &lt;code&gt;^t&lt;/code&gt;, do pole Nahradit s zadejte &lt;code&gt;^p&lt;/code&gt; a stiskněte tlačítko Nahradit vše. ''(To se opírá o tabulátory mezi názvy stránek; ty jsou obvykle důsledkem toho, že názvy stránek jsou uvnitř značek td ve zdrojovém kódu HTML.)''
## Textový editor [[w:Vim (text editor)|Vim]] také umožňuje rychlý způsob opravy zalomení řádků: Po vložení celého seznamu spusťte příkaz :1,$s/\t/\r/g, který nahradí všechny tabulátory znaky návratu vozíku, a poté :1,$s/^\n//g, který odstraní každý řádek obsahující pouze znak nového řádku.
## Dalším postupem je zkopírování formátovaného textu do libovolného editoru, který zobrazuje HTML. Odstraňte všechny značky {{tag|tr|open}} a {{tag|tr|close}} a nahraďte všechny značky {{tag|td|open}} na &lt;syntaxhighlight lang=html inline&gt;&lt;tr&gt;&lt;td&gt;&lt;/syntaxhighlight&gt; a {{tag|td|open}} na &lt;syntaxhighlight lang=html inline&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/syntaxhighlight&gt;, HTML bude poté zpracováno do potřebného formátu.
## Pokud máte k serveru přístup přes příkazový řádek a MySQL, můžete tento skript použít:

&lt;code lang=shell&gt;
mysql -umike -pmikespassword -hlocalhost wikidbname 
select page_title from wiki_page where page_namespace=0
EOF
&lt;/code&gt;

''Všimněte si, že mike a mikespassword nahradíte svými vlastními. Tento příklad také zobrazuje tabulky s předponou wiki_''

# Předpona jmenného prostoru k názvům stránek (např. 'Help:Contents'), pokud vybraný jmenný prostor není hlavní jmenný prostor.
# '''Opakujte výše uvedené kroky pro další jmenné prostory''' (např. Category:, Template: atd.)

Podobný skript pro databáze PostgreSQL vypadá takto:

&lt;code lang=shell&gt;
psql -At -U wikiuser -h localhost wikidb -c "select page_title from mediawiki.page"
&lt;/code&gt;

''Poznámka: nahraďte jméno uživatele svým vlastním, databáze vás vyzve k zadání hesla. Tento příklad ukazuje tabulky bez předpony wiki_ a se jmenným prostorem zadaným jako součást názvu tabulky.''

Alternativou je rychlý přístup pro ty, kteří mají přístup k počítači s nainstalovaným Pythonem:

# Přejděte na položku [[Special:Allpages|Special:Allpages]] a vyberte požadovaný obor názvů.
# Uložte celou webovou stránku jako ''index.php.htm''. Některé wiki mohou mít více stránek, než se vejde na jednu obrazovku AllPages ; každou z těchto stránek budete muset uložit.
# Spusťte [[m:Help:Export Helper Script|export_all_helper.py]] ve stejném adresáři jako uložený soubor. Výstup můžete chtít odeslat do souboru; např. &lt;code&gt;python export_all_helper.py &gt; main&lt;/code&gt; do souboru s názvem "main".
# Uložení názvů stránek vypsaných skriptem.

&lt;span id="Perform_the_export"&gt;&lt;/span&gt;
==== Provedení exportu ====

* Přejděte na stránku [[Special:Export|Special:Export]] a vložte všechny názvy stránek do textového pole, přičemž se ujistěte, že v něm nejsou žádné prázdné řádky.
* Klikněte na tlačítko 'Odeslat dotaz'
* Výsledné XML uložte do souboru pomocí funkce pro ukládání v prohlížeči.

A na závěr...

* Otevřete soubor XML v textovém editoru. Přejděte na konec a '''zkontrolujte chybová hlášení'''.

Nyní můžete tento soubor XML použít k [[Special:MyLanguage/Help:Import|provedení importu]].

&lt;span id="Exporting_the_full_history"&gt;&lt;/span&gt;
==== Export celé historie ====
Export stránky, včetně všech revizí se hodí, pokud mají být zachovány veškeré informace o tom, kdo a čím k obsahu stránky přispěl.
Zaškrtávací políčko v rozhraní [[Special:Export|Special:Export]] určuje, zda se má exportovat celá historie (všechny verze článku), nebo nejnovější verze článků.
Vrací se maximálně 100 revizí; další revize lze vyžádat v souladu s podmínkami uvedenými v {{ll|Parameters to Special:Export}}.


&lt;span id="Export_format"&gt;&lt;/span&gt;
== Formát exportu ==
Formát přijatého souboru XML je ve všech případech stejný.
Je kodifikován ve [[w:XML Schema|XML Schéma]] na adrese https://www.mediawiki.org/xml/export-0.11.xsd
Tento formát není určen k prohlížení ve webovém prohlížeči.
Některé prohlížeče zobrazují pěkně vytištěné XML s odkazy &lt;code&gt;+&lt;/code&gt; a &lt;code&gt;-&lt;/code&gt; pro zobrazení nebo skrytí vybraných částí.
Alternativně lze zdroj XML zobrazit pomocí funkce "view source" v prohlížeči nebo po uložení souboru XML lokálně pomocí zvoleného programu.
Pokud si přečtete přímo zdroj XML, nebude obtížné najít skutečný text wiki.
Pokud nepoužíváte speciální editor XML &lt;nowiki&gt;"&lt;" a "&gt;" se zobrazují jako &amp;amp;lt; a &amp;amp;gt;, aby se předešlo konfliktu se značkami XML; aby se předešlo nejednoznačnosti, je "&amp;amp;" kódováno jako "&amp;amp;amp;".&lt;/nowiki&gt;

V současné verzi formát exportu neobsahuje náhradu značek wiki ve formátu XML (starší návrh viz [[Wikipedia DTD|Wikipedia DTD]]).
Při editaci článku se zobrazí pouze text wiki.

&lt;span id="Example"&gt;&lt;/span&gt;
=== Příklad ===
&lt;syntaxhighlight lang="xml"&gt;
  &lt;mediawiki xml:lang="en"&gt;
    &lt;page&gt;
      &lt;title&gt;Page title&lt;/title&gt;
      &lt;restrictions&gt;edit=sysop:move=sysop&lt;/restrictions&gt;
      &lt;revision&gt;
        &lt;timestamp&gt;2001-01-15T13:15:00Z&lt;/timestamp&gt;
        &lt;contributor&gt;&lt;username&gt;Foobar&lt;/username&gt;&lt;/contributor&gt;
        &lt;comment&gt;I have just one thing to say!&lt;/comment&gt;
        &lt;text&gt;A bunch of [[Special:MyLanguage/text|text]] here.&lt;/text&gt;
        &lt;minor /&gt;
      &lt;/revision&gt;
      &lt;revision&gt;
        &lt;timestamp&gt;2001-01-15T13:10:27Z&lt;/timestamp&gt;
        &lt;contributor&gt;&lt;ip&gt;10.0.0.2&lt;/ip&gt;&lt;/contributor&gt;
        &lt;comment&gt;new!&lt;/comment&gt;
        &lt;text&gt;An earlier [[Special:MyLanguage/revision|revision]].&lt;/text&gt;
      &lt;/revision&gt;
    &lt;/page&gt;
    
    &lt;page&gt;
      &lt;title&gt;Talk:Page title&lt;/title&gt;
      &lt;revision&gt;
        &lt;timestamp&gt;2001-01-15T14:03:00Z&lt;/timestamp&gt;
        &lt;contributor&gt;&lt;ip&gt;10.0.0.2&lt;/ip&gt;&lt;/contributor&gt;
        &lt;comment&gt;hey&lt;/comment&gt;
        &lt;text&gt;WHYD YOU LOCK PAGE??!!! i was editing that jerk&lt;/text&gt;
      &lt;/revision&gt;
    &lt;/page&gt;
  &lt;/mediawiki&gt;
&lt;/syntaxhighlight&gt;

=== DTD ===
Zde je neoficiální, zkrácená [[w:Document Type Definition|definice typu dokumentu]] verze formátu.
Pokud nevíte, co je to DTD, prostě to ignorujte.

&lt;syntaxhighlight lang="xml"&gt;
&lt;!ELEMENT mediawiki (siteinfo,page*)&gt;
&lt;!-- verze obsahuje verze číslo formátu (v současné době 0.3) --&gt;
&lt;!ATTLIST mediawiki
  version  CDATA  #REQUIRED 
  xmlns CDATA #FIXED "https://www.mediawiki.org/xml/export-0.3/"
  xmlns:xsi CDATA #FIXED "http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation CDATA #FIXED
    "https://www.mediawiki.org/xml/export-0.3/ https://www.mediawiki.org/xml/export-0.3.xsd"
  xml:lang  CDATA #IMPLIED
&gt;
&lt;!ELEMENT siteinfo (sitename,base,generator,case,namespaces)&gt;
&lt;!ELEMENT sitename (#PCDATA)&gt;      &lt;!-- Jméno wiki --&gt;
&lt;!ELEMENT base (#PCDATA)&gt;          &lt;!-- URL hlavní stránky --&gt;
&lt;!ELEMENT generator (#PCDATA)&gt;     &lt;!-- Řetězec verze MediaWiki --&gt;
&lt;!ELEMENT case (#PCDATA)&gt;          &lt;!-- Jak se zpracovávají pády v názvech stránek --&gt;
   &lt;!-- možné hodnoty: 'first-letter' | 'case-sensitive'
        Možnost 'Case-insensitive' je vyhrazena pro budoucnost --&gt;
&lt;!ELEMENT namespaces (namespace+)&gt; &lt;!-- Seznam jmenných prostorů a předpon --&gt;
  &lt;!ELEMENT namespace (#PCDATA)&gt;     &lt;!-- Obsahuje předponu jmenného prostoru --&gt;
  &lt;!ATTLIST namespace key CDATA #REQUIRED&gt; &lt;!-- Číslo interního jmenného prostoru --&gt;
&lt;!ELEMENT page (title,id?,restrictions?,(revision|upload)*)&gt;
  &lt;!ELEMENT title (#PCDATA)&gt;         &lt;!-- Název s předponou jmenného prostoru --&gt;
  &lt;!ELEMENT id (#PCDATA)&gt; 
  &lt;!ELEMENT restrictions (#PCDATA)&gt;  &lt;!-- Volitelná omezení stránky --&gt;
&lt;!ELEMENT revision (id?,timestamp,contributor,minor?,comment?,text)&gt;
  &lt;!ELEMENT timestamp (#PCDATA)&gt;     &lt;!-- Podle ISO8601 --&gt;
  &lt;!ELEMENT minor EMPTY&gt;             &lt;!-- Malá značka --&gt;
  &lt;!ELEMENT comment (#PCDATA)&gt; 
  &lt;!ELEMENT text (#PCDATA)&gt;          &lt;!-- Wikisyntax --&gt;
  &lt;!ATTLIST text xml:space CDATA  #FIXED "preserve"&gt;
&lt;!ELEMENT contributor ((username,id) | ip)&gt;
  &lt;!ELEMENT username (#PCDATA)&gt;
  &lt;!ELEMENT ip (#PCDATA)&gt;
&lt;!ELEMENT upload (timestamp,contributor,comment?,filename,src,size)&gt;
  &lt;!ELEMENT filename (#PCDATA)&gt;
  &lt;!ELEMENT src (#PCDATA)&gt;
  &lt;!ELEMENT size (#PCDATA)&gt;
&lt;/syntaxhighlight&gt;

&lt;span id="Processing_XML_export"&gt;&lt;/span&gt;
=== Zpracování exportu XML ===
Exportované XML dokáže zpracovat mnoho nástrojů.
Pokud zpracováváte velký počet stránek (například celý výpis), pravděpodobně nebudete schopni dostat dokument do hlavní paměti, takže budete potřebovat analyzátor založený na metodách [[w:Simple API for XML|SAX]] nebo jiných metodách řízených událostmi.

Regulární výrazy můžete použít také k přímému zpracování částí kódu XML.
Tento způsob může být rychlejší než jiné metody, ale nedoporučuje se, protože se obtížně udržuje.

Zde prosím uveďte metody a nástroje pro zpracování exportu XML:

* [https://github.com/newca12/parse_mediawiki_dump Parse MediaWiki Dump] (''[https://crates.io/crates/parse_mediawiki_dump crates.io]'') je skript Rust pro analýzu výpisů XML. 
* [https://github.com/portstrom/parse_wiki_text Parse Wiki Text] (''[https://crates.io/crates/parse_wiki_text crates.io]'') je skript Rust pro rozbor textu wiki do stromu prvků.
* [[w:Wikipedia:Computer help desk/ParseMediaWikiDump|Parse::MediaWikiDump]] je modul perlu pro zpracování výpisu XML.
* [[m:Processing MediaWiki XML with STX|Zpracování MediaWiki XML pomocí STX]] – transformace XML založená na datovém toku
* Projekt [[m:IBM History flow project|IBM History flow]] jej může číst po použití malého programu [[w:Python programming language|Python]], [http://dunck.us/anabasis/archives/2005/10/13/getting-started-with-history-flow/ export-historyflow-expand.py].

&lt;span id="Details_and_practical_advice"&gt;&lt;/span&gt;
=== Podrobnosti a praktické rady ===

* Chcete-li určit jmenný prostor stránky, musíte její název přiřadit k předponám definovaným v poli &lt;code&gt;/mediawiki/siteinfo/namespaces/namespace&lt;/code&gt;.
* Možná omezení jsou:
** &lt;code&gt;sysop&lt;/code&gt; - Zabezpečené stránky

&lt;span id="Why_to_export"&gt;&lt;/span&gt;
== Proč exportovat ==

Proč prostě nepoužít dynamickou databázi ke stažení?

Předpokládejme, že vytváříte software, který na určitých místech zobrazuje informace pocházející z Wikipedie.
Pokud chcete, aby váš program zobrazoval informace jiným způsobem, než je možné vidět v živé verzi, budete pravděpodobně potřebovat wikikód, který se používá k jejich zadávání, namísto hotového HTML.

Pokud chcete získat všechna data, budete je pravděpodobně chtít přenést co nejefektivnějším způsobem.
Na serverech Wikimedie je potřeba udělat poměrně dost práce, aby se wikikód převedl do HTML.
To je časově náročné jak pro vás, tak pro servery Wikimedie, takže prosté procházení všech stránek není tou správnou cestou.

Chcete-li získat přístup k libovolnému článku ve formátu XML, přejděte na stránku [[Special:Export/Title_of_the_article]]

&lt;span id="See_also"&gt;&lt;/span&gt;
== Související odkazy ==

* {{ll|Parameters to Special:Export}}
* {{ll|Manual:Moving a wiki}}
* {{ll|Exporting all the files of a wiki}}
* [[w:Data portability|''Přenositelnost dat'' na anglické Wikipedii]]

[[Category:Help{{#translation:}}]]</text>
    <sha1>d475e7af66b2af03e98da7fa0bf9b13051d60021</sha1>
  </revision>
  <revision>
    <id>6624101</id>
    <parentid>6624099</parentid>
    <timestamp>2024-07-09T06:42:50Z</timestamp>
    <contributor>
      <username>Want</username>
      <id>39271</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="14226" xml:space="preserve">&lt;languages/&gt;
{{PD Help Page|imported=yes}}
Wiki stránky lze exportovat ve speciálním formátu [[w:XML|XML]] pro [[Special:MyLanguage/Help:Import|nahrání importu]] do jiné instalace MediaWiki (pokud je tato funkce na cílové wiki povolena a uživatel je tam správcem) nebo je použít jinak, například pro analýzu obsahu.
Viz také [[m:Syndication feeds|Syndikované kanály]] pro export dalších informací kromě stránek a {{ll|Help:Import}} pro import stránek.

&lt;span id="How_to_export"&gt;&lt;/span&gt;
== Jak exportovat obsah wiki ==

Existují nejméně čtyři způsoby exportu stránek:

* Vložte název článků do pole [[Special:Export|Special:Export]] nebo použijte {{fullurl:Special:Export/FULLPAGENAME}}.
* Zálohovací skript &lt;code&gt;[[Special:MyLanguage/Manual:dumpBackup.php|dumpBackup.php]]&lt;/code&gt; vypíše všechny stránky wiki do souboru XML. &lt;code&gt;dumpBackup.php&lt;/code&gt; funguje pouze v MediaWiki 1.5 nebo novější. Pro spuštění tohoto skriptu musíte mít přímý přístup k serveru. Výpisy projektů Wikimedie jsou pravidelně k dispozici na adrese https://dumps.wikimedia.org/.
* Pro pravidelné načítání stránek, které byly od určitého okamžiku změněny, existuje rozhraní známé jako [[w:OAI-PMH|OAI-PMH]]. U projektů Wikimedie není toto rozhraní veřejně dostupné; viz {{ll|Wikimedia update feed service}}. OAI-PMH obsahuje ochranný formát kolem vlastních exportovaných článků.
* Prostudujte si příručku, jak používat [[Manual:Pywikibot/cs|Pywikibota]], v ní je vše co potřebujete vědět.

Ve výchozím nastavení je zahrnuta pouze aktuální verze stránky.
Volitelně můžete získat všechny verze s datem, časem, uživatelským jménem a souhrnem úprav.
Volitelně jsou exportovány také nejnovější verze všech přímo nebo nepřímo volaných šablon.

Kromě toho můžete zkopírovat databázi SQL.
Takto byly k dispozici výpisy databáze před verzí MediaWiki 1.5 a nebudeme je zde dále vysvětlovat.

&lt;span id="Using_'Special:Export'"&gt;&lt;/span&gt;
=== Použití 'Special:Export' ===

Export '''všech stránek oboru názvů''', například.

&lt;span id="Get_the_names_of_pages_to_export"&gt;&lt;/span&gt;
==== Získání názvů stránek pro export ====

Mám pocit, že příklad je lepší, protože níže uvedený popis mi připadá dost nejasný.

# Přejděte na položku [[Special:Allpages|Special:Allpages]] a vyberte požadovaný článek/soubor.
# Zkopírujte seznam názvů stránek do textového editoru.
# Umístěte všechny názvy stránek na samostatné řádky
## Toho lze dosáhnout poměrně rychle, pokud zkopírujete část vykreslené stránky s požadovanými názvy a vložíte ji například do MS Word - použijte speciální příkaz Vložit jako neformátovaný text - pak otevřete funkci Nahradit (Ctrl+H), do pole Najít co zadejte &lt;code&gt;^t&lt;/code&gt;, do pole Nahradit s zadejte &lt;code&gt;^p&lt;/code&gt; a stiskněte tlačítko Nahradit vše. ''(To se opírá o tabulátory mezi názvy stránek; ty jsou obvykle důsledkem toho, že názvy stránek jsou uvnitř značek td ve zdrojovém kódu HTML.)''
## Textový editor [[w:Vim (text editor)|Vim]] také umožňuje rychlý způsob opravy zalomení řádků: Po vložení celého seznamu spusťte příkaz :1,$s/\t/\r/g, který nahradí všechny tabulátory znaky návratu vozíku, a poté :1,$s/^\n//g, který odstraní každý řádek obsahující pouze znak nového řádku.
## Dalším postupem je zkopírování formátovaného textu do libovolného editoru, který zobrazuje HTML. Odstraňte všechny značky {{tag|tr|open}} a {{tag|tr|close}} a nahraďte všechny značky {{tag|td|open}} na &lt;syntaxhighlight lang=html inline&gt;&lt;tr&gt;&lt;td&gt;&lt;/syntaxhighlight&gt; a {{tag|td|open}} na &lt;syntaxhighlight lang=html inline&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/syntaxhighlight&gt;, HTML bude poté zpracováno do potřebného formátu.
## Pokud máte k serveru přístup přes příkazový řádek a MySQL, můžete tento skript použít:

&lt;code lang=shell&gt;
mysql -umike -pmikespassword -hlocalhost wikidbname 
select page_title from wiki_page where page_namespace=0
EOF
&lt;/code&gt;

''Všimněte si, že mike a mikespassword nahradíte svými vlastními. Tento příklad také zobrazuje tabulky s předponou wiki_''

# Předpona jmenného prostoru k názvům stránek (např. 'Help:Contents'), pokud vybraný jmenný prostor není hlavní jmenný prostor.
# '''Opakujte výše uvedené kroky pro další jmenné prostory''' (např. Category:, Template: atd.)

Podobný skript pro databáze PostgreSQL vypadá takto:

&lt;code lang=shell&gt;
psql -At -U wikiuser -h localhost wikidb -c "select page_title from mediawiki.page"
&lt;/code&gt;

''Poznámka: nahraďte jméno uživatele svým vlastním, databáze vás vyzve k zadání hesla. Tento příklad ukazuje tabulky bez předpony wiki_ a se jmenným prostorem zadaným jako součást názvu tabulky.''

Alternativou je rychlý přístup pro ty, kteří mají přístup k počítači s nainstalovaným Pythonem:

# Přejděte na položku [[Special:Allpages|Special:Allpages]] a vyberte požadovaný obor názvů.
# Uložte celou webovou stránku jako ''index.php.htm''. Některé wiki mohou mít více stránek, než se vejde na jednu obrazovku AllPages ; každou z těchto stránek budete muset uložit.
# Spusťte [[m:Help:Export Helper Script|export_all_helper.py]] ve stejném adresáři jako uložený soubor. Výstup můžete chtít odeslat do souboru; např. &lt;code&gt;python export_all_helper.py &gt; main&lt;/code&gt; do souboru s názvem "main".
# Uložení názvů stránek vypsaných skriptem.

&lt;span id="Perform_the_export"&gt;&lt;/span&gt;
==== Provedení exportu ====

* Přejděte na stránku [[Special:Export|Special:Export]] a vložte všechny názvy stránek do textového pole, přičemž se ujistěte, že v něm nejsou žádné prázdné řádky.
* Klikněte na tlačítko 'Odeslat dotaz'
* Výsledné XML uložte do souboru pomocí funkce pro ukládání v prohlížeči.

A na závěr...

* Otevřete soubor XML v textovém editoru. Přejděte na konec a '''zkontrolujte chybová hlášení'''.

Nyní můžete tento soubor XML použít k [[Special:MyLanguage/Help:Import|provedení importu]].

&lt;span id="Exporting_the_full_history"&gt;&lt;/span&gt;
==== Export celé historie ====
Export stránky, včetně všech revizí se hodí, pokud mají být zachovány veškeré informace o tom, kdo a čím k obsahu stránky přispěl.
Zaškrtávací políčko v rozhraní [[Special:Export|Special:Export]] určuje, zda se má exportovat celá historie (všechny verze článku), nebo nejnovější verze článků.
Vrací se maximálně 100 revizí; další revize lze vyžádat v souladu s podmínkami uvedenými v {{ll|Parameters to Special:Export}}.


&lt;span id="Export_format"&gt;&lt;/span&gt;
== Formát exportu ==
Formát přijatého souboru XML je ve všech případech stejný.
Je kodifikován ve [[w:XML Schema|XML Schéma]] na adrese https://www.mediawiki.org/xml/export-0.11.xsd
Tento formát není určen k prohlížení ve webovém prohlížeči.
Některé prohlížeče zobrazují pěkně vytištěné XML s odkazy &lt;code&gt;+&lt;/code&gt; a &lt;code&gt;-&lt;/code&gt; pro zobrazení nebo skrytí vybraných částí.
Alternativně lze zdroj XML zobrazit pomocí funkce "view source" v prohlížeči nebo po uložení souboru XML lokálně pomocí zvoleného programu.
Pokud si přečtete přímo zdroj XML, nebude obtížné najít skutečný text wiki.
Pokud nepoužíváte speciální editor XML &lt;nowiki&gt;"&lt;" a "&gt;" se zobrazují jako &amp;amp;lt; a &amp;amp;gt;, aby se předešlo konfliktu se značkami XML; aby se předešlo nejednoznačnosti, je "&amp;amp;" kódováno jako "&amp;amp;amp;".&lt;/nowiki&gt;

V současné verzi formát exportu neobsahuje náhradu značek wiki ve formátu XML (starší návrh viz [[Wikipedia DTD|Wikipedia DTD]]).
Při editaci článku se zobrazí pouze text wiki.

&lt;span id="Example"&gt;&lt;/span&gt;
=== Příklad ===
&lt;syntaxhighlight lang="xml"&gt;
  &lt;mediawiki xml:lang="en"&gt;
    &lt;page&gt;
      &lt;title&gt;Page title&lt;/title&gt;
      &lt;restrictions&gt;edit=sysop:move=sysop&lt;/restrictions&gt;
      &lt;revision&gt;
        &lt;timestamp&gt;2001-01-15T13:15:00Z&lt;/timestamp&gt;
        &lt;contributor&gt;&lt;username&gt;Foobar&lt;/username&gt;&lt;/contributor&gt;
        &lt;comment&gt;I have just one thing to say!&lt;/comment&gt;
        &lt;text&gt;A bunch of [[Special:MyLanguage/text|text]] here.&lt;/text&gt;
        &lt;minor /&gt;
      &lt;/revision&gt;
      &lt;revision&gt;
        &lt;timestamp&gt;2001-01-15T13:10:27Z&lt;/timestamp&gt;
        &lt;contributor&gt;&lt;ip&gt;10.0.0.2&lt;/ip&gt;&lt;/contributor&gt;
        &lt;comment&gt;new!&lt;/comment&gt;
        &lt;text&gt;An earlier [[Special:MyLanguage/revision|revision]].&lt;/text&gt;
      &lt;/revision&gt;
    &lt;/page&gt;
    
    &lt;page&gt;
      &lt;title&gt;Talk:Page title&lt;/title&gt;
      &lt;revision&gt;
        &lt;timestamp&gt;2001-01-15T14:03:00Z&lt;/timestamp&gt;
        &lt;contributor&gt;&lt;ip&gt;10.0.0.2&lt;/ip&gt;&lt;/contributor&gt;
        &lt;comment&gt;hey&lt;/comment&gt;
        &lt;text&gt;WHYD YOU LOCK PAGE??!!! i was editing that jerk&lt;/text&gt;
      &lt;/revision&gt;
    &lt;/page&gt;
  &lt;/mediawiki&gt;
&lt;/syntaxhighlight&gt;

=== DTD ===
Zde je neoficiální, zkrácená [[w:Document Type Definition|definice typu dokumentu]] verze formátu.
Pokud nevíte, co je to DTD, prostě to ignorujte.

&lt;syntaxhighlight lang="xml"&gt;
&lt;!ELEMENT mediawiki (siteinfo,page*)&gt;
&lt;!-- verze obsahuje verze číslo formátu (v současné době 0.3) --&gt;
&lt;!ATTLIST mediawiki
  version  CDATA  #REQUIRED 
  xmlns CDATA #FIXED "https://www.mediawiki.org/xml/export-0.3/"
  xmlns:xsi CDATA #FIXED "http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation CDATA #FIXED
    "https://www.mediawiki.org/xml/export-0.3/ https://www.mediawiki.org/xml/export-0.3.xsd"
  xml:lang  CDATA #IMPLIED
&gt;
&lt;!ELEMENT siteinfo (sitename,base,generator,case,namespaces)&gt;
&lt;!ELEMENT sitename (#PCDATA)&gt;      &lt;!-- Jméno wiki --&gt;
&lt;!ELEMENT base (#PCDATA)&gt;          &lt;!-- URL hlavní stránky --&gt;
&lt;!ELEMENT generator (#PCDATA)&gt;     &lt;!-- Řetězec verze MediaWiki --&gt;
&lt;!ELEMENT case (#PCDATA)&gt;          &lt;!-- Jak se zpracovávají pády v názvech stránek --&gt;
   &lt;!-- možné hodnoty: 'first-letter' | 'case-sensitive'
        Možnost 'Case-insensitive' je vyhrazena pro budoucnost --&gt;
&lt;!ELEMENT namespaces (namespace+)&gt; &lt;!-- Seznam jmenných prostorů a předpon --&gt;
  &lt;!ELEMENT namespace (#PCDATA)&gt;     &lt;!-- Obsahuje předponu jmenného prostoru --&gt;
  &lt;!ATTLIST namespace key CDATA #REQUIRED&gt; &lt;!-- Číslo interního jmenného prostoru --&gt;
&lt;!ELEMENT page (title,id?,restrictions?,(revision|upload)*)&gt;
  &lt;!ELEMENT title (#PCDATA)&gt;         &lt;!-- Název s předponou jmenného prostoru --&gt;
  &lt;!ELEMENT id (#PCDATA)&gt; 
  &lt;!ELEMENT restrictions (#PCDATA)&gt;  &lt;!-- Volitelná omezení stránky --&gt;
&lt;!ELEMENT revision (id?,timestamp,contributor,minor?,comment?,text)&gt;
  &lt;!ELEMENT timestamp (#PCDATA)&gt;     &lt;!-- Podle ISO8601 --&gt;
  &lt;!ELEMENT minor EMPTY&gt;             &lt;!-- Malá značka --&gt;
  &lt;!ELEMENT comment (#PCDATA)&gt; 
  &lt;!ELEMENT text (#PCDATA)&gt;          &lt;!-- Wikisyntax --&gt;
  &lt;!ATTLIST text xml:space CDATA  #FIXED "preserve"&gt;
&lt;!ELEMENT contributor ((username,id) | ip)&gt;
  &lt;!ELEMENT username (#PCDATA)&gt;
  &lt;!ELEMENT ip (#PCDATA)&gt;
&lt;!ELEMENT upload (timestamp,contributor,comment?,filename,src,size)&gt;
  &lt;!ELEMENT filename (#PCDATA)&gt;
  &lt;!ELEMENT src (#PCDATA)&gt;
  &lt;!ELEMENT size (#PCDATA)&gt;
&lt;/syntaxhighlight&gt;

&lt;span id="Processing_XML_export"&gt;&lt;/span&gt;
=== Zpracování exportu XML ===
Exportované XML dokáže zpracovat mnoho nástrojů.
Pokud zpracováváte velký počet stránek (například celý výpis), pravděpodobně nebudete schopni dostat dokument do hlavní paměti, takže budete potřebovat analyzátor založený na metodách [[w:Simple API for XML|SAX]] nebo jiných metodách řízených událostmi.

Regulární výrazy můžete použít také k přímému zpracování částí kódu XML.
Tento způsob může být rychlejší než jiné metody, ale nedoporučuje se, protože se obtížně udržuje.

Zde prosím uveďte metody a nástroje pro zpracování exportu XML:

* [https://github.com/newca12/parse_mediawiki_dump Parse MediaWiki Dump] (''[https://crates.io/crates/parse_mediawiki_dump crates.io]'') je skript Rust pro analýzu výpisů XML. 
* [https://github.com/portstrom/parse_wiki_text Parse Wiki Text] (''[https://crates.io/crates/parse_wiki_text crates.io]'') je skript Rust pro rozbor textu wiki do stromu prvků.
* [[w:Wikipedia:Computer help desk/ParseMediaWikiDump|Parse::MediaWikiDump]] je modul perlu pro zpracování výpisu XML.
* [[m:Processing MediaWiki XML with STX|Zpracování MediaWiki XML pomocí STX]] – transformace XML založená na datovém toku
* Projekt [[m:IBM History flow project|IBM History flow]] jej může číst po použití malého programu [[w:Python programming language|Python]], [http://dunck.us/anabasis/archives/2005/10/13/getting-started-with-history-flow/ export-historyflow-expand.py].

&lt;span id="Details_and_practical_advice"&gt;&lt;/span&gt;
=== Podrobnosti a praktické rady ===

* Chcete-li určit jmenný prostor stránky, musíte její název přiřadit k předponám definovaným v poli &lt;code&gt;/mediawiki/siteinfo/namespaces/namespace&lt;/code&gt;.
* Možná omezení jsou:
** &lt;code&gt;sysop&lt;/code&gt; - Zabezpečené stránky

&lt;span id="Why_to_export"&gt;&lt;/span&gt;
== Proč exportovat ==

Proč prostě nepoužít dynamickou databázi ke stažení?

Předpokládejme, že vytváříte software, který na určitých místech zobrazuje informace pocházející z Wikipedie.
Pokud chcete, aby váš program zobrazoval informace jiným způsobem, než je možné vidět v živé verzi, budete pravděpodobně potřebovat wikikód, který se používá k jejich zadávání, namísto hotového HTML.

Pokud chcete získat všechna data, budete je pravděpodobně chtít přenést co nejefektivnějším způsobem.
Na serverech Wikimedie je potřeba udělat poměrně dost práce, aby se wikikód převedl do HTML.
To je časově náročné jak pro vás, tak pro servery Wikimedie, takže prosté procházení všech stránek není tou správnou cestou.

Chcete-li získat přístup k libovolnému článku ve formátu XML, přejděte na stránku [[Special:Export/Title_of_the_article]]

&lt;span id="See_also"&gt;&lt;/span&gt;
== Související odkazy ==

* {{ll|Parameters to Special:Export}}
* {{ll|Manual:Moving a wiki}}
* {{ll|Exporting all the files of a wiki}}
* [[w:Data portability|''Přenositelnost dat'' na anglické Wikipedii]]

[[Category:Help{{#translation:}}]]</text>
    <sha1>9503e8720e3ae509c32caed7809a7b50894019e2</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Help:Export/113/cs</title>
  <ns>1198</ns>
  <id>1992235</id>
  <revision>
    <id>6624098</id>
    <timestamp>2024-07-09T06:41:10Z</timestamp>
    <contributor>
      <username>Want</username>
      <id>39271</id>
    </contributor>
    <comment>Created page with "Export stránky, včetně všech revizí se hodí, pokud mají být zachovány veškeré informace o tom, kdo a čím k obsahu stránky přispěl."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="146" xml:space="preserve">Export stránky, včetně všech revizí se hodí, pokud mají být zachovány veškeré informace o tom, kdo a čím k obsahu stránky přispěl.</text>
    <sha1>d7bb25b138eadbc361d8e3447ff7eab19cd8a335</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>User talk:BlackthornePaul</title>
  <ns>3</ns>
  <id>1992236</id>
  <revision>
    <id>6624102</id>
    <timestamp>2024-07-09T07:08:40Z</timestamp>
    <contributor>
      <username>BlackthornePaul</username>
      <id>17970532</id>
    </contributor>
    <comment>Created blank page</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="0" xml:space="preserve"></text>
    <sha1>da39a3ee5e6b4b0d3255bfef95601890afd80709</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/89/cs</title>
  <ns>1198</ns>
  <id>1992237</id>
  <revision>
    <id>6624103</id>
    <timestamp>2024-07-09T07:18:08Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "==== Lokalizace názvů parametrů ===="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="39" xml:space="preserve">==== Lokalizace názvů parametrů ====</text>
    <sha1>53a86ccddba02fb8b315ebafa9af57f06c27509a</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Global templates/Proposed specification/cs</title>
  <ns>0</ns>
  <id>1991769</id>
  <revision>
    <id>6624104</id>
    <parentid>6623750</parentid>
    <timestamp>2024-07-09T07:18:09Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "==== Lokalizace názvů parametrů ===="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="92442" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* &lt;span class="mw-translate-fuzzy"&gt;"Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It also requires configuration on each wiki.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|English]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|Hebrew]], [[:sl:MediaWiki:Visualeditor-template-tools-definition.json|Slovene]].&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;As of this writing, French, Spanish, and most other languages are not configured for this, even though they have templates of this kind.&lt;/span&gt; ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
&lt;div class="mw-translate-fuzzy"&gt;
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce [[Gerrit]] nebo jiné úložiště.
&lt;/div&gt;

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

&lt;span class="mw-translate-fuzzy"&gt;Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[fallback language]]. Další podrobnosti najdete v části o lokalizaci.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See the sections on localization for more details.&lt;/span&gt;

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
&lt;span class="mw-translate-fuzzy"&gt;Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně. Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This localization process is familiar to at least some editors in all languages.&lt;/span&gt;

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

&lt;span class="mw-translate-fuzzy"&gt;Některé šablony se však používají jako prvky uživatelského rozhraní. Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki. To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Therefore, perhaps it makes sense to also allow showing the translated strings in the user language, when it’s different from the wiki content language.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This may be particularly relevant for multilingual sites such as Commons, Wikidata, Meta, and mediawiki.org.&lt;/span&gt;

&lt;span class="mw-translate-fuzzy"&gt;Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki. Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále. Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/span&gt;

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

&lt;span class="mw-translate-fuzzy"&gt;Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats). To pomůže lokalizátorům najít, jaké šablony potřebují překlad. To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This will help localizers find what templates need translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/span&gt;

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>8cab5c2163590774681ee0e679170ee8d41bed98</sha1>
  </revision>
  <revision>
    <id>6624106</id>
    <parentid>6624104</parentid>
    <timestamp>2024-07-09T07:19:38Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="91936" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It also requires configuration on each wiki.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|English]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|Hebrew]], [[:sl:MediaWiki:Visualeditor-template-tools-definition.json|Slovene]].&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;As of this writing, French, Spanish, and most other languages are not configured for this, even though they have templates of this kind.&lt;/span&gt; ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
&lt;div class="mw-translate-fuzzy"&gt;
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce [[Gerrit]] nebo jiné úložiště.
&lt;/div&gt;

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

&lt;span class="mw-translate-fuzzy"&gt;Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[fallback language]]. Další podrobnosti najdete v části o lokalizaci.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See the sections on localization for more details.&lt;/span&gt;

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
&lt;span class="mw-translate-fuzzy"&gt;Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně. Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This localization process is familiar to at least some editors in all languages.&lt;/span&gt;

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

&lt;span class="mw-translate-fuzzy"&gt;Některé šablony se však používají jako prvky uživatelského rozhraní. Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki. To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Therefore, perhaps it makes sense to also allow showing the translated strings in the user language, when it’s different from the wiki content language.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This may be particularly relevant for multilingual sites such as Commons, Wikidata, Meta, and mediawiki.org.&lt;/span&gt;

&lt;span class="mw-translate-fuzzy"&gt;Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki. Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále. Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/span&gt;

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

&lt;span class="mw-translate-fuzzy"&gt;Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats). To pomůže lokalizátorům najít, jaké šablony potřebují překlad. To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This will help localizers find what templates need translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/span&gt;

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>85b7bf853093effb086d03ffef7f78da1a75ff47</sha1>
  </revision>
  <revision>
    <id>6624108</id>
    <parentid>6624106</parentid>
    <timestamp>2024-07-09T07:19:52Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Vyžaduje také konfiguraci na každé wiki."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="91880" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|English]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|Hebrew]], [[:sl:MediaWiki:Visualeditor-template-tools-definition.json|Slovene]].&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;As of this writing, French, Spanish, and most other languages are not configured for this, even though they have templates of this kind.&lt;/span&gt; ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
&lt;div class="mw-translate-fuzzy"&gt;
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce [[Gerrit]] nebo jiné úložiště.
&lt;/div&gt;

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

&lt;span class="mw-translate-fuzzy"&gt;Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[fallback language]]. Další podrobnosti najdete v části o lokalizaci.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See the sections on localization for more details.&lt;/span&gt;

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
&lt;span class="mw-translate-fuzzy"&gt;Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně. Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This localization process is familiar to at least some editors in all languages.&lt;/span&gt;

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

&lt;span class="mw-translate-fuzzy"&gt;Některé šablony se však používají jako prvky uživatelského rozhraní. Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki. To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Therefore, perhaps it makes sense to also allow showing the translated strings in the user language, when it’s different from the wiki content language.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This may be particularly relevant for multilingual sites such as Commons, Wikidata, Meta, and mediawiki.org.&lt;/span&gt;

&lt;span class="mw-translate-fuzzy"&gt;Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki. Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále. Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/span&gt;

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

&lt;span class="mw-translate-fuzzy"&gt;Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats). To pomůže lokalizátorům najít, jaké šablony potřebují překlad. To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This will help localizers find what templates need translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/span&gt;

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>917abdd8f8a51336c19183a35cd2a12561b111cc</sha1>
  </revision>
  <revision>
    <id>6624110</id>
    <parentid>6624108</parentid>
    <timestamp>2024-07-09T07:20:09Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="91840" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;As of this writing, French, Spanish, and most other languages are not configured for this, even though they have templates of this kind.&lt;/span&gt; ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
&lt;div class="mw-translate-fuzzy"&gt;
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce [[Gerrit]] nebo jiné úložiště.
&lt;/div&gt;

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

&lt;span class="mw-translate-fuzzy"&gt;Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[fallback language]]. Další podrobnosti najdete v části o lokalizaci.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See the sections on localization for more details.&lt;/span&gt;

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
&lt;span class="mw-translate-fuzzy"&gt;Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně. Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This localization process is familiar to at least some editors in all languages.&lt;/span&gt;

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

&lt;span class="mw-translate-fuzzy"&gt;Některé šablony se však používají jako prvky uživatelského rozhraní. Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki. To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Therefore, perhaps it makes sense to also allow showing the translated strings in the user language, when it’s different from the wiki content language.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This may be particularly relevant for multilingual sites such as Commons, Wikidata, Meta, and mediawiki.org.&lt;/span&gt;

&lt;span class="mw-translate-fuzzy"&gt;Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki. Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále. Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/span&gt;

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

&lt;span class="mw-translate-fuzzy"&gt;Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats). To pomůže lokalizátorům najít, jaké šablony potřebují překlad. To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This will help localizers find what templates need translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/span&gt;

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>f1dda1968badfbabacc8f9f6d724fb0e40c6370c</sha1>
  </revision>
  <revision>
    <id>6624112</id>
    <parentid>6624110</parentid>
    <timestamp>2024-07-09T07:20:34Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="91808" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
&lt;div class="mw-translate-fuzzy"&gt;
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce [[Gerrit]] nebo jiné úložiště.
&lt;/div&gt;

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

&lt;span class="mw-translate-fuzzy"&gt;Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[fallback language]]. Další podrobnosti najdete v části o lokalizaci.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See the sections on localization for more details.&lt;/span&gt;

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
&lt;span class="mw-translate-fuzzy"&gt;Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně. Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This localization process is familiar to at least some editors in all languages.&lt;/span&gt;

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

&lt;span class="mw-translate-fuzzy"&gt;Některé šablony se však používají jako prvky uživatelského rozhraní. Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki. To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Therefore, perhaps it makes sense to also allow showing the translated strings in the user language, when it’s different from the wiki content language.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This may be particularly relevant for multilingual sites such as Commons, Wikidata, Meta, and mediawiki.org.&lt;/span&gt;

&lt;span class="mw-translate-fuzzy"&gt;Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki. Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále. Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/span&gt;

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

&lt;span class="mw-translate-fuzzy"&gt;Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats). To pomůže lokalizátorům najít, jaké šablony potřebují překlad. To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This will help localizers find what templates need translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/span&gt;

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>fba11f92e784fbe406766620953119ff5c588c01</sha1>
  </revision>
  <revision>
    <id>6624114</id>
    <parentid>6624112</parentid>
    <timestamp>2024-07-09T07:21:01Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="91771" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

&lt;span class="mw-translate-fuzzy"&gt;Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[fallback language]]. Další podrobnosti najdete v části o lokalizaci.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See the sections on localization for more details.&lt;/span&gt;

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
&lt;span class="mw-translate-fuzzy"&gt;Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně. Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This localization process is familiar to at least some editors in all languages.&lt;/span&gt;

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

&lt;span class="mw-translate-fuzzy"&gt;Některé šablony se však používají jako prvky uživatelského rozhraní. Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki. To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Therefore, perhaps it makes sense to also allow showing the translated strings in the user language, when it’s different from the wiki content language.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This may be particularly relevant for multilingual sites such as Commons, Wikidata, Meta, and mediawiki.org.&lt;/span&gt;

&lt;span class="mw-translate-fuzzy"&gt;Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki. Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále. Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/span&gt;

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

&lt;span class="mw-translate-fuzzy"&gt;Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats). To pomůže lokalizátorům najít, jaké šablony potřebují překlad. To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This will help localizers find what templates need translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/span&gt;

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>4515cd9acb5a6629bc5e79678934f87ec276c2c0</sha1>
  </revision>
  <revision>
    <id>6624116</id>
    <parentid>6624114</parentid>
    <timestamp>2024-07-09T07:22:46Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="91717" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See the sections on localization for more details.&lt;/span&gt;

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
&lt;span class="mw-translate-fuzzy"&gt;Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně. Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This localization process is familiar to at least some editors in all languages.&lt;/span&gt;

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

&lt;span class="mw-translate-fuzzy"&gt;Některé šablony se však používají jako prvky uživatelského rozhraní. Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki. To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Therefore, perhaps it makes sense to also allow showing the translated strings in the user language, when it’s different from the wiki content language.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This may be particularly relevant for multilingual sites such as Commons, Wikidata, Meta, and mediawiki.org.&lt;/span&gt;

&lt;span class="mw-translate-fuzzy"&gt;Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki. Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále. Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/span&gt;

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

&lt;span class="mw-translate-fuzzy"&gt;Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats). To pomůže lokalizátorům najít, jaké šablony potřebují překlad. To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This will help localizers find what templates need translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/span&gt;

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>d0b9665b552e8e0580760eaab4b71a7b2ee891a5</sha1>
  </revision>
  <revision>
    <id>6624118</id>
    <parentid>6624116</parentid>
    <timestamp>2024-07-09T07:22:51Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Další podrobnosti najdete v části o lokalizaci."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="91662" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
&lt;span class="mw-translate-fuzzy"&gt;Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně. Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This localization process is familiar to at least some editors in all languages.&lt;/span&gt;

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

&lt;span class="mw-translate-fuzzy"&gt;Některé šablony se však používají jako prvky uživatelského rozhraní. Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki. To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Therefore, perhaps it makes sense to also allow showing the translated strings in the user language, when it’s different from the wiki content language.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This may be particularly relevant for multilingual sites such as Commons, Wikidata, Meta, and mediawiki.org.&lt;/span&gt;

&lt;span class="mw-translate-fuzzy"&gt;Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki. Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále. Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/span&gt;

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

&lt;span class="mw-translate-fuzzy"&gt;Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats). To pomůže lokalizátorům najít, jaké šablony potřebují překlad. To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This will help localizers find what templates need translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/span&gt;

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>9b3fc1671a049f1b5e1cc6b3cc781d5a6c36a8eb</sha1>
  </revision>
  <revision>
    <id>6624120</id>
    <parentid>6624118</parentid>
    <timestamp>2024-07-09T07:23:38Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="91536" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This localization process is familiar to at least some editors in all languages.&lt;/span&gt;

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

&lt;span class="mw-translate-fuzzy"&gt;Některé šablony se však používají jako prvky uživatelského rozhraní. Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki. To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Therefore, perhaps it makes sense to also allow showing the translated strings in the user language, when it’s different from the wiki content language.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This may be particularly relevant for multilingual sites such as Commons, Wikidata, Meta, and mediawiki.org.&lt;/span&gt;

&lt;span class="mw-translate-fuzzy"&gt;Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki. Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále. Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/span&gt;

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

&lt;span class="mw-translate-fuzzy"&gt;Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats). To pomůže lokalizátorům najít, jaké šablony potřebují překlad. To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This will help localizers find what templates need translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/span&gt;

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>70fe29e56955618fffc0b7a1365580841657fe28</sha1>
  </revision>
  <revision>
    <id>6624122</id>
    <parentid>6624120</parentid>
    <timestamp>2024-07-09T07:23:42Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="91485" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

&lt;span class="mw-translate-fuzzy"&gt;Některé šablony se však používají jako prvky uživatelského rozhraní. Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki. To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Therefore, perhaps it makes sense to also allow showing the translated strings in the user language, when it’s different from the wiki content language.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This may be particularly relevant for multilingual sites such as Commons, Wikidata, Meta, and mediawiki.org.&lt;/span&gt;

&lt;span class="mw-translate-fuzzy"&gt;Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki. Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále. Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/span&gt;

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

&lt;span class="mw-translate-fuzzy"&gt;Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats). To pomůže lokalizátorům najít, jaké šablony potřebují překlad. To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This will help localizers find what templates need translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/span&gt;

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>7ba6b9900d977fbf7a04643577755b29d103f0de</sha1>
  </revision>
  <revision>
    <id>6624124</id>
    <parentid>6624122</parentid>
    <timestamp>2024-07-09T07:24:12Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="91191" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Therefore, perhaps it makes sense to also allow showing the translated strings in the user language, when it’s different from the wiki content language.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This may be particularly relevant for multilingual sites such as Commons, Wikidata, Meta, and mediawiki.org.&lt;/span&gt;

&lt;span class="mw-translate-fuzzy"&gt;Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki. Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále. Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/span&gt;

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

&lt;span class="mw-translate-fuzzy"&gt;Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats). To pomůže lokalizátorům najít, jaké šablony potřebují překlad. To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This will help localizers find what templates need translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/span&gt;

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>93dbd4bc71a835447ff27e023e7b14cf3878fd9f</sha1>
  </revision>
  <revision>
    <id>6624126</id>
    <parentid>6624124</parentid>
    <timestamp>2024-07-09T07:24:28Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="91116" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This may be particularly relevant for multilingual sites such as Commons, Wikidata, Meta, and mediawiki.org.&lt;/span&gt;

&lt;span class="mw-translate-fuzzy"&gt;Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki. Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále. Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/span&gt;

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

&lt;span class="mw-translate-fuzzy"&gt;Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats). To pomůže lokalizátorům najít, jaké šablony potřebují překlad. To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This will help localizers find what templates need translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/span&gt;

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>a0307313646c0d2c338c063a1d15c1278fce423a</sha1>
  </revision>
  <revision>
    <id>6624128</id>
    <parentid>6624126</parentid>
    <timestamp>2024-07-09T07:26:17Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="91069" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

&lt;span class="mw-translate-fuzzy"&gt;Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki. Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále. Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/span&gt;

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

&lt;span class="mw-translate-fuzzy"&gt;Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats). To pomůže lokalizátorům najít, jaké šablony potřebují překlad. To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This will help localizers find what templates need translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/span&gt;

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>3f02a79e30dfdcc9e18c0dec422351aeedee9cf6</sha1>
  </revision>
  <revision>
    <id>6624130</id>
    <parentid>6624128</parentid>
    <timestamp>2024-07-09T07:26:37Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="90666" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/span&gt;

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

&lt;span class="mw-translate-fuzzy"&gt;Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats). To pomůže lokalizátorům najít, jaké šablony potřebují překlad. To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This will help localizers find what templates need translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/span&gt;

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>9d6cd96afb228100e4cdaacfa7b59a0adb1d52b9</sha1>
  </revision>
  <revision>
    <id>6624132</id>
    <parentid>6624130</parentid>
    <timestamp>2024-07-09T07:26:52Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="90633" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/span&gt;

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

&lt;span class="mw-translate-fuzzy"&gt;Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats). To pomůže lokalizátorům najít, jaké šablony potřebují překlad. To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This will help localizers find what templates need translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/span&gt;

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>8ddb84282ffa9a4841f8fa8ddb0196f7c022e688</sha1>
  </revision>
  <revision>
    <id>6624134</id>
    <parentid>6624132</parentid>
    <timestamp>2024-07-09T07:26:58Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="90595" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

&lt;span class="mw-translate-fuzzy"&gt;Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats). To pomůže lokalizátorům najít, jaké šablony potřebují překlad. To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This will help localizers find what templates need translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/span&gt;

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>0f6d978d3c72576bcd2a466f14d215d525bdea7e</sha1>
  </revision>
  <revision>
    <id>6624137</id>
    <parentid>6624134</parentid>
    <timestamp>2024-07-09T07:29:18Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="90352" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This will help localizers find what templates need translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/span&gt;

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>36697659bad9a55e65f7fdb51840a8bfac9e3cbd</sha1>
  </revision>
  <revision>
    <id>6624139</id>
    <parentid>6624137</parentid>
    <timestamp>2024-07-09T07:29:35Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "To pomůže lokalizátorům najít, jaké šablony potřebují překlad."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="90305" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/span&gt;

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>632657afa50f53ad9d109d772ae5e7f4a7abd6c5</sha1>
  </revision>
  <revision>
    <id>6624141</id>
    <parentid>6624139</parentid>
    <timestamp>2024-07-09T07:29:42Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="90266" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

&lt;span class="mw-translate-fuzzy"&gt;Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;) . To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>12869e438fa861c5ec1ea37d42683bd4e301e6ca</sha1>
  </revision>
  <revision>
    <id>6624143</id>
    <parentid>6624141</parentid>
    <timestamp>2024-07-09T07:30:32Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="90152" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is to be decided according to considerations of parsing and localization convenience.&lt;/span&gt;

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>afc81ff973104a26b1aabc572ac83de0042c2bc3</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/42/cs</title>
  <ns>1198</ns>
  <id>1992041</id>
  <revision>
    <id>6624105</id>
    <parentid>6623432</parentid>
    <timestamp>2024-07-09T07:19:37Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="79" xml:space="preserve">"Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019.</text>
    <sha1>bc80f8a00ce9c8766d56699c9d7a9fb90958af74</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/533/cs</title>
  <ns>1198</ns>
  <id>1992238</id>
  <revision>
    <id>6624107</id>
    <timestamp>2024-07-09T07:19:51Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Vyžaduje také konfiguraci na každé wiki."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="44" xml:space="preserve">Vyžaduje také konfiguraci na každé wiki.</text>
    <sha1>90d6ab4ae00f2c2804926d607b52f56398216509</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/534/cs</title>
  <ns>1198</ns>
  <id>1992239</id>
  <revision>
    <id>6624109</id>
    <timestamp>2024-07-09T07:20:08Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="240" xml:space="preserve">Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]].</text>
    <sha1>ee3c56420b8e3ea479fecf16747aae3c6246787f</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/535/cs</title>
  <ns>1198</ns>
  <id>1992240</id>
  <revision>
    <id>6624111</id>
    <timestamp>2024-07-09T07:20:33Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="160" xml:space="preserve">V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu.</text>
    <sha1>8b5fcf47749ac1f80a75e9d54519d2832eacad7d</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/143/cs</title>
  <ns>1198</ns>
  <id>1992049</id>
  <revision>
    <id>6624113</id>
    <parentid>6623449</parentid>
    <timestamp>2024-07-09T07:21:00Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="158" xml:space="preserve">Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce $1 nebo jiné úložiště.</text>
    <sha1>553526beef955aa89715c104ac805660109db3d9</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/389/cs</title>
  <ns>1198</ns>
  <id>1992074</id>
  <revision>
    <id>6624115</id>
    <parentid>6623507</parentid>
    <timestamp>2024-07-09T07:22:45Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="180" xml:space="preserve">Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[$1|záložním jazyce]].</text>
    <sha1>f3ed4d32f827478dbc5a4c58749dca82e7557b46</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/536/cs</title>
  <ns>1198</ns>
  <id>1992241</id>
  <revision>
    <id>6624117</id>
    <timestamp>2024-07-09T07:22:50Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Další podrobnosti najdete v části o lokalizaci."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="51" xml:space="preserve">Další podrobnosti najdete v části o lokalizaci.</text>
    <sha1>fc3e6e405f9c8dc7a403d93e3ab5d0a42f90949f</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/148/cs</title>
  <ns>1198</ns>
  <id>1992077</id>
  <revision>
    <id>6624119</id>
    <parentid>6623514</parentid>
    <timestamp>2024-07-09T07:23:37Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="178" xml:space="preserve">Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[$1|Pageviews]] jsou na $2 překládány pohodlně a robustně.</text>
    <sha1>143ce1254292e1059dc068b561df0c77c8489f26</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/537/cs</title>
  <ns>1198</ns>
  <id>1992242</id>
  <revision>
    <id>6624121</id>
    <timestamp>2024-07-09T07:23:41Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="85" xml:space="preserve">Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.</text>
    <sha1>4c9bb377079a0828f7169eabd55a5832c40bbfc7</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/68/cs</title>
  <ns>1198</ns>
  <id>1992089</id>
  <revision>
    <id>6624123</id>
    <parentid>6623538</parentid>
    <timestamp>2024-07-09T07:24:11Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="78" xml:space="preserve">Některé šablony se však používají jako prvky uživatelského rozhraní.</text>
    <sha1>9a4f23d4668df87a981c30a2704226a49d790f12</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/538/cs</title>
  <ns>1198</ns>
  <id>1992243</id>
  <revision>
    <id>6624125</id>
    <timestamp>2024-07-09T07:24:27Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="135" xml:space="preserve">Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.</text>
    <sha1>7b212491b3aed4085123e2ed11e9ef1d282e93be</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/539/cs</title>
  <ns>1198</ns>
  <id>1992244</id>
  <revision>
    <id>6624127</id>
    <timestamp>2024-07-09T07:26:16Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="117" xml:space="preserve">To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.</text>
    <sha1>9d36cc0db46f5a89b632e22fa03929b168b8c4f9</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/69/cs</title>
  <ns>1198</ns>
  <id>1992090</id>
  <revision>
    <id>6624129</id>
    <parentid>6623540</parentid>
    <timestamp>2024-07-09T07:26:36Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="103" xml:space="preserve">Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.</text>
    <sha1>54f5d55529b546b2f3dbc54ed9360dc8fdb182c1</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/540/cs</title>
  <ns>1198</ns>
  <id>1992245</id>
  <revision>
    <id>6624131</id>
    <timestamp>2024-07-09T07:26:51Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="210" xml:space="preserve">Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.</text>
    <sha1>b130b7395b0823de9b5d675121ef3cc159af748c</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/541/cs</title>
  <ns>1198</ns>
  <id>1992246</id>
  <revision>
    <id>6624133</id>
    <timestamp>2024-07-09T07:26:57Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="151" xml:space="preserve">Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.</text>
    <sha1>1158a7cee53c1d55af74186a3735c0446365410a</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Global templates/Proposed specification</title>
  <ns>0</ns>
  <id>994874</id>
  <revision>
    <id>6624135</id>
    <parentid>6623722</parentid>
    <timestamp>2024-07-09T07:27:46Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <minor/>
    <comment>editace</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88660" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
&lt;translate&gt;
&lt;!--T:1--&gt;
This is a proposal for the functional requirements for global templates and modules.

&lt;!--T:288--&gt;
You can also read a {{&lt;tvar name=1&gt;pll|Global templates/Proposed specification, short version&lt;/tvar&gt;|one-page version of this proposal}}.

&lt;!--T:2--&gt;
'''This is not a project that is being executed or planned to be executed by anyone at any defined point in time, at least not yet. This is just an idea, albeit a very detailed one.'''

&lt;!--T:3--&gt;
The eventual goal is to form a cross-team and cross-project commitment on implementing these things, with proper architecture, product and project management, community engagement, etc.

&lt;!--T:4--&gt;
This document does not try to go into the details of technical implementation in terms of storage, caching, delivery, PHP code design, etc. It only tries to define the requirements of how this feature will work from the point of view of the users:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:5--&gt; People who create and maintain templates and modules.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:6--&gt; People who create and edit pages that transclude templates and modules. This includes all editors and all kinds of pages:&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:7--&gt; All levels of experience: from those who are completely new to those who have made thousands of edits&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:8--&gt; All kinds of editing tools: wiki syntax editing, Visual Editor, Content Translation, and others (even bot operators)&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:9--&gt; All wikis: Wikipedia, Wiktionary, Wikivoyage, Wikidata, Incubator, etc., and any new future projects&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:10--&gt; All languages: English, French, Russian, Spanish, Armenian, Persian, Zulu, Manipuri, etc.&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:11--&gt; All kinds of pages: Wikipedia articles, articles talk pages, user talk pages, community discussion pages, WikiProject pages, categories, template documentation pages, etc.&lt;/translate&gt; {{Triple globe}}
{{Global templates nav}}
&lt;translate&gt;
== Elevator pitch == &lt;!--T:12--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:135--&gt; A large part of the functionality of Wikimedia sites is implemented in templates and Lua modules.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:491--&gt; In their current form, they cannot be shared across different wikis and languages.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:492--&gt; Because of this they are hard to integrate with modern ways of creating and editing articles, such as Visual Editor, Wikidata, and Content Translation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:493--&gt; They are also hard to adapt to mobile devices.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:494--&gt; This causes waste of contributors’ effort, and difficulties for new editors and smaller projects.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:495--&gt; It must become possible to share them across wiki sites, similarly to Commons images.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:496--&gt; This will make software development faster and more robust, and it will also let editors focus more on writing.&lt;/translate&gt; {{Triple globe}}

&lt;translate&gt;
== The Problem == &lt;!--T:13--&gt;

&lt;!--T:136--&gt;
'''''General comment: Unless noted otherwise, all references to “templates” also apply to {{&lt;tvar name=1&gt;pll|Extension:Scribunto&lt;/tvar&gt;|Scribunto}} Lua modules.'''''
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:14--&gt; Templates implement features of Wikimedia sites.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:513--&gt; Some of these features are highly prominent, especially the infoboxes, the references, “citation needed”, and many others.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:514--&gt; For a more comprehensive list of functions implemented using templates, see {{&lt;tvar name="Taxonomy"&gt;pll|Global templates/Taxonomy&lt;/tvar&gt;|Taxonomy}}.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:515--&gt; All the readers see them, and all the editors run into them in almost every edit action.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:516--&gt; In addition, they implement many of the sites’ internal community management features: requests for deletion, requests for unblocking, expressing support in discussions, sorting articles for WikiProjects, etc.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:15--&gt;
Templates provide an efficient mechanism to quickly design, deploy, and use repetitive pieces of text and markup in many pages. However, templates also have several acute usability problems for all kinds of editors.

=== Difficulties for all editors in all wikis === &lt;!--T:16--&gt;

==== Wiki syntax editors ==== &lt;!--T:17--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:137--&gt; Templates are often difficult to understand for editors in wiki syntax.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:500--&gt; People who are experienced with using a particular template will probably identify it and be able to edit a page that includes it.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:501--&gt; However, editors who are not familiar with this template will have to look up its documentation when they encounter it, even if they are generally experienced with editing and other templates.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:502--&gt; And editors who have low experience will be baffled by the cryptic text with curly braces, pipe characters, equal signs, etc.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:18--&gt; Using a feature that is implemented as a template requires knowing the template’s name and typing it in curly braces (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) or copying it from another page.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:517--&gt; This is not obvious to new users, and veteran users have to learn each new template separately, too.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:19--&gt; Some wikis have gadgets that add buttons that insert templates that are common in that project to the editing toolbar.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:518--&gt; These are different in each wiki, even though a lot of the templates have similar functionality across projects and languages.&lt;/translate&gt;

&lt;translate&gt;
==== Visual Editor users ==== &lt;!--T:20--&gt;
&lt;/translate&gt;
{{Tracked|T55590}}
{{Tracked|T67173}}
&lt;translate&gt;
&lt;!--T:138--&gt;
VisualEditor users have some advantages with using templates, however there are many issues with them there as well. In particular, there is a similar discoverability issue: In Visual Editor, all the templates’ functionality is hidden behind the “&lt;tvar name=1&gt;{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}&lt;/tvar&gt;” menu item, and the user has to know the template name before using it.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:21--&gt; Visual Editor’s “&lt;tvar name=1&gt;{{int|visualeditor-toolbar-insert}}&lt;/tvar&gt;” menu has items for Math formulas, Egyptian Hieroglyphs, Musical scores, and some other functions that are implemented as extensions, but it doesn’t have items such as “Infobox”, “Citation needed”, “Unit conversion”, “Quotation”, etc.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:450--&gt; All the templates are the same kind of generic item.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:22--&gt; There is one notable exception: Some wikis have the “&lt;tvar name=1&gt;{{int|citoid-citoidtool-title}}&lt;/tvar&gt;” button, which inserts footnotes with reference templates.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:451--&gt; However, it is an exception that proves the rule.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:452--&gt; It requires manual configuration for even basic functionality, this configuration is separate in each wiki, and as a consequence many wikis don’t have this button at all.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:453--&gt; Another comparable exception, which was added in late 2019, is special support for “Citation needed” templates, but this also needs some custom configuration on each and every wiki to actually work.&lt;/translate&gt;

&lt;translate&gt;
=== Difficulties for editors who write in more than one project === &lt;!--T:23--&gt;

&lt;!--T:292--&gt;
Many templates exist in one project, but not in others, and often a template is available, but in a different form. Because of this, it’s difficult or impossible to reuse skills that were acquired in one project: the functionality that the template provides is sometimes unavailable, and sometimes it works differently. This applies not just to wikis in different languages, but also to different wikis in the same language, for example, English Wikipedia and English Wikisource.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:24--&gt; For people editing in different languages, templates make translation harder.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:519--&gt; When translating a page, templates are much harder to handle than the article text (“prose”), whether the translation is done manually or with Content Translation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:520--&gt; Users often have to skip the template or to correct it after the article was published.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:521--&gt; This also causes abandoning translations in progress, because template translation looks intimidating.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:281--&gt;
The most commonly reported issues in Content Translation are about templates.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:25--&gt; Content Translation has a template adaptation feature, which automates some parts of this process, but it works only if a corresponding template exists in both languages, and if all the parameters were meticulously mapped by the template maintainers.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:529--&gt; This must be done for each template in each language separately and manually, and continuously maintained when the source template changes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:530--&gt; This happens even though the templates’ function across the languages is the same most of the time.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:282--&gt;
Ideally, the templates and their parameters should be transferred to the translated page almost completely automatically, so that the translators could focus on writing the prose, as writing the prose is the area where human work is most needed.

&lt;!--T:26--&gt;
A template can be exported from one wiki to another, but once this is done, the template becomes a forked copy. It either stays in the state in which it was exported, or continues to be developed separately, causing incompatibility. Sometimes people keep maintaining the different copies, but this is not robust and cannot scale for the hundreds of wikis that we have.

&lt;!--T:27--&gt;
Template parameters can have the same functionality, but different names in different wikis. They can be adapted using TemplateData aliases, but this is a suboptimal hack: it is not what TemplateData was originally made for, and it has to be done manually for each language pair.

&lt;!--T:28--&gt;
Templates mix together algorithmic logic, human-readable text strings, and formatting. Because of this there is no robust way to translate the templates’ user interface strings, as it is done with MediaWiki core and extensions.

=== Difficulties for editors in smaller wikis === &lt;!--T:29--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:139--&gt; A new wiki project is created by installing core MediaWiki and enabling a default set of extensions.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:531--&gt; In practice this doesn’t create a level playing field because many key features of larger wikis are implemented in templates: infoboxes, citations, maintenance hatnotes (such as &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced|Unreferenced]]&lt;nowiki&gt;}}&lt;/nowiki&gt;), etc.&lt;/translate&gt;

&lt;translate&gt;
=== Difficulties for software developers === &lt;!--T:435--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:436--&gt; It is difficult for developers of MediaWiki core, extensions, bots, and other tools that analyze, generate, or modify wiki page content to build features that depend on the presence of certain templates in a wiki.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:532--&gt; Developers of extensions such as GrowthExperiments, PageTriage, ContentTranslation, some components of Wikibase, and many others, have to either test them in production, which is a bad idea, or to import the templates to their local wikis or an online test wiki.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:437--&gt;
Researchers who get data about wiki content based on templates have to write their analysis code for each wiki separately, and sometimes they end up doing for only one wiki. A notable example is using English Wikipedia’s WikiProject templates to analyze page topics and assess article quality.&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Assumptions == &lt;!--T:414--&gt;

=== Extensions vs Templates: Similarities and differences === &lt;!--T:318--&gt;

&lt;!--T:319--&gt;
One of the main assumptions of this project proposal is that templates and modules are very similar to MediaWiki core and extensions: They are software, and they implement features that the editors community needs. In particular, since templates are usually developed by the editors themselves, it’s obvious that the community ''really'' needs them. The big differences between lie in how they are developed, localized, and deployed.

&lt;!--T:320--&gt;
Templates and modules should become similar to extensions in some key properties that they currently lack, and preserve some good properties that extensions lack. (For ease of understanding by English readers, in the table, examples of templates are given from the English Wikipedia. They could also come from any other wiki and any other language.)
&lt;/translate&gt;

{| class="wikitable vs"
!&lt;translate&gt;&lt;!--T:321--&gt; Property&lt;/translate&gt;
!&lt;translate&gt;&lt;!--T:322--&gt; Core and extensions&lt;/translate&gt;
!&lt;translate&gt;&lt;!--T:323--&gt; Templates&lt;/translate&gt;
!&lt;translate&gt;&lt;!--T:362--&gt; What should be done about this with templates?&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:324--&gt; Implement special kind of content&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:325--&gt; Yes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:326--&gt; image, math, hieroglyphics, score, basic ref&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:327--&gt; Yes.&lt;/translate&gt;
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|&lt;translate&gt;&lt;!--T:328--&gt; └ Special kind of content is easy to insert into pages&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:329--&gt; Yes (using the toolbar).&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:330--&gt; No (unless you learned how to do it).&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:363--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:331--&gt; └ Special kind of content is easy to adapt to mobile devices&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:332--&gt; Mostly yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:333--&gt; Sometimes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:364--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:334--&gt; └ Special kind of content is easy to translate as part of an article&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:335--&gt; Mostly yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:336--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:365--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:337--&gt; Implement page formatting features&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:338--&gt; Yes.&lt;/translate&gt;
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|&lt;translate&gt;&lt;!--T:339--&gt; Yes.&lt;/translate&gt;
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|&lt;translate&gt;&lt;!--T:340--&gt; Implement community workflow processes&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:341--&gt; Yes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:342--&gt; Abuse filter, Check user, Move&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:343--&gt; Yes.&lt;/translate&gt;
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|&lt;translate&gt;&lt;!--T:366--&gt; Should be easy to reuse, but not forced.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:344--&gt; Easy to deploy initial version&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:345--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:346--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:367--&gt; Should be preserved.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:347--&gt; Easy to deploy changes&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:348--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:349--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:368--&gt; Should be preserved.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:350--&gt; Easy to localize&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:351--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:352--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:369--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:353--&gt; Useful on multiple wikis&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:354--&gt; Often.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:355--&gt; Often.&lt;/translate&gt;
|
|-
|&lt;translate&gt;&lt;!--T:374--&gt; Used only on a limited number of wikis&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:375--&gt; Sometimes.&lt;/translate&gt;
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|&lt;translate&gt;&lt;!--T:376--&gt; Sometimes.&lt;/translate&gt;
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|&lt;translate&gt;&lt;!--T:356--&gt; Easy to install and use on multiple wikis&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:357--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:358--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:370--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:359--&gt; Easy to use on a new, recently created wiki&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:360--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:361--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:371--&gt; Should be changed.&lt;/translate&gt;
|}
&lt;translate&gt;
=== Templates and modules development skills === &lt;!--T:406--&gt;

&lt;!--T:407--&gt;
Another important set of assumptions on which this proposal is based is the following:&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:408--&gt; The skills for developing templates and modules are non-trivial. Both templates and modules have numerous obscure features.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:409--&gt; Even though many of the sites’ most notable features are implemented as templates and modules, these skills are often unnoticed, underappreciated, and taken for granted.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:410--&gt; There are dozens of people who have these skills, and they edit many wikis. They usually focus on their home wiki and relatively rarely communicate with contributors from other wikis or other languages. Even though the underlying technology is the same everywhere, there is no true global community of template developers that would be comparable to the global community of MediaWiki core and extensions developers. There are cases of cross-wiki collaboration on certain templates, but they are inconsistent.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:411--&gt; There are also many wikis in which there are no editors who have these skills. They either copy templates and modules from other wikis without fully understanding how they work and without the ability to localize and maintain them effectively, or they don’t use templates at all.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:412--&gt; This situation is far from optimal.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:522--&gt; The template and module developers’ skills need more appreciation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:523--&gt; They develop truly needed features, and they are embedded in their editors communities.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:524--&gt; In wikis in many languages, the template developers come up with innovative features for structured content, data presentation, and modularization.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:525--&gt; These innovations could be useful in many wikis, but currently there is no convenient mechanism to achieve this.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:413--&gt;
And of course, any solution for these problems must not come up with new technologies that will discard the many years of hands-on experience that the template maintainers have acquired. Hence, there must be as few changes as possible in the syntax for developing templates and modules. The things that need to change are the way in which they are deployed and propagated across wikis, and the way in which the human-readable strings in them are localized (translated).&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== The proposed solution: Summary == &lt;!--T:30--&gt;

&lt;!--T:140--&gt;
There are already many features of MediaWiki that are global across wikis:
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:466--&gt; images (using [[&lt;tvar name=1&gt;:commons:&lt;/tvar&gt;|Commons]])&lt;/translate&gt;
* {{pll|Extension:GlobalBlocking|2=&lt;translate&gt;&lt;!--T:467--&gt; blocking&lt;/translate&gt;}}
* &lt;translate&gt;&lt;!--T:468--&gt; user accounts&lt;/translate&gt; ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=&lt;translate&gt;&lt;!--T:469--&gt; preferences&lt;/translate&gt;}}
* {{pll|Extension:GlobalUserPage|2=&lt;translate&gt;&lt;!--T:470--&gt; user pages&lt;/translate&gt;}}
* {{pll|Extension:GlobalCssJs|2=&lt;translate&gt;&lt;!--T:471--&gt; user JS and CSS pages&lt;/translate&gt;}}
* &lt;translate&gt;&lt;!--T:481--&gt; global watchlist is in active development as of late 2020&lt;/translate&gt; ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* &lt;translate&gt;&lt;!--T:472--&gt; and some others.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:31--&gt;
'''It must be possible to store templates and modules in a global repository, too, and to localize them as robustly as it is done with extensions.'''

&lt;!--T:32--&gt;
Global templates and modules will empower template maintainers in all wikis by letting them collaborate more easily on developing the templates’ code.

&lt;!--T:305--&gt;
Global templates and modules will empower translators and localizers by allowing them to focus on translating just the user interface strings (“messages”), without having to look for strings in the code, and by allowing them to use the same skills and tools for translating templates and MediaWiki extensions.

&lt;!--T:306--&gt;
Global templates and modules will empower content editors in all wikis to write and translate content that uses these templates without having to dive into the differences and to relearn different rules and skills in each wiki.

&lt;!--T:33--&gt;
The syntax for developing templates and modules, and the general template maintenance and deployment cycle will not change, so all the skills that the template maintainers have acquired over the years will remain relevant.

&lt;!--T:34--&gt;
All wikis will be able to use the global templates, but not forced to do this. Communities will keep their capability to override any global functionality, design, workflows, and data.

&lt;!--T:35--&gt;
Localizing templates will be as convenient as localizing MediaWiki extensions.&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== The proposed solution: Detailed requirements == &lt;!--T:36--&gt;

=== Templates must be able to be semantic and global === &lt;!--T:37--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:141--&gt; ''Semantic'' means that other software components, especially Visual Editor and Content Translation, must have a general way to understand that a template exists and that it provides certain functionality, so that it will be possible to insert it into a page as an infobox, a citation, a maintenance tag, etc., and not only as a generic template.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:503--&gt; Currently, the closest thing to making templates semantic is TemplateData, but it only describes the template’s parameters.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:504--&gt; It doesn’t, for example, help Visual Editor add an “Insert infobox” button to the toolbar.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:38--&gt;
''Global'' means that a template’s code must be maintained in one place and usable in all wikis.

=== Making templates semantic === &lt;!--T:39--&gt;
&lt;/translate&gt;
{{Tracked|T103630}}
{{Tracked|T103624}}
&lt;translate&gt;
&lt;!--T:142--&gt;
Templates have never been robustly semantic, in the sense of being easy to handle by software that processes pages.

&lt;!--T:40--&gt;
There are only a few examples of templates that were made semantic:
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:41--&gt; Various reference templates, which are usable from the Visual Editor toolbar “&lt;tvar name=1&gt;{{int|citoid-citoidtool-title}}&lt;/tvar&gt;” button.&lt;/translate&gt; &lt;translate&gt;&lt;!--T:454--&gt; They require writing a lot of separate code to configure Citoid on each wiki that wants to use them.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:42--&gt; “Citation needed”, which was adapted to Visual Editor in late 2019.&lt;/translate&gt; &lt;translate&gt;&lt;!--T:533--&gt; It also requires configuration on each wiki.&lt;/translate&gt; &lt;translate&gt;&lt;!--T:534--&gt; For example: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|English]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|Hebrew]], [[:sl:MediaWiki:Visualeditor-template-tools-definition.json|Slovene]].&lt;/translate&gt; &lt;translate&gt;&lt;!--T:535--&gt; As of this writing, French, Spanish, and most other languages are not configured for this, even though they have templates of this kind.&lt;/translate&gt; ({{Phab|T211243}})
* &lt;translate&gt;&lt;!--T:43--&gt; Templates for mentioning users in the Flow extension, which require local configuration, too.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:44--&gt; Some dump processing and research tools can parse English Wikipedia’s WikiProject page assessment templates, which are usually added to talk pages.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:445--&gt; The GrowthExperiments extension suggests editors to perform certain tasks in articles based on the templates that are transcluded in them. The template names have to be configured manually by writing JSON files separately in each wiki. For example: [[:cs:MediaWiki:NewcomerTasks.json|Czech]], [[:vi:MediaWiki:NewcomerTasks.json|Vietnamese]], [[:ko:MediaWiki:NewcomerTasks.json|Korean]], [[:ar:MediaWiki:NewcomerTasks.json|Arabic]].&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:45--&gt; The PageTriage extension is configured to work with English Wikipedia’s hatnote templates (also known as “tags”).&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:46--&gt;
In the case of PageTriage, the extension essentially hard-codes a single wiki’s templates, making it unusable in other wikis without a significant rewrite. Even if the on-wiki configuration step is small, as it is with the Flow example, it still needs to be done. This doesn’t scale well for the 900 wikis that Wikimedia has, and the thousands that it will have in the future.

&lt;!--T:47--&gt;
These things should be global by default, so that they will be immediately usable in at least a basic default configuration on all wikis at once by extensions, bots, dump analyzers, etc.

=== Storage and delivery === &lt;!--T:48--&gt;
&lt;/translate&gt;
{{Tracked|T6547}}
{{Tracked|T91162}}
&lt;translate&gt;
&lt;!--T:143--&gt;
The global templates and modules can be stored in a central wiki (Meta, Commons, or a whole new wiki), and it can even be &lt;tvar name=1&gt;{{ll|Gerrit}}&lt;/tvar&gt; or another repository.

&lt;!--T:49--&gt;
The best solution is probably creating a new wiki that will store them, without getting mixed up with images, general community discussion, etc.

&lt;!--T:50--&gt;
Using Gerrit as storage for templates and modules code is technically possible, but it would lose an important element of accessibility for template maintainers: editing a template in a wiki page is much easier and familiar to the vast majority of template maintainers than making Git commits and waiting for code review. Therefore, Gerrit probably shouldn’t become a way for storing the template and module code, at least not the primary one.

&lt;!--T:51--&gt;
Global templates and modules must be stored in a common repository that can be edited by most wiki editors. Rules about blocking and special permissions should initially be similar to the rules in other wikis: everything should be open by default, and it must be possible to protect very common, sensitive, or frequently-vandalized templates. More detailed rules about protection levels can be developed by the editors community later.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:510--&gt; The code of the templates in the central repository will use the generic English names of tags such as &lt;tvar name=section&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt;, parser functions such as &lt;tvar name=ifexist&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt; or &lt;tvar name=invoke&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt;, and magic words such as &lt;tvar name=displaytitle&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt;.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:52--&gt; How the templates are delivered to the target wikis is a question of internal engineering and architecture, as long as the other requirements are addressed.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:505--&gt; These questions were discussed in the past by some platform developers, for example around the [[Requests for comment/Shadow namespaces|Shadow namespaces]] project.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:506--&gt; This document tries to address related questions of how it works for the user who edits a page that uses a template, or who maintains the template itself—how to write it in a localizable way; how is it translated; how is it locally customized; etc.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:507--&gt; These questions weren’t addressed sufficiently in the previous architectural discussions on the topic.&lt;/translate&gt;

&lt;translate&gt;
=== Templates must remain easy to modify === &lt;!--T:53--&gt;

&lt;!--T:144--&gt;
An important feature of how templates currently work is that they are edited just like wiki pages and immediately become functional after publishing without review or deployment. This is somewhat dangerous because a bad edit can ruin many pages, but the fact is that it works mostly well.

&lt;!--T:54--&gt;
This ease must be preserved. Community members who maintain templates will most likely reject moving to a new system that will require them to learn new skills and drag every change through an exhausting review and deployment phase. This probably means that storing the templates in Gerrit is not going to work, unless, perhaps, the process for review and deployment will be ''much'' easier than it is for extensions.

=== It must be possible to make some templates non-global === &lt;!--T:55--&gt;

&lt;!--T:145--&gt;
Not all templates should be forced to be global.
&lt;/translate&gt;
{{Tracked|T165053}}
&lt;translate&gt;
&lt;!--T:56--&gt;
In fact, some templates should be local because they implement a functionality that is unique to a certain language. By their nature, such templates don’t need to be translated, and there should be a way to give a hint to both human editors and translation tools (such as Content Translation) that they don’t need to be adapted, and can be skipped or substituted. This is a part of the effort to make templates more semantic.

=== It must be possible to override some functionality or appearance of a global template === &lt;!--T:57--&gt;

&lt;!--T:146--&gt;
No community should feel that a functionality is imposed on it by some powerful external player, like the English Wikipedia community, the Wikidata community, the WMF, or anybody else. Global templates should be developed and used collaboratively for the common benefit. Most of the time, it should work for everybody.

&lt;!--T:313--&gt;
Sometimes some communities will have strong opinions about wanting to have particular functionality or design that will be different in their language or project, or to show an infobox with information that is different from what is shown in other projects, or not to show it at all. The capability to override things locally must be allowed from the start. (Or rather, it must not be taken away.)

=== A global template must be immediately usable in every wiki === &lt;!--T:60--&gt;

&lt;!--T:147--&gt;
Just like a global user page is immediately available in every wiki in which there is no local user page, every template or module that is created on the global infrastructure must be immediately usable in every wiki.

&lt;!--T:387--&gt;
This must not require ''any'' extra steps, such as copying wiki pages, creating wrapper templates with a local name, administrator intervention, waiting for hours for caches to refresh, etc.

&lt;!--T:388--&gt;
After the central version is updated, the updated version will be immediately shown everywhere. To prevent vandalism, the editors community will develop policies on permissions and protection levels.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:389--&gt; If the user interface strings (also known as “messages”) were not translated, the template will nevertheless be usable, and the strings will be shown in the [[&lt;tvar name=1&gt;Special:MyLanguage/fallback language&lt;/tvar&gt;|fallback language]].&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:536--&gt; See the sections on localization for more details.&lt;/translate&gt;

&lt;translate&gt;
=== Localization of user-facing strings === &lt;!--T:61--&gt;
&lt;/translate&gt;
{{tracked|T238411}}
&lt;translate&gt;
==== It must be possible to translate all user-facing strings ==== &lt;!--T:62--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:148--&gt; The user interface strings (messages) of core MediaWiki, extensions, and some external tools such as [[&lt;tvar name=1&gt;:m:Community Tech/Pageview stats tool&lt;/tvar&gt;|Pageviews]] are translated conveniently and robustly on &lt;tvar name=2&gt;translatewiki.net&lt;/tvar&gt;.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:537--&gt; This localization process is familiar to at least some editors in all languages.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:63--&gt;
It’s currently not possible to do the same with templates. Multilingual sites such as Commons and mediawiki.org have the “[[commons:Template:Translatable navigation template|TNT]]” system for translating some templates, but it’s very complicated and cannot be reused for Wikipedia, Wikisource, etc. In 2021, this became more robust thanks to the "language-aware transclusion" feature, but it still needs some improvements.

&lt;!--T:64--&gt;
Ideally, it should be possible to translate templates just like core and extensions, using a wiki with the Translate extension.

&lt;!--T:65--&gt;
The translated string must become usable immediately after the translation is submitted using the Translate interface.

&lt;!--T:66--&gt;
It can be possible to edit the user interface strings in raw wiki pages, but ideally they should be edited primarily through a dedicated translation interface.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:380--&gt; Translators should be able to focus on translating nothing but text.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:526--&gt; Seeing any code around it makes it difficult for people who are not experienced with programming and JSON files to contribute easily.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:527--&gt; In addition, editing translations into languages that are written from right to left in raw text files is extremely inconvenient.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:528--&gt; The Translate extension already addresses all of these issues.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:172--&gt;
The template documentation pages must be translatable as well. It’s mostly enough to do it using the page translation feature of the Translate extension, but it may require some adaptations.

==== The language in which the strings are shown to the user ==== &lt;!--T:67--&gt;
&lt;/translate&gt;
{{Tracked|T313748}}
&lt;translate&gt;
&lt;!--T:149--&gt;
Templates are primarily used when they are integrated into content, so by default the translated messages must be shown in the wiki’s content language.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:68--&gt; Some templates, however, are used as UI elements.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:538--&gt; Therefore, perhaps it makes sense to also allow showing the translated strings in the user language, when it’s different from the wiki content language.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:539--&gt; This may be particularly relevant for multilingual sites such as Commons, Wikidata, Meta, and &lt;tvar name=1&gt;mediawiki.org&lt;/tvar&gt;.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:69--&gt; MediaWiki’s usual fallback language chains must be used when a translation is not available.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:540--&gt; For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:541--&gt; The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/translate&gt;

&lt;translate&gt;

==== Message keys ==== &lt;!--T:70--&gt;

&lt;!--T:150--&gt;
Messages should be represented as keys, similarly to how it is done in MediaWiki core, extensions, and tools.

&lt;!--T:71--&gt;
Writing translatable strings will probably be the largest change in the template development process that template maintainers will have to get used to. Hard-coded strings will have to be separated and moved to messages organized by key. It must be made as easy as possible not only for the translators, but also for the template maintainers. Otherwise, they won’t actually do it, and the feature will be effectively rejected.

&lt;!--T:72--&gt;
To easily make keys globally unique, it’s probably OK to automatically include the global template name in the message key.

==== Transitioning tools ==== &lt;!--T:416--&gt;
&lt;/translate&gt;
{{Tracked|T245737}}
&lt;translate&gt;
&lt;!--T:417--&gt;
A tool should be developed that will help the transitioning of a template or a module to central storage. It can do the following steps:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:418--&gt; Export a template from a local wiki and import it into the global wiki.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:419--&gt; Export all the templates that are used by this template (cascading).&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:420--&gt; Identify the human-readable strings, convert them to a list with keys, and replace them with keys in the template’s source code.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:434--&gt; Import the template’s documentation page and TemplateData.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:455--&gt; Import the necessary CSS pages.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:421--&gt;
In most cases, this automatic process probably cannot create a fully usable and robust template or module, but it can help begin the transitioning process.

==== Organizing messages ==== &lt;!--T:73--&gt;

&lt;!--T:151--&gt;
The Translate extension organizes messages by groups, also known as “projects”, which can be further organized by aggregate groups. For example, Article Placeholder, Score, and Poem are all groups that represent the corresponding MediaWiki extensions, and they are all included in the “Extensions used by Wikimedia - Advanced” aggregate group, along with many other extensions.

&lt;!--T:74--&gt;
Projects that represent MediaWiki extensions are configured in YAML files in the translatewiki repository and shown in the Translate user interface in a project selector, also known as “message group selector”.

&lt;!--T:75--&gt;
Since there are many more templates than extensions, some modifications may be needed in the way the Translate extension handles message groups to accommodate templates translation.

&lt;!--T:76--&gt;
Each template should be a message group. Closely related templates should be grouped in an aggregate message group. They can be similar to the categories in which they are stored, and in fact, the categories may even be reused. Editing files in a Git repository to organize these message groups is probably not desirable, because it’s too complex and slow.

&lt;!--T:77--&gt;
It would be nice to show group and template names as localized in the selector, but it’s also OK if they are shown in English. If it’s good enough for extension localizers, it’s good enough for template localizers, too.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:441--&gt; Templates must be shown as message groups on the Translate extension’s Language statistics special page (Special:LanguageStats).&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:542--&gt; This will help localizers find what templates need translation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:543--&gt; This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:442--&gt; There will be thousands of templates, so it will be nice if the table’s design corresponds to this somehow.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:443--&gt; The table should show on how many pages is each template transcluded and make it possible to order the rows by this number, to help localizers prioritize what is more important to translate.&lt;/translate&gt;

&lt;translate&gt;
==== Finding how to translate a template ==== &lt;!--T:78--&gt;

&lt;!--T:152--&gt;
Every template description page needs to have a direct link to translating it to the user’s language.
&lt;/translate&gt;
{{Tracked|T64695}}
&lt;translate&gt;&lt;!--T:314--&gt; Some templates use Wikidata labels as part of their UI instead of hard-coding strings.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:484--&gt; This is done at the moment in [[:commons:Wikidata Infobox|Wikidata Infobox]] on Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (Infobox person) in the Catalan Wikipedia, and in several other templates.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:485--&gt; These labels and values can be localized in Wikidata itself.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:486--&gt; Such usage cannot cover all the needs of template localization, but it is legitimate and useful for particular purposes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:487--&gt; As long as this is properly described in the template documentation, this can continue to be used, and probably doesn’t need special infrastructure adaptations.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:488--&gt; (Perhaps the translation of the relevant labels and values can be somehow integrated into the Translate interface for localizing the template, but this is optional.)&lt;/translate&gt;

&lt;translate&gt;
==== Message parameters and magic words ==== &lt;!--T:422--&gt;

&lt;!--T:423--&gt;
In core MediaWiki and extensions, many messages have parameters, sometimes also known as “placeholders”. They are named $1, $2, etc., and they are filled in run time. Parameters are particularly important for making messages robustly translatable because different languages have different word order.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:424--&gt; Something like this is needed in templates, too, although it is possible that the form does not have to be $1, $2, but template-like parameters with triple curly braces (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:544--&gt; This is to be decided according to considerations of parsing and localization convenience.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:425--&gt;
The magic words PLURAL, GENDER, and GRAMMAR must be supported in template messages as in MediaWiki messages.

==== Message documentation ==== &lt;!--T:426--&gt;

&lt;!--T:427--&gt;
In core MediaWiki and extensions, every translatable message is documented for the convenience of developers and translators. The documentation may include information about where the message appears, what the $1, $2, etc. parameters are, whether the word is a verb or an adjective, etc. This documentation is stored as pseudo-language with the code qqq.

&lt;!--T:428--&gt;
Such documentation will be useful for template translation, too. How it is stored is a question of technical architecture. Perhaps it can be combined with TemplateData, perhaps it can be stored as a qqq language, and perhaps it can be something else.

==== Source language ==== &lt;!--T:429--&gt;

&lt;!--T:430--&gt;
Templates will be imported to the global storage not only from English-language projects, but from wikis in many languages. More than ever, the localization tools must support translation from any language and not only from English.

==== Fuzzying ==== &lt;!--T:431--&gt;

&lt;!--T:432--&gt;
In core MediaWiki and extensions and in translatable pages, if the source message in English changes, the message is automatically marked as outdated or “fuzzy”. The existing translations continue to work, but are shown to translators as needing an update. (The translation manager can also mark a message as not needing fuzzying.)

&lt;!--T:433--&gt;
A similar mechanism will be needed for template localization. However, since it would be nice not to force English as the source language, there should be more ways to mark messages as fuzzy.

==== Localization considerations for modules ==== &lt;!--T:79--&gt;
&lt;/translate&gt;
{{Tracked|T238417}}
&lt;translate&gt;&lt;!--T:153--&gt; Lua modules can load and parse translatable MediaWiki strings, but there is no defined way for storing these strings for Lua modules that are maintained as wiki pages.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:489--&gt; It is possible to package Lua modules as parts of extensions, and then they are able to load messages from the extensions’ &lt;tvar name=1&gt;i18/*.json&lt;/tvar&gt; files, but this is done in very few extensions at the moment.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:490--&gt; Rewriting templates in Lua may be a more robust solution from the engineering point of view, but Lua will not necessarily be embraced by all existing template maintainers, and their cooperation will be crucial to the project’s success, so this cannot be done to all templates.&lt;/translate&gt;

{{Tracked|T209310|resolved}}
&lt;translate&gt;&lt;!--T:440--&gt; Some very internal, technical modules that are commonly used, rarely changed, and don’t require internationalization can probably be painlessly moved into the Scribunto extension itself.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:545--&gt; Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/translate&gt;

&lt;translate&gt;
=== Localizing the template name === &lt;!--T:307--&gt;
&lt;/translate&gt;
{{Tracked|T239294}}
&lt;translate&gt;
&lt;!--T:102--&gt;
The template may have a different name in every language, but it must be directly connected to the central storage.

&lt;!--T:308--&gt;
Global templates and modules are supposed to be immediately usable in all wikis without any extra steps, so it must be possible to transclude a global template in a local wiki page using its global name. The cross-wiki editors community shall decide what will be the policy for these global names.

&lt;!--T:160--&gt;
Similarly to parameter names, templates may have different names in different languages, and this must be preserved. There must be a structured way to translate template names. Perhaps Wikidata sitelinks can play a role, but not necessarily.

&lt;!--T:103--&gt;
If this is not done, editors will either avoid global templates, or wrap the global template in a local template with a translated name, and this will probably cause the template to lose the connection to the global entity. This is not desirable and misses the whole point of the project.

&lt;!--T:309--&gt;
Template names must only be translated to languages that can be content languages of wikis. Translation to Formal German or British English are probably unnecessary. There may be a way to have aliases or redirects. Language variants, for example for Serbian and Chinese, must be supported according to these languages’ needs.

&lt;!--T:310--&gt;
If a local template exists in a wiki and has the same name as a localized name of a global template, the local template will be used. This is similar to how local files with identical names override global files on Commons, and how local messages in the MediaWiki space override the localization coming from the code.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:311--&gt; Lua module names are often localized, too.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:546--&gt; Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/translate&gt;

&lt;translate&gt;
=== Localizing parameters === &lt;!--T:88--&gt;

==== Localizing parameter names ==== &lt;!--T:89--&gt;

&lt;!--T:157--&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.

&lt;!--T:90--&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.

&lt;!--T:446--&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.

&lt;!--T:91--&gt;
These translations of parameter names must be validated:&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:92--&gt; they must not include invalid characters&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:93--&gt; they must not be repeated within one template in one language&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:94--&gt; ''Anything else?''&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:415--&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.&lt;/translate&gt;
{{anchor|AutomaticParameterTranslation}}
&lt;translate&gt;

==== Automatic parameter translation ==== &lt;!--T:298--&gt;
&lt;/translate&gt;
{{Tracked|T243150}}
&lt;translate&gt;
&lt;!--T:299--&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:

&lt;!--T:300--&gt;
Input:&lt;/translate&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
&lt;!--T:301--&gt;
Output:
&lt;/translate&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
&lt;!--T:447--&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.

&lt;!--T:302--&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.

&lt;!--T:303--&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.

&lt;!--T:304--&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.

==== Nameless parameters ==== &lt;!--T:95--&gt;

&lt;!--T:158--&gt;
Nameless numbered parameters must continue working, of course.

&lt;!--T:96--&gt;
A decision is needed about how will their names be localized.

==== Translating parameter values ==== &lt;!--T:97--&gt;

&lt;!--T:159--&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.

&lt;!--T:98--&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.

&lt;!--T:99--&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.

&lt;!--T:100--&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.

&lt;!--T:101--&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.

&lt;!--T:439--&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.

=== Text direction === &lt;!--T:80--&gt;

&lt;!--T:154--&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.

&lt;!--T:81--&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.

=== Bots === &lt;!--T:377--&gt;

&lt;!--T:378--&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.

&lt;!--T:379--&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.

=== Transitioning the templates from the large wikis to central storage === &lt;!--T:82--&gt;

&lt;!--T:155--&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.

&lt;!--T:83--&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:119--&gt; The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:120--&gt; Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:121--&gt; Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:315--&gt; Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:122--&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.

&lt;!--T:58--&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.

&lt;!--T:59--&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.

=== It must be possible to use templates completely in both wiki syntax and in visual editing === &lt;!--T:86--&gt;

&lt;!--T:156--&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.

&lt;!--T:87--&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.

=== Other features related to templates === &lt;!--T:104--&gt;

&lt;!--T:161--&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.

==== Core MediaWiki ==== &lt;!--T:316--&gt;
&lt;/translate&gt;
{{Tracked|T238412}}
&lt;translate&gt;
&lt;!--T:312--&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.

&lt;!--T:317--&gt;
The “&lt;tvar name=1&gt;{{int|Whatlinkshere}}&lt;/tvar&gt;” page must keep working, and remain useful for global transclusions.

==== TemplateData ==== &lt;!--T:105--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:438--&gt; It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:125--&gt; The “&lt;tvar name=wikitextFormat&gt;{{int|Templatedata-modal-title-templateformat}}&lt;/tvar&gt;” parameter (&lt;tvar name=inline&gt;{{int|Templatedata-modal-format-inline}}&lt;/tvar&gt;, &lt;tvar name=block&gt;{{int|Templatedata-modal-format-block}}&lt;/tvar&gt;, &lt;tvar name=custom&gt;{{int|Templatedata-modal-format-custom}}&lt;/tvar&gt;) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/translate&gt;

&lt;translate&gt;
==== Citoid ==== &lt;!--T:458--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:459--&gt; [[Citoid]] has to be configured on every wiki separately using JSON files, such as &lt;tvar name=citoid-example-link&gt;[[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]&lt;/tvar&gt;. In the global templates age, it must become possible to share these files, so that the “&lt;tvar name=citoidtool-title&gt;{{int|citoid-citoidtool-title}}&lt;/tvar&gt;” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/translate&gt;

&lt;translate&gt;
==== TemplateStyles ==== &lt;!--T:107--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:126--&gt; There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/translate&gt;

&lt;translate&gt;
==== TemplateSandbox ==== &lt;!--T:109--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:127--&gt; Special:TemplateSandbox must keep working.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:128--&gt; It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/translate&gt;

&lt;translate&gt;
==== TemplateWizard ==== &lt;!--T:111--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:129--&gt; The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:130--&gt; TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/translate&gt;

&lt;translate&gt;
==== Wikibase ==== &lt;!--T:113--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:131--&gt; Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:132--&gt; It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/translate&gt;

&lt;translate&gt;
==== VisualEditor ==== &lt;!--T:115--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:133--&gt; VisualEditor obviously needs to be able to insert both global and local templates.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:134--&gt; VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/translate&gt;

&lt;translate&gt;
== Development and deployment == &lt;!--T:456--&gt;

&lt;!--T:460--&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:461--&gt; '''{{&lt;tvar name=1&gt;pll|Translatable modules&lt;/tvar&gt;|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:462--&gt; '''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:463--&gt; '''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:464--&gt; '''Global templates''': Complete the project with making the templates global.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:465--&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.

&lt;!--T:457--&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:162--&gt; Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:497--&gt; Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:498--&gt; Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:499--&gt; This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Imagine a world == &lt;!--T:173--&gt;

&lt;!--T:174--&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/translate&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;translate&gt;&lt;!--T:175--&gt; Task&lt;/translate&gt;
! scope="col" width="40%" |&lt;translate&gt;&lt;!--T:176--&gt; With the current template system&lt;/translate&gt;
! scope="col" width="40%" |&lt;translate&gt;&lt;!--T:177--&gt; With global templates&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:178--&gt; Insert an infobox using the Visual Editor&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:179--&gt; Go to “Insert”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:180--&gt; Click “Template”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:181--&gt; Find the template name somehow.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:182--&gt; Type the template name.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:183--&gt; Fill the fields.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:184--&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/translate&gt;

|
# &lt;translate&gt;&lt;!--T:185--&gt; Go to “Insert”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:186--&gt; Click “Infobox”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:187--&gt; Select the infobox type you want.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:188--&gt; Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:189--&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:190--&gt; Insert an infobox using the wiki syntax editor&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:191--&gt; Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:192--&gt; Mostly manual: Copy from a similar article and change the parameter values.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:193--&gt; Use TemplateWizard (hoping that it is configured for your wiki):&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:194--&gt; Click the puzzle piece button.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:195--&gt; Find the template name somehow.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:196--&gt; Type the template name.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:197--&gt; Fill the parameters one by one using the form.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:198--&gt; If you want, you can still do all the same things as with the current template system.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:199--&gt; But you will also have these additional optional features:&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:200--&gt; To select a suggested infobox from a list instead of typing the name manually.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:201--&gt; To have the parameter values auto-filled.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:202--&gt; To have the same process for every wiki.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:203--&gt; Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:204--&gt; If you have time and necessary skills:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:205--&gt; Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:206--&gt; Copy the underlying modules, if necessary.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:207--&gt; Copy the TemplateStyles, if necessary.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:208--&gt; Copy the documentation and translate it in the wiki syntax editor.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:209--&gt; Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:210--&gt; Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:211--&gt; Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/translate&gt;
#&lt;translate&gt;&lt;!--T:212--&gt; If you don’t have time or necessary skills, you have two options:&lt;/translate&gt;
##&lt;translate&gt;&lt;!--T:213--&gt; Make a simpler template with fewer features.&lt;/translate&gt;
##&lt;translate&gt;&lt;!--T:214--&gt; Just give up.&lt;/translate&gt;
#&lt;translate&gt;&lt;!--T:215--&gt; '''Repeat the process for every language and every wiki.'''&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:216--&gt; If the template is in the global repository, then:&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:217--&gt; Go to the template documentation page.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:218--&gt; Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:219--&gt;
That’s it, the template is fully usable in your language.

&lt;!--T:220--&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:221--&gt; Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:222--&gt; Three options:&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:223--&gt; Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:224--&gt; Develop it by yourself.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:225--&gt; Give up and stay with the older version.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:226--&gt; Just translate the new strings. All the new features are already available in all wikis.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:289--&gt; Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:290--&gt; This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:291--&gt; The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:227--&gt; Translate an article from English, French, or Russian into your language using Content Translation&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:228--&gt; Open the article in Content Translation.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:229--&gt; Click the Infobox.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:230--&gt; If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:231--&gt; If no-one imported the infobox into your language, skip it.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:232--&gt; Translate the prose of the first paragraph.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:233--&gt; '''Carefully''' check that all of these templates were correctly adapted:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:234--&gt; IPA pronunciation templates&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:235--&gt; Native language name templates&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:236--&gt; Citation needed&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:237--&gt; Unit conversion&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:238--&gt; Blockquote&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:239--&gt; Country flags&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:240--&gt; Various others&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:241--&gt; Repeat steps 3 and 4 until everything you want is translated.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:242--&gt; Publish the article.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:243--&gt; Clean up incorrectly published wiki syntax.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:244--&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:245--&gt; Open the article in Content Translation.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:246--&gt; Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:247--&gt; Translate the prose of the first paragraph.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:248--&gt; All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:249--&gt; Repeat steps 3 and 4 until everything you want is translated.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:250--&gt; Publish the article.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:251--&gt; (Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:252--&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:253--&gt; Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:254--&gt; Check that a corresponding template exists in the target language. If it does:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:255--&gt; Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:256--&gt; If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:257--&gt; If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:258--&gt; Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:259--&gt; Find a similar citation template and use it.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:260--&gt; Just copy the text of the citation without formatting and structure.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:261--&gt; Give up and publish the article without the reference.&lt;/translate&gt;
| &lt;translate&gt;&lt;!--T:262--&gt; In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:293--&gt;
In the wiki syntax editor:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:294--&gt; Copy.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:295--&gt; Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:296--&gt; Paste the result.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:297--&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:390--&gt; Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/translate&gt;

&lt;small&gt;&lt;translate&gt;&lt;!--T:391--&gt; This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[&lt;tvar name=1&gt;w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0&lt;/tvar&gt;|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/translate&gt;&lt;/small&gt;
|
# &lt;translate&gt;&lt;!--T:392--&gt; Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:393--&gt; In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:394--&gt; In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:395--&gt; In every wiki: Copy the module from the central storage to your wiki.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:396--&gt; In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:397--&gt; In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:398--&gt; Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:399--&gt; Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:400--&gt; In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:401--&gt; In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:402--&gt; In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:405--&gt; In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:403--&gt; Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:404--&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:263--&gt; Start writing in a new wiki after the domain is created&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:264--&gt; After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:265--&gt; Start copying these templates one by one, or create your own.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:266--&gt; Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:267--&gt; You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:268--&gt; All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:269--&gt; Use a navigation box while reading an article on a mobile phone&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:270--&gt; '''Impossible.'''&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:271--&gt; Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[&lt;tvar name=1&gt;phab:T124168&lt;/tvar&gt;|there is demand for it]].)&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:272--&gt; '''Possible.'''&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:273--&gt; Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:381--&gt; Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:382--&gt; Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:383--&gt; Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:508--&gt; Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:509--&gt; This happens in some of the smaller languages.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:384--&gt; Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:385--&gt; Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:386--&gt; Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:274--&gt; Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:275--&gt; Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:276--&gt; Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:277--&gt; Rewrite the code for every wiki.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:278--&gt; Give up, and research only the English Wikipedia.&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:279--&gt; Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/translate&gt;
|}
&lt;translate&gt;
&lt;!--T:280--&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Status == &lt;!--T:163--&gt;

&lt;!--T:478--&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''

&lt;!--T:164--&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.

&lt;!--T:448--&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;tvar name=bugzilla&gt;&lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt;&lt;/tvar&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called &lt;tvar name=globalwiki&gt;[[:m:Global-Wiki|Global-Wiki]]&lt;/tvar&gt; was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.

&lt;!--T:449--&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[&lt;tvar name=wishlist2015&gt;:m:Community Wishlist Survey 2015&lt;/tvar&gt;|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[&lt;tvar name=wishlist2016&gt;:m:Community Wishlist Survey 2016/Results&lt;/tvar&gt;|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.

&lt;!--T:165--&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/translate&gt;

:&lt;translate&gt;&lt;!--T:166--&gt; ... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:167--&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/translate&gt;

:&lt;translate&gt;&lt;!--T:168--&gt; Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:477--&gt;
[[&lt;tvar name=aw&gt;:m:Abstract Wikipedia&lt;/tvar&gt;|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[&lt;tvar name=awt&gt;:m:Abstract Wikipedia/Tasks&lt;/tvar&gt;|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).

&lt;!--T:479--&gt;
The {{&lt;tvar name=txm&gt;pll|Translatable modules&lt;/tvar&gt;|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.

&lt;!--T:482--&gt;
In [[&lt;tvar name=survey&gt;:m:Community Wishlist Survey 2021&lt;/tvar&gt;|Community Wishlist Survey 2021]], the wish titled “[[&lt;tvar name=tt&gt;:m:Community Wishlist Survey 2021/Translation/Templates translation&lt;/tvar&gt;|Templates translation]]” received [[&lt;tvar name=results&gt;:m:Community Wishlist Survey 2021/Results&lt;/tvar&gt;|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[&lt;tvar name=apt&gt;#AutomaticParameterTranslation&lt;/tvar&gt;|Automatic parameter translation]].

&lt;!--T:480--&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{&lt;tvar name=strategy&gt;pll|Global templates/Relationship to strategy&lt;/tvar&gt;|Global templates/Relationship to strategy}}.

&lt;!--T:169--&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Useful links == &lt;!--T:170--&gt;

&lt;!--T:171--&gt;
Some relevant pages that discuss similar topics:
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:283--&gt; [[&lt;tvar name=1&gt;Platform Evolution/Goals&lt;/tvar&gt;|Platform Evolution/Goals]]&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:284--&gt; [[&lt;tvar name=1&gt;Platform Evolution/Recommendations&lt;/tvar&gt;|Platform Evolution/Recommendations]]&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:285--&gt; [[&lt;tvar name=1&gt;Multilingual Templates and Modules&lt;/tvar&gt;|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:286--&gt; [[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:287--&gt; [[:m:Which templates should be global?]] - an informal list made by various editors&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:372--&gt; [[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/translate&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;translate&gt;&lt;!--T:373--&gt; an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:444--&gt; [[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:474--&gt; [[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:483--&gt; [[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[&lt;tvar name=apt&gt;#AutomaticParameterTranslation&lt;/tvar&gt;|Automatic parameter translation]].&lt;/translate&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>3e5ae411b80d8c352e97e19b0e6d385a5143b102</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/441/cs</title>
  <ns>1198</ns>
  <id>1992109</id>
  <revision>
    <id>6624136</id>
    <parentid>6623579</parentid>
    <timestamp>2024-07-09T07:29:17Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="142" xml:space="preserve">Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).</text>
    <sha1>4eb34e7f7a403e2db26be8b8343faeb3feb71ed1</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/542/cs</title>
  <ns>1198</ns>
  <id>1992247</id>
  <revision>
    <id>6624138</id>
    <timestamp>2024-07-09T07:29:34Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "To pomůže lokalizátorům najít, jaké šablony potřebují překlad."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="72" xml:space="preserve">To pomůže lokalizátorům najít, jaké šablony potřebují překlad.</text>
    <sha1>036d299857e42bce519a34f225eee98fd6941843</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/543/cs</title>
  <ns>1198</ns>
  <id>1992248</id>
  <revision>
    <id>6624140</id>
    <timestamp>2024-07-09T07:29:41Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="129" xml:space="preserve">To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:</text>
    <sha1>8ac0253eaddd697c28e85833472420a16aeb0fb0</sha1>
  </revision>
</page>
<page arvcontinue="20240709052608|6624094">
  <title>Translations:Global templates/Proposed specification/424/cs</title>
  <ns>1198</ns>
  <id>1992122</id>
  <revision>
    <id>6624142</id>
    <parentid>6623610</parentid>
    <timestamp>2024-07-09T07:30:31Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="196" xml:space="preserve">Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).</text>
    <sha1>b78086f7cffa880949c216bec29d557a921a5efe</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Global templates/Proposed specification/544/cs</title>
  <ns>1198</ns>
  <id>1992249</id>
  <revision>
    <id>6624144</id>
    <timestamp>2024-07-09T07:30:36Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="72" xml:space="preserve">To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.</text>
    <sha1>f2a8a994cffe8b1f6cab8b01f39e81afe8cb253c</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Global templates/Proposed specification/cs</title>
  <ns>0</ns>
  <id>1991769</id>
  <revision>
    <id>6624145</id>
    <parentid>6624143</parentid>
    <timestamp>2024-07-09T07:30:37Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="90078" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
&lt;span class="mw-translate-fuzzy"&gt;Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.&lt;/span&gt;
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>261acea5bd6c20264dd0844ed670ead5050d7305</sha1>
  </revision>
  <revision>
    <id>6624149</id>
    <parentid>6624145</parentid>
    <timestamp>2024-07-09T07:33:09Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="90038" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
&lt;span class="mw-translate-fuzzy"&gt;Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto. Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>7abcb65d77f101f0d9cae7fd32147fd4ffc276da</sha1>
  </revision>
  <revision>
    <id>6624151</id>
    <parentid>6624149</parentid>
    <timestamp>2024-07-09T07:33:44Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="89884" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/span&gt;

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>69e0f694c61349b6642e22fc517b893ddf06b2e0</sha1>
  </revision>
  <revision>
    <id>6624154</id>
    <parentid>6624151</parentid>
    <timestamp>2024-07-09T07:36:33Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]]."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="89855" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

&lt;span class="mw-translate-fuzzy"&gt;Názvy modulů Lua jsou také často lokalizovány. Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>7a270917e6e7dca8fffb1f634c1f401ba000cc5e</sha1>
  </revision>
  <revision>
    <id>6624156</id>
    <parentid>6624154</parentid>
    <timestamp>2024-07-09T07:36:55Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="89529" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/span&gt;

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>b66d84603097c37c261c8881dc803511c668b8d3</sha1>
  </revision>
  <revision>
    <id>6624159</id>
    <parentid>6624156</parentid>
    <timestamp>2024-07-09T07:38:07Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="89508" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>c830a71b08be2b57fd01aea82bd392f4e0d963a4</sha1>
  </revision>
  <revision>
    <id>6624161</id>
    <parentid>6624159</parentid>
    <timestamp>2024-07-09T07:39:53Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="89446" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>88ec6eb0c54f370d10ffb77df8dea22f24846622</sha1>
  </revision>
  <revision>
    <id>6624163</id>
    <parentid>6624161</parentid>
    <timestamp>2024-07-09T07:40:22Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="89444" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>3de8736cf90522310e56f94a5ede42ea0dd7f027</sha1>
  </revision>
  <revision>
    <id>6624165</id>
    <parentid>6624163</parentid>
    <timestamp>2024-07-09T07:40:56Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="89402" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
These translations of parameter names must be validated:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>b42b1b7a48d155f1da83aeb95411bfbf93d2b2a6</sha1>
  </revision>
  <revision>
    <id>6624167</id>
    <parentid>6624165</parentid>
    <timestamp>2024-07-09T07:41:24Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Tyto překlady názvů parametrů musí být ověřeny:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="89345" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not include invalid characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>5b52a601aadbdd62c71e270401386c67c1a32763</sha1>
  </revision>
  <revision>
    <id>6624169</id>
    <parentid>6624167</parentid>
    <timestamp>2024-07-09T07:41:42Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "nesmí obsahovat neplatné znaky"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="89281" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* nesmí obsahovat neplatné znaky
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;they must not be repeated within one template in one language&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>7031e618920682be41ba161010e49de38bfd5d37</sha1>
  </revision>
  <revision>
    <id>6624171</id>
    <parentid>6624169</parentid>
    <timestamp>2024-07-09T07:42:11Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "nesmí se opakovat v rámci jedné šablony v jednom jazyce"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="89223" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* nesmí obsahovat neplatné znaky
* nesmí se opakovat v rámci jedné šablony v jednom jazyce
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Anything else?''&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>d80ae50b848d737ccf9538d8552bfd97597a097b</sha1>
  </revision>
  <revision>
    <id>6624173</id>
    <parentid>6624171</parentid>
    <timestamp>2024-07-09T07:42:30Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "''Něco dalšího?''"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="89169" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* nesmí obsahovat neplatné znaky
* nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>5635087e4929f84d4e8693a8e5065d3f07bf125a</sha1>
  </revision>
  <revision>
    <id>6624175</id>
    <parentid>6624173</parentid>
    <timestamp>2024-07-09T07:43:07Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="89169" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>2511145b7edb9daf2016a62bbb75a1438c7da67f</sha1>
  </revision>
  <revision>
    <id>6624177</id>
    <parentid>6624175</parentid>
    <timestamp>2024-07-09T07:43:15Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="89169" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.
&lt;/div&gt;
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>3f2b6d0595abfc1b1d4cedb4400b0b214f92e4ae</sha1>
  </revision>
  <revision>
    <id>6624179</id>
    <parentid>6624177</parentid>
    <timestamp>2024-07-09T07:44:11Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="89147" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Automatic parameter translation ====
&lt;/div&gt;
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>f9ab987353da7d2551102dae4c7c713051000ef1</sha1>
  </revision>
  <revision>
    <id>6624181</id>
    <parentid>6624179</parentid>
    <timestamp>2024-07-09T07:44:29Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "==== Automatický překlad parametrů ===="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="89143" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>e8ff1024fa5eaa42f25961165e3c873c13083973</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Global templates/Proposed specification</title>
  <ns>0</ns>
  <id>994874</id>
  <revision>
    <id>6624146</id>
    <parentid>6624135</parentid>
    <timestamp>2024-07-09T07:31:04Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <minor/>
    <comment>editace</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88681" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
&lt;translate&gt;
&lt;!--T:1--&gt;
This is a proposal for the functional requirements for global templates and modules.

&lt;!--T:288--&gt;
You can also read a {{&lt;tvar name=1&gt;pll|Global templates/Proposed specification, short version&lt;/tvar&gt;|one-page version of this proposal}}.

&lt;!--T:2--&gt;
'''This is not a project that is being executed or planned to be executed by anyone at any defined point in time, at least not yet. This is just an idea, albeit a very detailed one.'''

&lt;!--T:3--&gt;
The eventual goal is to form a cross-team and cross-project commitment on implementing these things, with proper architecture, product and project management, community engagement, etc.

&lt;!--T:4--&gt;
This document does not try to go into the details of technical implementation in terms of storage, caching, delivery, PHP code design, etc. It only tries to define the requirements of how this feature will work from the point of view of the users:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:5--&gt; People who create and maintain templates and modules.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:6--&gt; People who create and edit pages that transclude templates and modules. This includes all editors and all kinds of pages:&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:7--&gt; All levels of experience: from those who are completely new to those who have made thousands of edits&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:8--&gt; All kinds of editing tools: wiki syntax editing, Visual Editor, Content Translation, and others (even bot operators)&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:9--&gt; All wikis: Wikipedia, Wiktionary, Wikivoyage, Wikidata, Incubator, etc., and any new future projects&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:10--&gt; All languages: English, French, Russian, Spanish, Armenian, Persian, Zulu, Manipuri, etc.&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:11--&gt; All kinds of pages: Wikipedia articles, articles talk pages, user talk pages, community discussion pages, WikiProject pages, categories, template documentation pages, etc.&lt;/translate&gt; {{Triple globe}}
{{Global templates nav}}
&lt;translate&gt;
== Elevator pitch == &lt;!--T:12--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:135--&gt; A large part of the functionality of Wikimedia sites is implemented in templates and Lua modules.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:491--&gt; In their current form, they cannot be shared across different wikis and languages.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:492--&gt; Because of this they are hard to integrate with modern ways of creating and editing articles, such as Visual Editor, Wikidata, and Content Translation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:493--&gt; They are also hard to adapt to mobile devices.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:494--&gt; This causes waste of contributors’ effort, and difficulties for new editors and smaller projects.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:495--&gt; It must become possible to share them across wiki sites, similarly to Commons images.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:496--&gt; This will make software development faster and more robust, and it will also let editors focus more on writing.&lt;/translate&gt; {{Triple globe}}

&lt;translate&gt;
== The Problem == &lt;!--T:13--&gt;

&lt;!--T:136--&gt;
'''''General comment: Unless noted otherwise, all references to “templates” also apply to {{&lt;tvar name=1&gt;pll|Extension:Scribunto&lt;/tvar&gt;|Scribunto}} Lua modules.'''''
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:14--&gt; Templates implement features of Wikimedia sites.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:513--&gt; Some of these features are highly prominent, especially the infoboxes, the references, “citation needed”, and many others.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:514--&gt; For a more comprehensive list of functions implemented using templates, see {{&lt;tvar name="Taxonomy"&gt;pll|Global templates/Taxonomy&lt;/tvar&gt;|Taxonomy}}.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:515--&gt; All the readers see them, and all the editors run into them in almost every edit action.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:516--&gt; In addition, they implement many of the sites’ internal community management features: requests for deletion, requests for unblocking, expressing support in discussions, sorting articles for WikiProjects, etc.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:15--&gt;
Templates provide an efficient mechanism to quickly design, deploy, and use repetitive pieces of text and markup in many pages. However, templates also have several acute usability problems for all kinds of editors.

=== Difficulties for all editors in all wikis === &lt;!--T:16--&gt;

==== Wiki syntax editors ==== &lt;!--T:17--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:137--&gt; Templates are often difficult to understand for editors in wiki syntax.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:500--&gt; People who are experienced with using a particular template will probably identify it and be able to edit a page that includes it.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:501--&gt; However, editors who are not familiar with this template will have to look up its documentation when they encounter it, even if they are generally experienced with editing and other templates.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:502--&gt; And editors who have low experience will be baffled by the cryptic text with curly braces, pipe characters, equal signs, etc.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:18--&gt; Using a feature that is implemented as a template requires knowing the template’s name and typing it in curly braces (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) or copying it from another page.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:517--&gt; This is not obvious to new users, and veteran users have to learn each new template separately, too.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:19--&gt; Some wikis have gadgets that add buttons that insert templates that are common in that project to the editing toolbar.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:518--&gt; These are different in each wiki, even though a lot of the templates have similar functionality across projects and languages.&lt;/translate&gt;

&lt;translate&gt;
==== Visual Editor users ==== &lt;!--T:20--&gt;
&lt;/translate&gt;
{{Tracked|T55590}}
{{Tracked|T67173}}
&lt;translate&gt;
&lt;!--T:138--&gt;
VisualEditor users have some advantages with using templates, however there are many issues with them there as well. In particular, there is a similar discoverability issue: In Visual Editor, all the templates’ functionality is hidden behind the “&lt;tvar name=1&gt;{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}&lt;/tvar&gt;” menu item, and the user has to know the template name before using it.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:21--&gt; Visual Editor’s “&lt;tvar name=1&gt;{{int|visualeditor-toolbar-insert}}&lt;/tvar&gt;” menu has items for Math formulas, Egyptian Hieroglyphs, Musical scores, and some other functions that are implemented as extensions, but it doesn’t have items such as “Infobox”, “Citation needed”, “Unit conversion”, “Quotation”, etc.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:450--&gt; All the templates are the same kind of generic item.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:22--&gt; There is one notable exception: Some wikis have the “&lt;tvar name=1&gt;{{int|citoid-citoidtool-title}}&lt;/tvar&gt;” button, which inserts footnotes with reference templates.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:451--&gt; However, it is an exception that proves the rule.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:452--&gt; It requires manual configuration for even basic functionality, this configuration is separate in each wiki, and as a consequence many wikis don’t have this button at all.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:453--&gt; Another comparable exception, which was added in late 2019, is special support for “Citation needed” templates, but this also needs some custom configuration on each and every wiki to actually work.&lt;/translate&gt;

&lt;translate&gt;
=== Difficulties for editors who write in more than one project === &lt;!--T:23--&gt;

&lt;!--T:292--&gt;
Many templates exist in one project, but not in others, and often a template is available, but in a different form. Because of this, it’s difficult or impossible to reuse skills that were acquired in one project: the functionality that the template provides is sometimes unavailable, and sometimes it works differently. This applies not just to wikis in different languages, but also to different wikis in the same language, for example, English Wikipedia and English Wikisource.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:24--&gt; For people editing in different languages, templates make translation harder.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:519--&gt; When translating a page, templates are much harder to handle than the article text (“prose”), whether the translation is done manually or with Content Translation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:520--&gt; Users often have to skip the template or to correct it after the article was published.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:521--&gt; This also causes abandoning translations in progress, because template translation looks intimidating.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:281--&gt;
The most commonly reported issues in Content Translation are about templates.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:25--&gt; Content Translation has a template adaptation feature, which automates some parts of this process, but it works only if a corresponding template exists in both languages, and if all the parameters were meticulously mapped by the template maintainers.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:529--&gt; This must be done for each template in each language separately and manually, and continuously maintained when the source template changes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:530--&gt; This happens even though the templates’ function across the languages is the same most of the time.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:282--&gt;
Ideally, the templates and their parameters should be transferred to the translated page almost completely automatically, so that the translators could focus on writing the prose, as writing the prose is the area where human work is most needed.

&lt;!--T:26--&gt;
A template can be exported from one wiki to another, but once this is done, the template becomes a forked copy. It either stays in the state in which it was exported, or continues to be developed separately, causing incompatibility. Sometimes people keep maintaining the different copies, but this is not robust and cannot scale for the hundreds of wikis that we have.

&lt;!--T:27--&gt;
Template parameters can have the same functionality, but different names in different wikis. They can be adapted using TemplateData aliases, but this is a suboptimal hack: it is not what TemplateData was originally made for, and it has to be done manually for each language pair.

&lt;!--T:28--&gt;
Templates mix together algorithmic logic, human-readable text strings, and formatting. Because of this there is no robust way to translate the templates’ user interface strings, as it is done with MediaWiki core and extensions.

=== Difficulties for editors in smaller wikis === &lt;!--T:29--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:139--&gt; A new wiki project is created by installing core MediaWiki and enabling a default set of extensions.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:531--&gt; In practice this doesn’t create a level playing field because many key features of larger wikis are implemented in templates: infoboxes, citations, maintenance hatnotes (such as &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced|Unreferenced]]&lt;nowiki&gt;}}&lt;/nowiki&gt;), etc.&lt;/translate&gt;

&lt;translate&gt;
=== Difficulties for software developers === &lt;!--T:435--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:436--&gt; It is difficult for developers of MediaWiki core, extensions, bots, and other tools that analyze, generate, or modify wiki page content to build features that depend on the presence of certain templates in a wiki.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:532--&gt; Developers of extensions such as GrowthExperiments, PageTriage, ContentTranslation, some components of Wikibase, and many others, have to either test them in production, which is a bad idea, or to import the templates to their local wikis or an online test wiki.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:437--&gt;
Researchers who get data about wiki content based on templates have to write their analysis code for each wiki separately, and sometimes they end up doing for only one wiki. A notable example is using English Wikipedia’s WikiProject templates to analyze page topics and assess article quality.&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Assumptions == &lt;!--T:414--&gt;

=== Extensions vs Templates: Similarities and differences === &lt;!--T:318--&gt;

&lt;!--T:319--&gt;
One of the main assumptions of this project proposal is that templates and modules are very similar to MediaWiki core and extensions: They are software, and they implement features that the editors community needs. In particular, since templates are usually developed by the editors themselves, it’s obvious that the community ''really'' needs them. The big differences between lie in how they are developed, localized, and deployed.

&lt;!--T:320--&gt;
Templates and modules should become similar to extensions in some key properties that they currently lack, and preserve some good properties that extensions lack. (For ease of understanding by English readers, in the table, examples of templates are given from the English Wikipedia. They could also come from any other wiki and any other language.)
&lt;/translate&gt;

{| class="wikitable vs"
!&lt;translate&gt;&lt;!--T:321--&gt; Property&lt;/translate&gt;
!&lt;translate&gt;&lt;!--T:322--&gt; Core and extensions&lt;/translate&gt;
!&lt;translate&gt;&lt;!--T:323--&gt; Templates&lt;/translate&gt;
!&lt;translate&gt;&lt;!--T:362--&gt; What should be done about this with templates?&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:324--&gt; Implement special kind of content&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:325--&gt; Yes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:326--&gt; image, math, hieroglyphics, score, basic ref&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:327--&gt; Yes.&lt;/translate&gt;
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|&lt;translate&gt;&lt;!--T:328--&gt; └ Special kind of content is easy to insert into pages&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:329--&gt; Yes (using the toolbar).&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:330--&gt; No (unless you learned how to do it).&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:363--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:331--&gt; └ Special kind of content is easy to adapt to mobile devices&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:332--&gt; Mostly yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:333--&gt; Sometimes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:364--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:334--&gt; └ Special kind of content is easy to translate as part of an article&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:335--&gt; Mostly yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:336--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:365--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:337--&gt; Implement page formatting features&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:338--&gt; Yes.&lt;/translate&gt;
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|&lt;translate&gt;&lt;!--T:339--&gt; Yes.&lt;/translate&gt;
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|&lt;translate&gt;&lt;!--T:340--&gt; Implement community workflow processes&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:341--&gt; Yes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:342--&gt; Abuse filter, Check user, Move&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:343--&gt; Yes.&lt;/translate&gt;
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|&lt;translate&gt;&lt;!--T:366--&gt; Should be easy to reuse, but not forced.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:344--&gt; Easy to deploy initial version&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:345--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:346--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:367--&gt; Should be preserved.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:347--&gt; Easy to deploy changes&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:348--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:349--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:368--&gt; Should be preserved.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:350--&gt; Easy to localize&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:351--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:352--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:369--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:353--&gt; Useful on multiple wikis&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:354--&gt; Often.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:355--&gt; Often.&lt;/translate&gt;
|
|-
|&lt;translate&gt;&lt;!--T:374--&gt; Used only on a limited number of wikis&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:375--&gt; Sometimes.&lt;/translate&gt;
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|&lt;translate&gt;&lt;!--T:376--&gt; Sometimes.&lt;/translate&gt;
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|&lt;translate&gt;&lt;!--T:356--&gt; Easy to install and use on multiple wikis&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:357--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:358--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:370--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:359--&gt; Easy to use on a new, recently created wiki&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:360--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:361--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:371--&gt; Should be changed.&lt;/translate&gt;
|}
&lt;translate&gt;
=== Templates and modules development skills === &lt;!--T:406--&gt;

&lt;!--T:407--&gt;
Another important set of assumptions on which this proposal is based is the following:&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:408--&gt; The skills for developing templates and modules are non-trivial. Both templates and modules have numerous obscure features.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:409--&gt; Even though many of the sites’ most notable features are implemented as templates and modules, these skills are often unnoticed, underappreciated, and taken for granted.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:410--&gt; There are dozens of people who have these skills, and they edit many wikis. They usually focus on their home wiki and relatively rarely communicate with contributors from other wikis or other languages. Even though the underlying technology is the same everywhere, there is no true global community of template developers that would be comparable to the global community of MediaWiki core and extensions developers. There are cases of cross-wiki collaboration on certain templates, but they are inconsistent.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:411--&gt; There are also many wikis in which there are no editors who have these skills. They either copy templates and modules from other wikis without fully understanding how they work and without the ability to localize and maintain them effectively, or they don’t use templates at all.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:412--&gt; This situation is far from optimal.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:522--&gt; The template and module developers’ skills need more appreciation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:523--&gt; They develop truly needed features, and they are embedded in their editors communities.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:524--&gt; In wikis in many languages, the template developers come up with innovative features for structured content, data presentation, and modularization.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:525--&gt; These innovations could be useful in many wikis, but currently there is no convenient mechanism to achieve this.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:413--&gt;
And of course, any solution for these problems must not come up with new technologies that will discard the many years of hands-on experience that the template maintainers have acquired. Hence, there must be as few changes as possible in the syntax for developing templates and modules. The things that need to change are the way in which they are deployed and propagated across wikis, and the way in which the human-readable strings in them are localized (translated).&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== The proposed solution: Summary == &lt;!--T:30--&gt;

&lt;!--T:140--&gt;
There are already many features of MediaWiki that are global across wikis:
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:466--&gt; images (using [[&lt;tvar name=1&gt;:commons:&lt;/tvar&gt;|Commons]])&lt;/translate&gt;
* {{pll|Extension:GlobalBlocking|2=&lt;translate&gt;&lt;!--T:467--&gt; blocking&lt;/translate&gt;}}
* &lt;translate&gt;&lt;!--T:468--&gt; user accounts&lt;/translate&gt; ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=&lt;translate&gt;&lt;!--T:469--&gt; preferences&lt;/translate&gt;}}
* {{pll|Extension:GlobalUserPage|2=&lt;translate&gt;&lt;!--T:470--&gt; user pages&lt;/translate&gt;}}
* {{pll|Extension:GlobalCssJs|2=&lt;translate&gt;&lt;!--T:471--&gt; user JS and CSS pages&lt;/translate&gt;}}
* &lt;translate&gt;&lt;!--T:481--&gt; global watchlist is in active development as of late 2020&lt;/translate&gt; ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* &lt;translate&gt;&lt;!--T:472--&gt; and some others.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:31--&gt;
'''It must be possible to store templates and modules in a global repository, too, and to localize them as robustly as it is done with extensions.'''

&lt;!--T:32--&gt;
Global templates and modules will empower template maintainers in all wikis by letting them collaborate more easily on developing the templates’ code.

&lt;!--T:305--&gt;
Global templates and modules will empower translators and localizers by allowing them to focus on translating just the user interface strings (“messages”), without having to look for strings in the code, and by allowing them to use the same skills and tools for translating templates and MediaWiki extensions.

&lt;!--T:306--&gt;
Global templates and modules will empower content editors in all wikis to write and translate content that uses these templates without having to dive into the differences and to relearn different rules and skills in each wiki.

&lt;!--T:33--&gt;
The syntax for developing templates and modules, and the general template maintenance and deployment cycle will not change, so all the skills that the template maintainers have acquired over the years will remain relevant.

&lt;!--T:34--&gt;
All wikis will be able to use the global templates, but not forced to do this. Communities will keep their capability to override any global functionality, design, workflows, and data.

&lt;!--T:35--&gt;
Localizing templates will be as convenient as localizing MediaWiki extensions.&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== The proposed solution: Detailed requirements == &lt;!--T:36--&gt;

=== Templates must be able to be semantic and global === &lt;!--T:37--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:141--&gt; ''Semantic'' means that other software components, especially Visual Editor and Content Translation, must have a general way to understand that a template exists and that it provides certain functionality, so that it will be possible to insert it into a page as an infobox, a citation, a maintenance tag, etc., and not only as a generic template.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:503--&gt; Currently, the closest thing to making templates semantic is TemplateData, but it only describes the template’s parameters.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:504--&gt; It doesn’t, for example, help Visual Editor add an “Insert infobox” button to the toolbar.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:38--&gt;
''Global'' means that a template’s code must be maintained in one place and usable in all wikis.

=== Making templates semantic === &lt;!--T:39--&gt;
&lt;/translate&gt;
{{Tracked|T103630}}
{{Tracked|T103624}}
&lt;translate&gt;
&lt;!--T:142--&gt;
Templates have never been robustly semantic, in the sense of being easy to handle by software that processes pages.

&lt;!--T:40--&gt;
There are only a few examples of templates that were made semantic:
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:41--&gt; Various reference templates, which are usable from the Visual Editor toolbar “&lt;tvar name=1&gt;{{int|citoid-citoidtool-title}}&lt;/tvar&gt;” button.&lt;/translate&gt; &lt;translate&gt;&lt;!--T:454--&gt; They require writing a lot of separate code to configure Citoid on each wiki that wants to use them.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:42--&gt; “Citation needed”, which was adapted to Visual Editor in late 2019.&lt;/translate&gt; &lt;translate&gt;&lt;!--T:533--&gt; It also requires configuration on each wiki.&lt;/translate&gt; &lt;translate&gt;&lt;!--T:534--&gt; For example: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|English]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|Hebrew]], [[:sl:MediaWiki:Visualeditor-template-tools-definition.json|Slovene]].&lt;/translate&gt; &lt;translate&gt;&lt;!--T:535--&gt; As of this writing, French, Spanish, and most other languages are not configured for this, even though they have templates of this kind.&lt;/translate&gt; ({{Phab|T211243}})
* &lt;translate&gt;&lt;!--T:43--&gt; Templates for mentioning users in the Flow extension, which require local configuration, too.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:44--&gt; Some dump processing and research tools can parse English Wikipedia’s WikiProject page assessment templates, which are usually added to talk pages.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:445--&gt; The GrowthExperiments extension suggests editors to perform certain tasks in articles based on the templates that are transcluded in them. The template names have to be configured manually by writing JSON files separately in each wiki. For example: [[:cs:MediaWiki:NewcomerTasks.json|Czech]], [[:vi:MediaWiki:NewcomerTasks.json|Vietnamese]], [[:ko:MediaWiki:NewcomerTasks.json|Korean]], [[:ar:MediaWiki:NewcomerTasks.json|Arabic]].&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:45--&gt; The PageTriage extension is configured to work with English Wikipedia’s hatnote templates (also known as “tags”).&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:46--&gt;
In the case of PageTriage, the extension essentially hard-codes a single wiki’s templates, making it unusable in other wikis without a significant rewrite. Even if the on-wiki configuration step is small, as it is with the Flow example, it still needs to be done. This doesn’t scale well for the 900 wikis that Wikimedia has, and the thousands that it will have in the future.

&lt;!--T:47--&gt;
These things should be global by default, so that they will be immediately usable in at least a basic default configuration on all wikis at once by extensions, bots, dump analyzers, etc.

=== Storage and delivery === &lt;!--T:48--&gt;
&lt;/translate&gt;
{{Tracked|T6547}}
{{Tracked|T91162}}
&lt;translate&gt;
&lt;!--T:143--&gt;
The global templates and modules can be stored in a central wiki (Meta, Commons, or a whole new wiki), and it can even be &lt;tvar name=1&gt;{{ll|Gerrit}}&lt;/tvar&gt; or another repository.

&lt;!--T:49--&gt;
The best solution is probably creating a new wiki that will store them, without getting mixed up with images, general community discussion, etc.

&lt;!--T:50--&gt;
Using Gerrit as storage for templates and modules code is technically possible, but it would lose an important element of accessibility for template maintainers: editing a template in a wiki page is much easier and familiar to the vast majority of template maintainers than making Git commits and waiting for code review. Therefore, Gerrit probably shouldn’t become a way for storing the template and module code, at least not the primary one.

&lt;!--T:51--&gt;
Global templates and modules must be stored in a common repository that can be edited by most wiki editors. Rules about blocking and special permissions should initially be similar to the rules in other wikis: everything should be open by default, and it must be possible to protect very common, sensitive, or frequently-vandalized templates. More detailed rules about protection levels can be developed by the editors community later.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:510--&gt; The code of the templates in the central repository will use the generic English names of tags such as &lt;tvar name=section&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt;, parser functions such as &lt;tvar name=ifexist&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt; or &lt;tvar name=invoke&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt;, and magic words such as &lt;tvar name=displaytitle&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt;.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:52--&gt; How the templates are delivered to the target wikis is a question of internal engineering and architecture, as long as the other requirements are addressed.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:505--&gt; These questions were discussed in the past by some platform developers, for example around the [[Requests for comment/Shadow namespaces|Shadow namespaces]] project.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:506--&gt; This document tries to address related questions of how it works for the user who edits a page that uses a template, or who maintains the template itself—how to write it in a localizable way; how is it translated; how is it locally customized; etc.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:507--&gt; These questions weren’t addressed sufficiently in the previous architectural discussions on the topic.&lt;/translate&gt;

&lt;translate&gt;
=== Templates must remain easy to modify === &lt;!--T:53--&gt;

&lt;!--T:144--&gt;
An important feature of how templates currently work is that they are edited just like wiki pages and immediately become functional after publishing without review or deployment. This is somewhat dangerous because a bad edit can ruin many pages, but the fact is that it works mostly well.

&lt;!--T:54--&gt;
This ease must be preserved. Community members who maintain templates will most likely reject moving to a new system that will require them to learn new skills and drag every change through an exhausting review and deployment phase. This probably means that storing the templates in Gerrit is not going to work, unless, perhaps, the process for review and deployment will be ''much'' easier than it is for extensions.

=== It must be possible to make some templates non-global === &lt;!--T:55--&gt;

&lt;!--T:145--&gt;
Not all templates should be forced to be global.
&lt;/translate&gt;
{{Tracked|T165053}}
&lt;translate&gt;
&lt;!--T:56--&gt;
In fact, some templates should be local because they implement a functionality that is unique to a certain language. By their nature, such templates don’t need to be translated, and there should be a way to give a hint to both human editors and translation tools (such as Content Translation) that they don’t need to be adapted, and can be skipped or substituted. This is a part of the effort to make templates more semantic.

=== It must be possible to override some functionality or appearance of a global template === &lt;!--T:57--&gt;

&lt;!--T:146--&gt;
No community should feel that a functionality is imposed on it by some powerful external player, like the English Wikipedia community, the Wikidata community, the WMF, or anybody else. Global templates should be developed and used collaboratively for the common benefit. Most of the time, it should work for everybody.

&lt;!--T:313--&gt;
Sometimes some communities will have strong opinions about wanting to have particular functionality or design that will be different in their language or project, or to show an infobox with information that is different from what is shown in other projects, or not to show it at all. The capability to override things locally must be allowed from the start. (Or rather, it must not be taken away.)

=== A global template must be immediately usable in every wiki === &lt;!--T:60--&gt;

&lt;!--T:147--&gt;
Just like a global user page is immediately available in every wiki in which there is no local user page, every template or module that is created on the global infrastructure must be immediately usable in every wiki.

&lt;!--T:387--&gt;
This must not require ''any'' extra steps, such as copying wiki pages, creating wrapper templates with a local name, administrator intervention, waiting for hours for caches to refresh, etc.

&lt;!--T:388--&gt;
After the central version is updated, the updated version will be immediately shown everywhere. To prevent vandalism, the editors community will develop policies on permissions and protection levels.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:389--&gt; If the user interface strings (also known as “messages”) were not translated, the template will nevertheless be usable, and the strings will be shown in the [[&lt;tvar name=1&gt;Special:MyLanguage/fallback language&lt;/tvar&gt;|fallback language]].&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:536--&gt; See the sections on localization for more details.&lt;/translate&gt;

&lt;translate&gt;
=== Localization of user-facing strings === &lt;!--T:61--&gt;
&lt;/translate&gt;
{{tracked|T238411}}
&lt;translate&gt;
==== It must be possible to translate all user-facing strings ==== &lt;!--T:62--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:148--&gt; The user interface strings (messages) of core MediaWiki, extensions, and some external tools such as [[&lt;tvar name=1&gt;:m:Community Tech/Pageview stats tool&lt;/tvar&gt;|Pageviews]] are translated conveniently and robustly on &lt;tvar name=2&gt;translatewiki.net&lt;/tvar&gt;.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:537--&gt; This localization process is familiar to at least some editors in all languages.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:63--&gt;
It’s currently not possible to do the same with templates. Multilingual sites such as Commons and mediawiki.org have the “[[commons:Template:Translatable navigation template|TNT]]” system for translating some templates, but it’s very complicated and cannot be reused for Wikipedia, Wikisource, etc. In 2021, this became more robust thanks to the "language-aware transclusion" feature, but it still needs some improvements.

&lt;!--T:64--&gt;
Ideally, it should be possible to translate templates just like core and extensions, using a wiki with the Translate extension.

&lt;!--T:65--&gt;
The translated string must become usable immediately after the translation is submitted using the Translate interface.

&lt;!--T:66--&gt;
It can be possible to edit the user interface strings in raw wiki pages, but ideally they should be edited primarily through a dedicated translation interface.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:380--&gt; Translators should be able to focus on translating nothing but text.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:526--&gt; Seeing any code around it makes it difficult for people who are not experienced with programming and JSON files to contribute easily.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:527--&gt; In addition, editing translations into languages that are written from right to left in raw text files is extremely inconvenient.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:528--&gt; The Translate extension already addresses all of these issues.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:172--&gt;
The template documentation pages must be translatable as well. It’s mostly enough to do it using the page translation feature of the Translate extension, but it may require some adaptations.

==== The language in which the strings are shown to the user ==== &lt;!--T:67--&gt;
&lt;/translate&gt;
{{Tracked|T313748}}
&lt;translate&gt;
&lt;!--T:149--&gt;
Templates are primarily used when they are integrated into content, so by default the translated messages must be shown in the wiki’s content language.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:68--&gt; Some templates, however, are used as UI elements.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:538--&gt; Therefore, perhaps it makes sense to also allow showing the translated strings in the user language, when it’s different from the wiki content language.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:539--&gt; This may be particularly relevant for multilingual sites such as Commons, Wikidata, Meta, and &lt;tvar name=1&gt;mediawiki.org&lt;/tvar&gt;.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:69--&gt; MediaWiki’s usual fallback language chains must be used when a translation is not available.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:540--&gt; For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:541--&gt; The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/translate&gt;

&lt;translate&gt;

==== Message keys ==== &lt;!--T:70--&gt;

&lt;!--T:150--&gt;
Messages should be represented as keys, similarly to how it is done in MediaWiki core, extensions, and tools.

&lt;!--T:71--&gt;
Writing translatable strings will probably be the largest change in the template development process that template maintainers will have to get used to. Hard-coded strings will have to be separated and moved to messages organized by key. It must be made as easy as possible not only for the translators, but also for the template maintainers. Otherwise, they won’t actually do it, and the feature will be effectively rejected.

&lt;!--T:72--&gt;
To easily make keys globally unique, it’s probably OK to automatically include the global template name in the message key.

==== Transitioning tools ==== &lt;!--T:416--&gt;
&lt;/translate&gt;
{{Tracked|T245737}}
&lt;translate&gt;
&lt;!--T:417--&gt;
A tool should be developed that will help the transitioning of a template or a module to central storage. It can do the following steps:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:418--&gt; Export a template from a local wiki and import it into the global wiki.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:419--&gt; Export all the templates that are used by this template (cascading).&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:420--&gt; Identify the human-readable strings, convert them to a list with keys, and replace them with keys in the template’s source code.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:434--&gt; Import the template’s documentation page and TemplateData.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:455--&gt; Import the necessary CSS pages.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:421--&gt;
In most cases, this automatic process probably cannot create a fully usable and robust template or module, but it can help begin the transitioning process.

==== Organizing messages ==== &lt;!--T:73--&gt;

&lt;!--T:151--&gt;
The Translate extension organizes messages by groups, also known as “projects”, which can be further organized by aggregate groups. For example, Article Placeholder, Score, and Poem are all groups that represent the corresponding MediaWiki extensions, and they are all included in the “Extensions used by Wikimedia - Advanced” aggregate group, along with many other extensions.

&lt;!--T:74--&gt;
Projects that represent MediaWiki extensions are configured in YAML files in the translatewiki repository and shown in the Translate user interface in a project selector, also known as “message group selector”.

&lt;!--T:75--&gt;
Since there are many more templates than extensions, some modifications may be needed in the way the Translate extension handles message groups to accommodate templates translation.

&lt;!--T:76--&gt;
Each template should be a message group. Closely related templates should be grouped in an aggregate message group. They can be similar to the categories in which they are stored, and in fact, the categories may even be reused. Editing files in a Git repository to organize these message groups is probably not desirable, because it’s too complex and slow.

&lt;!--T:77--&gt;
It would be nice to show group and template names as localized in the selector, but it’s also OK if they are shown in English. If it’s good enough for extension localizers, it’s good enough for template localizers, too.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:441--&gt; Templates must be shown as message groups on the Translate extension’s Language statistics special page (&lt;tvar name=1&gt;Special:LanguageStats&lt;/tvar&gt;).&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:542--&gt; This will help localizers find what templates need translation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:543--&gt; This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:442--&gt; There will be thousands of templates, so it will be nice if the table’s design corresponds to this somehow.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:443--&gt; The table should show on how many pages is each template transcluded and make it possible to order the rows by this number, to help localizers prioritize what is more important to translate.&lt;/translate&gt;

&lt;translate&gt;

==== Finding how to translate a template ==== &lt;!--T:78--&gt;

&lt;!--T:152--&gt;
Every template description page needs to have a direct link to translating it to the user’s language.
&lt;/translate&gt;
{{Tracked|T64695}}
&lt;translate&gt;&lt;!--T:314--&gt; Some templates use Wikidata labels as part of their UI instead of hard-coding strings.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:484--&gt; This is done at the moment in [[:commons:Wikidata Infobox|Wikidata Infobox]] on Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (Infobox person) in the Catalan Wikipedia, and in several other templates.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:485--&gt; These labels and values can be localized in Wikidata itself.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:486--&gt; Such usage cannot cover all the needs of template localization, but it is legitimate and useful for particular purposes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:487--&gt; As long as this is properly described in the template documentation, this can continue to be used, and probably doesn’t need special infrastructure adaptations.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:488--&gt; (Perhaps the translation of the relevant labels and values can be somehow integrated into the Translate interface for localizing the template, but this is optional.)&lt;/translate&gt;

&lt;translate&gt;
==== Message parameters and magic words ==== &lt;!--T:422--&gt;

&lt;!--T:423--&gt;
In core MediaWiki and extensions, many messages have parameters, sometimes also known as “placeholders”. They are named $1, $2, etc., and they are filled in run time. Parameters are particularly important for making messages robustly translatable because different languages have different word order.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:424--&gt; Something like this is needed in templates, too, although it is possible that the form does not have to be $1, $2, but template-like parameters with triple curly braces (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:544--&gt; This is to be decided according to considerations of parsing and localization convenience.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:425--&gt;
The magic words PLURAL, GENDER, and GRAMMAR must be supported in template messages as in MediaWiki messages.

==== Message documentation ==== &lt;!--T:426--&gt;

&lt;!--T:427--&gt;
In core MediaWiki and extensions, every translatable message is documented for the convenience of developers and translators. The documentation may include information about where the message appears, what the $1, $2, etc. parameters are, whether the word is a verb or an adjective, etc. This documentation is stored as pseudo-language with the code qqq.

&lt;!--T:428--&gt;
Such documentation will be useful for template translation, too. How it is stored is a question of technical architecture. Perhaps it can be combined with TemplateData, perhaps it can be stored as a qqq language, and perhaps it can be something else.

==== Source language ==== &lt;!--T:429--&gt;

&lt;!--T:430--&gt;
Templates will be imported to the global storage not only from English-language projects, but from wikis in many languages. More than ever, the localization tools must support translation from any language and not only from English.

==== Fuzzying ==== &lt;!--T:431--&gt;

&lt;!--T:432--&gt;
In core MediaWiki and extensions and in translatable pages, if the source message in English changes, the message is automatically marked as outdated or “fuzzy”. The existing translations continue to work, but are shown to translators as needing an update. (The translation manager can also mark a message as not needing fuzzying.)

&lt;!--T:433--&gt;
A similar mechanism will be needed for template localization. However, since it would be nice not to force English as the source language, there should be more ways to mark messages as fuzzy.

==== Localization considerations for modules ==== &lt;!--T:79--&gt;
&lt;/translate&gt;
{{Tracked|T238417}}
&lt;translate&gt;&lt;!--T:153--&gt; Lua modules can load and parse translatable MediaWiki strings, but there is no defined way for storing these strings for Lua modules that are maintained as wiki pages.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:489--&gt; It is possible to package Lua modules as parts of extensions, and then they are able to load messages from the extensions’ &lt;tvar name=1&gt;i18/*.json&lt;/tvar&gt; files, but this is done in very few extensions at the moment.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:490--&gt; Rewriting templates in Lua may be a more robust solution from the engineering point of view, but Lua will not necessarily be embraced by all existing template maintainers, and their cooperation will be crucial to the project’s success, so this cannot be done to all templates.&lt;/translate&gt;

{{Tracked|T209310|resolved}}
&lt;translate&gt;&lt;!--T:440--&gt; Some very internal, technical modules that are commonly used, rarely changed, and don’t require internationalization can probably be painlessly moved into the Scribunto extension itself.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:545--&gt; Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/translate&gt;

&lt;translate&gt;
=== Localizing the template name === &lt;!--T:307--&gt;
&lt;/translate&gt;
{{Tracked|T239294}}
&lt;translate&gt;
&lt;!--T:102--&gt;
The template may have a different name in every language, but it must be directly connected to the central storage.

&lt;!--T:308--&gt;
Global templates and modules are supposed to be immediately usable in all wikis without any extra steps, so it must be possible to transclude a global template in a local wiki page using its global name. The cross-wiki editors community shall decide what will be the policy for these global names.

&lt;!--T:160--&gt;
Similarly to parameter names, templates may have different names in different languages, and this must be preserved. There must be a structured way to translate template names. Perhaps Wikidata sitelinks can play a role, but not necessarily.

&lt;!--T:103--&gt;
If this is not done, editors will either avoid global templates, or wrap the global template in a local template with a translated name, and this will probably cause the template to lose the connection to the global entity. This is not desirable and misses the whole point of the project.

&lt;!--T:309--&gt;
Template names must only be translated to languages that can be content languages of wikis. Translation to Formal German or British English are probably unnecessary. There may be a way to have aliases or redirects. Language variants, for example for Serbian and Chinese, must be supported according to these languages’ needs.

&lt;!--T:310--&gt;
If a local template exists in a wiki and has the same name as a localized name of a global template, the local template will be used. This is similar to how local files with identical names override global files on Commons, and how local messages in the MediaWiki space override the localization coming from the code.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:311--&gt; Lua module names are often localized, too.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:546--&gt; Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/translate&gt;

&lt;translate&gt;
=== Localizing parameters === &lt;!--T:88--&gt;

==== Localizing parameter names ==== &lt;!--T:89--&gt;

&lt;!--T:157--&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.

&lt;!--T:90--&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.

&lt;!--T:446--&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.

&lt;!--T:91--&gt;
These translations of parameter names must be validated:&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:92--&gt; they must not include invalid characters&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:93--&gt; they must not be repeated within one template in one language&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:94--&gt; ''Anything else?''&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:415--&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.&lt;/translate&gt;
{{anchor|AutomaticParameterTranslation}}
&lt;translate&gt;

==== Automatic parameter translation ==== &lt;!--T:298--&gt;
&lt;/translate&gt;
{{Tracked|T243150}}
&lt;translate&gt;
&lt;!--T:299--&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:

&lt;!--T:300--&gt;
Input:&lt;/translate&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
&lt;!--T:301--&gt;
Output:
&lt;/translate&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
&lt;!--T:447--&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.

&lt;!--T:302--&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.

&lt;!--T:303--&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.

&lt;!--T:304--&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.

==== Nameless parameters ==== &lt;!--T:95--&gt;

&lt;!--T:158--&gt;
Nameless numbered parameters must continue working, of course.

&lt;!--T:96--&gt;
A decision is needed about how will their names be localized.

==== Translating parameter values ==== &lt;!--T:97--&gt;

&lt;!--T:159--&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.

&lt;!--T:98--&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.

&lt;!--T:99--&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.

&lt;!--T:100--&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.

&lt;!--T:101--&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.

&lt;!--T:439--&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.

=== Text direction === &lt;!--T:80--&gt;

&lt;!--T:154--&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.

&lt;!--T:81--&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.

=== Bots === &lt;!--T:377--&gt;

&lt;!--T:378--&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.

&lt;!--T:379--&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.

=== Transitioning the templates from the large wikis to central storage === &lt;!--T:82--&gt;

&lt;!--T:155--&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.

&lt;!--T:83--&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:119--&gt; The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:120--&gt; Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:121--&gt; Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:315--&gt; Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:122--&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.

&lt;!--T:58--&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.

&lt;!--T:59--&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.

=== It must be possible to use templates completely in both wiki syntax and in visual editing === &lt;!--T:86--&gt;

&lt;!--T:156--&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.

&lt;!--T:87--&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.

=== Other features related to templates === &lt;!--T:104--&gt;

&lt;!--T:161--&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.

==== Core MediaWiki ==== &lt;!--T:316--&gt;
&lt;/translate&gt;
{{Tracked|T238412}}
&lt;translate&gt;
&lt;!--T:312--&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.

&lt;!--T:317--&gt;
The “&lt;tvar name=1&gt;{{int|Whatlinkshere}}&lt;/tvar&gt;” page must keep working, and remain useful for global transclusions.

==== TemplateData ==== &lt;!--T:105--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:438--&gt; It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:125--&gt; The “&lt;tvar name=wikitextFormat&gt;{{int|Templatedata-modal-title-templateformat}}&lt;/tvar&gt;” parameter (&lt;tvar name=inline&gt;{{int|Templatedata-modal-format-inline}}&lt;/tvar&gt;, &lt;tvar name=block&gt;{{int|Templatedata-modal-format-block}}&lt;/tvar&gt;, &lt;tvar name=custom&gt;{{int|Templatedata-modal-format-custom}}&lt;/tvar&gt;) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/translate&gt;

&lt;translate&gt;
==== Citoid ==== &lt;!--T:458--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:459--&gt; [[Citoid]] has to be configured on every wiki separately using JSON files, such as &lt;tvar name=citoid-example-link&gt;[[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]&lt;/tvar&gt;. In the global templates age, it must become possible to share these files, so that the “&lt;tvar name=citoidtool-title&gt;{{int|citoid-citoidtool-title}}&lt;/tvar&gt;” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/translate&gt;

&lt;translate&gt;
==== TemplateStyles ==== &lt;!--T:107--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:126--&gt; There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/translate&gt;

&lt;translate&gt;
==== TemplateSandbox ==== &lt;!--T:109--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:127--&gt; Special:TemplateSandbox must keep working.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:128--&gt; It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/translate&gt;

&lt;translate&gt;
==== TemplateWizard ==== &lt;!--T:111--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:129--&gt; The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:130--&gt; TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/translate&gt;

&lt;translate&gt;
==== Wikibase ==== &lt;!--T:113--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:131--&gt; Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:132--&gt; It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/translate&gt;

&lt;translate&gt;
==== VisualEditor ==== &lt;!--T:115--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:133--&gt; VisualEditor obviously needs to be able to insert both global and local templates.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:134--&gt; VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/translate&gt;

&lt;translate&gt;
== Development and deployment == &lt;!--T:456--&gt;

&lt;!--T:460--&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:461--&gt; '''{{&lt;tvar name=1&gt;pll|Translatable modules&lt;/tvar&gt;|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:462--&gt; '''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:463--&gt; '''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:464--&gt; '''Global templates''': Complete the project with making the templates global.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:465--&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.

&lt;!--T:457--&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:162--&gt; Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:497--&gt; Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:498--&gt; Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:499--&gt; This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Imagine a world == &lt;!--T:173--&gt;

&lt;!--T:174--&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/translate&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;translate&gt;&lt;!--T:175--&gt; Task&lt;/translate&gt;
! scope="col" width="40%" |&lt;translate&gt;&lt;!--T:176--&gt; With the current template system&lt;/translate&gt;
! scope="col" width="40%" |&lt;translate&gt;&lt;!--T:177--&gt; With global templates&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:178--&gt; Insert an infobox using the Visual Editor&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:179--&gt; Go to “Insert”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:180--&gt; Click “Template”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:181--&gt; Find the template name somehow.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:182--&gt; Type the template name.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:183--&gt; Fill the fields.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:184--&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/translate&gt;

|
# &lt;translate&gt;&lt;!--T:185--&gt; Go to “Insert”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:186--&gt; Click “Infobox”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:187--&gt; Select the infobox type you want.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:188--&gt; Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:189--&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:190--&gt; Insert an infobox using the wiki syntax editor&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:191--&gt; Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:192--&gt; Mostly manual: Copy from a similar article and change the parameter values.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:193--&gt; Use TemplateWizard (hoping that it is configured for your wiki):&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:194--&gt; Click the puzzle piece button.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:195--&gt; Find the template name somehow.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:196--&gt; Type the template name.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:197--&gt; Fill the parameters one by one using the form.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:198--&gt; If you want, you can still do all the same things as with the current template system.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:199--&gt; But you will also have these additional optional features:&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:200--&gt; To select a suggested infobox from a list instead of typing the name manually.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:201--&gt; To have the parameter values auto-filled.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:202--&gt; To have the same process for every wiki.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:203--&gt; Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:204--&gt; If you have time and necessary skills:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:205--&gt; Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:206--&gt; Copy the underlying modules, if necessary.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:207--&gt; Copy the TemplateStyles, if necessary.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:208--&gt; Copy the documentation and translate it in the wiki syntax editor.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:209--&gt; Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:210--&gt; Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:211--&gt; Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/translate&gt;
#&lt;translate&gt;&lt;!--T:212--&gt; If you don’t have time or necessary skills, you have two options:&lt;/translate&gt;
##&lt;translate&gt;&lt;!--T:213--&gt; Make a simpler template with fewer features.&lt;/translate&gt;
##&lt;translate&gt;&lt;!--T:214--&gt; Just give up.&lt;/translate&gt;
#&lt;translate&gt;&lt;!--T:215--&gt; '''Repeat the process for every language and every wiki.'''&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:216--&gt; If the template is in the global repository, then:&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:217--&gt; Go to the template documentation page.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:218--&gt; Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:219--&gt;
That’s it, the template is fully usable in your language.

&lt;!--T:220--&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:221--&gt; Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:222--&gt; Three options:&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:223--&gt; Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:224--&gt; Develop it by yourself.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:225--&gt; Give up and stay with the older version.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:226--&gt; Just translate the new strings. All the new features are already available in all wikis.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:289--&gt; Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:290--&gt; This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:291--&gt; The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:227--&gt; Translate an article from English, French, or Russian into your language using Content Translation&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:228--&gt; Open the article in Content Translation.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:229--&gt; Click the Infobox.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:230--&gt; If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:231--&gt; If no-one imported the infobox into your language, skip it.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:232--&gt; Translate the prose of the first paragraph.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:233--&gt; '''Carefully''' check that all of these templates were correctly adapted:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:234--&gt; IPA pronunciation templates&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:235--&gt; Native language name templates&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:236--&gt; Citation needed&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:237--&gt; Unit conversion&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:238--&gt; Blockquote&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:239--&gt; Country flags&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:240--&gt; Various others&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:241--&gt; Repeat steps 3 and 4 until everything you want is translated.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:242--&gt; Publish the article.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:243--&gt; Clean up incorrectly published wiki syntax.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:244--&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:245--&gt; Open the article in Content Translation.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:246--&gt; Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:247--&gt; Translate the prose of the first paragraph.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:248--&gt; All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:249--&gt; Repeat steps 3 and 4 until everything you want is translated.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:250--&gt; Publish the article.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:251--&gt; (Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:252--&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:253--&gt; Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:254--&gt; Check that a corresponding template exists in the target language. If it does:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:255--&gt; Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:256--&gt; If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:257--&gt; If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:258--&gt; Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:259--&gt; Find a similar citation template and use it.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:260--&gt; Just copy the text of the citation without formatting and structure.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:261--&gt; Give up and publish the article without the reference.&lt;/translate&gt;
| &lt;translate&gt;&lt;!--T:262--&gt; In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:293--&gt;
In the wiki syntax editor:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:294--&gt; Copy.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:295--&gt; Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:296--&gt; Paste the result.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:297--&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:390--&gt; Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/translate&gt;

&lt;small&gt;&lt;translate&gt;&lt;!--T:391--&gt; This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[&lt;tvar name=1&gt;w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0&lt;/tvar&gt;|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/translate&gt;&lt;/small&gt;
|
# &lt;translate&gt;&lt;!--T:392--&gt; Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:393--&gt; In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:394--&gt; In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:395--&gt; In every wiki: Copy the module from the central storage to your wiki.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:396--&gt; In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:397--&gt; In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:398--&gt; Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:399--&gt; Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:400--&gt; In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:401--&gt; In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:402--&gt; In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:405--&gt; In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:403--&gt; Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:404--&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:263--&gt; Start writing in a new wiki after the domain is created&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:264--&gt; After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:265--&gt; Start copying these templates one by one, or create your own.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:266--&gt; Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:267--&gt; You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:268--&gt; All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:269--&gt; Use a navigation box while reading an article on a mobile phone&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:270--&gt; '''Impossible.'''&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:271--&gt; Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[&lt;tvar name=1&gt;phab:T124168&lt;/tvar&gt;|there is demand for it]].)&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:272--&gt; '''Possible.'''&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:273--&gt; Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:381--&gt; Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:382--&gt; Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:383--&gt; Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:508--&gt; Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:509--&gt; This happens in some of the smaller languages.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:384--&gt; Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:385--&gt; Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:386--&gt; Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:274--&gt; Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:275--&gt; Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:276--&gt; Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:277--&gt; Rewrite the code for every wiki.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:278--&gt; Give up, and research only the English Wikipedia.&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:279--&gt; Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/translate&gt;
|}
&lt;translate&gt;
&lt;!--T:280--&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Status == &lt;!--T:163--&gt;

&lt;!--T:478--&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''

&lt;!--T:164--&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.

&lt;!--T:448--&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;tvar name=bugzilla&gt;&lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt;&lt;/tvar&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called &lt;tvar name=globalwiki&gt;[[:m:Global-Wiki|Global-Wiki]]&lt;/tvar&gt; was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.

&lt;!--T:449--&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[&lt;tvar name=wishlist2015&gt;:m:Community Wishlist Survey 2015&lt;/tvar&gt;|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[&lt;tvar name=wishlist2016&gt;:m:Community Wishlist Survey 2016/Results&lt;/tvar&gt;|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.

&lt;!--T:165--&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/translate&gt;

:&lt;translate&gt;&lt;!--T:166--&gt; ... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:167--&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/translate&gt;

:&lt;translate&gt;&lt;!--T:168--&gt; Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:477--&gt;
[[&lt;tvar name=aw&gt;:m:Abstract Wikipedia&lt;/tvar&gt;|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[&lt;tvar name=awt&gt;:m:Abstract Wikipedia/Tasks&lt;/tvar&gt;|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).

&lt;!--T:479--&gt;
The {{&lt;tvar name=txm&gt;pll|Translatable modules&lt;/tvar&gt;|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.

&lt;!--T:482--&gt;
In [[&lt;tvar name=survey&gt;:m:Community Wishlist Survey 2021&lt;/tvar&gt;|Community Wishlist Survey 2021]], the wish titled “[[&lt;tvar name=tt&gt;:m:Community Wishlist Survey 2021/Translation/Templates translation&lt;/tvar&gt;|Templates translation]]” received [[&lt;tvar name=results&gt;:m:Community Wishlist Survey 2021/Results&lt;/tvar&gt;|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[&lt;tvar name=apt&gt;#AutomaticParameterTranslation&lt;/tvar&gt;|Automatic parameter translation]].

&lt;!--T:480--&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{&lt;tvar name=strategy&gt;pll|Global templates/Relationship to strategy&lt;/tvar&gt;|Global templates/Relationship to strategy}}.

&lt;!--T:169--&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Useful links == &lt;!--T:170--&gt;

&lt;!--T:171--&gt;
Some relevant pages that discuss similar topics:
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:283--&gt; [[&lt;tvar name=1&gt;Platform Evolution/Goals&lt;/tvar&gt;|Platform Evolution/Goals]]&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:284--&gt; [[&lt;tvar name=1&gt;Platform Evolution/Recommendations&lt;/tvar&gt;|Platform Evolution/Recommendations]]&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:285--&gt; [[&lt;tvar name=1&gt;Multilingual Templates and Modules&lt;/tvar&gt;|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:286--&gt; [[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:287--&gt; [[:m:Which templates should be global?]] - an informal list made by various editors&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:372--&gt; [[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/translate&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;translate&gt;&lt;!--T:373--&gt; an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:444--&gt; [[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:474--&gt; [[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:483--&gt; [[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[&lt;tvar name=apt&gt;#AutomaticParameterTranslation&lt;/tvar&gt;|Automatic parameter translation]].&lt;/translate&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>a0a144f64eca9bacc8879efa25ba1c08734b35fe</sha1>
  </revision>
  <revision>
    <id>6624147</id>
    <parentid>6624146</parentid>
    <timestamp>2024-07-09T07:32:40Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <minor/>
    <comment>editace</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88701" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
&lt;translate&gt;
&lt;!--T:1--&gt;
This is a proposal for the functional requirements for global templates and modules.

&lt;!--T:288--&gt;
You can also read a {{&lt;tvar name=1&gt;pll|Global templates/Proposed specification, short version&lt;/tvar&gt;|one-page version of this proposal}}.

&lt;!--T:2--&gt;
'''This is not a project that is being executed or planned to be executed by anyone at any defined point in time, at least not yet. This is just an idea, albeit a very detailed one.'''

&lt;!--T:3--&gt;
The eventual goal is to form a cross-team and cross-project commitment on implementing these things, with proper architecture, product and project management, community engagement, etc.

&lt;!--T:4--&gt;
This document does not try to go into the details of technical implementation in terms of storage, caching, delivery, PHP code design, etc. It only tries to define the requirements of how this feature will work from the point of view of the users:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:5--&gt; People who create and maintain templates and modules.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:6--&gt; People who create and edit pages that transclude templates and modules. This includes all editors and all kinds of pages:&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:7--&gt; All levels of experience: from those who are completely new to those who have made thousands of edits&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:8--&gt; All kinds of editing tools: wiki syntax editing, Visual Editor, Content Translation, and others (even bot operators)&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:9--&gt; All wikis: Wikipedia, Wiktionary, Wikivoyage, Wikidata, Incubator, etc., and any new future projects&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:10--&gt; All languages: English, French, Russian, Spanish, Armenian, Persian, Zulu, Manipuri, etc.&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:11--&gt; All kinds of pages: Wikipedia articles, articles talk pages, user talk pages, community discussion pages, WikiProject pages, categories, template documentation pages, etc.&lt;/translate&gt; {{Triple globe}}
{{Global templates nav}}
&lt;translate&gt;
== Elevator pitch == &lt;!--T:12--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:135--&gt; A large part of the functionality of Wikimedia sites is implemented in templates and Lua modules.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:491--&gt; In their current form, they cannot be shared across different wikis and languages.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:492--&gt; Because of this they are hard to integrate with modern ways of creating and editing articles, such as Visual Editor, Wikidata, and Content Translation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:493--&gt; They are also hard to adapt to mobile devices.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:494--&gt; This causes waste of contributors’ effort, and difficulties for new editors and smaller projects.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:495--&gt; It must become possible to share them across wiki sites, similarly to Commons images.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:496--&gt; This will make software development faster and more robust, and it will also let editors focus more on writing.&lt;/translate&gt; {{Triple globe}}

&lt;translate&gt;
== The Problem == &lt;!--T:13--&gt;

&lt;!--T:136--&gt;
'''''General comment: Unless noted otherwise, all references to “templates” also apply to {{&lt;tvar name=1&gt;pll|Extension:Scribunto&lt;/tvar&gt;|Scribunto}} Lua modules.'''''
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:14--&gt; Templates implement features of Wikimedia sites.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:513--&gt; Some of these features are highly prominent, especially the infoboxes, the references, “citation needed”, and many others.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:514--&gt; For a more comprehensive list of functions implemented using templates, see {{&lt;tvar name="Taxonomy"&gt;pll|Global templates/Taxonomy&lt;/tvar&gt;|Taxonomy}}.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:515--&gt; All the readers see them, and all the editors run into them in almost every edit action.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:516--&gt; In addition, they implement many of the sites’ internal community management features: requests for deletion, requests for unblocking, expressing support in discussions, sorting articles for WikiProjects, etc.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:15--&gt;
Templates provide an efficient mechanism to quickly design, deploy, and use repetitive pieces of text and markup in many pages. However, templates also have several acute usability problems for all kinds of editors.

=== Difficulties for all editors in all wikis === &lt;!--T:16--&gt;

==== Wiki syntax editors ==== &lt;!--T:17--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:137--&gt; Templates are often difficult to understand for editors in wiki syntax.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:500--&gt; People who are experienced with using a particular template will probably identify it and be able to edit a page that includes it.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:501--&gt; However, editors who are not familiar with this template will have to look up its documentation when they encounter it, even if they are generally experienced with editing and other templates.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:502--&gt; And editors who have low experience will be baffled by the cryptic text with curly braces, pipe characters, equal signs, etc.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:18--&gt; Using a feature that is implemented as a template requires knowing the template’s name and typing it in curly braces (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) or copying it from another page.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:517--&gt; This is not obvious to new users, and veteran users have to learn each new template separately, too.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:19--&gt; Some wikis have gadgets that add buttons that insert templates that are common in that project to the editing toolbar.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:518--&gt; These are different in each wiki, even though a lot of the templates have similar functionality across projects and languages.&lt;/translate&gt;

&lt;translate&gt;
==== Visual Editor users ==== &lt;!--T:20--&gt;
&lt;/translate&gt;
{{Tracked|T55590}}
{{Tracked|T67173}}
&lt;translate&gt;
&lt;!--T:138--&gt;
VisualEditor users have some advantages with using templates, however there are many issues with them there as well. In particular, there is a similar discoverability issue: In Visual Editor, all the templates’ functionality is hidden behind the “&lt;tvar name=1&gt;{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}&lt;/tvar&gt;” menu item, and the user has to know the template name before using it.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:21--&gt; Visual Editor’s “&lt;tvar name=1&gt;{{int|visualeditor-toolbar-insert}}&lt;/tvar&gt;” menu has items for Math formulas, Egyptian Hieroglyphs, Musical scores, and some other functions that are implemented as extensions, but it doesn’t have items such as “Infobox”, “Citation needed”, “Unit conversion”, “Quotation”, etc.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:450--&gt; All the templates are the same kind of generic item.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:22--&gt; There is one notable exception: Some wikis have the “&lt;tvar name=1&gt;{{int|citoid-citoidtool-title}}&lt;/tvar&gt;” button, which inserts footnotes with reference templates.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:451--&gt; However, it is an exception that proves the rule.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:452--&gt; It requires manual configuration for even basic functionality, this configuration is separate in each wiki, and as a consequence many wikis don’t have this button at all.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:453--&gt; Another comparable exception, which was added in late 2019, is special support for “Citation needed” templates, but this also needs some custom configuration on each and every wiki to actually work.&lt;/translate&gt;

&lt;translate&gt;
=== Difficulties for editors who write in more than one project === &lt;!--T:23--&gt;

&lt;!--T:292--&gt;
Many templates exist in one project, but not in others, and often a template is available, but in a different form. Because of this, it’s difficult or impossible to reuse skills that were acquired in one project: the functionality that the template provides is sometimes unavailable, and sometimes it works differently. This applies not just to wikis in different languages, but also to different wikis in the same language, for example, English Wikipedia and English Wikisource.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:24--&gt; For people editing in different languages, templates make translation harder.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:519--&gt; When translating a page, templates are much harder to handle than the article text (“prose”), whether the translation is done manually or with Content Translation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:520--&gt; Users often have to skip the template or to correct it after the article was published.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:521--&gt; This also causes abandoning translations in progress, because template translation looks intimidating.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:281--&gt;
The most commonly reported issues in Content Translation are about templates.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:25--&gt; Content Translation has a template adaptation feature, which automates some parts of this process, but it works only if a corresponding template exists in both languages, and if all the parameters were meticulously mapped by the template maintainers.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:529--&gt; This must be done for each template in each language separately and manually, and continuously maintained when the source template changes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:530--&gt; This happens even though the templates’ function across the languages is the same most of the time.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:282--&gt;
Ideally, the templates and their parameters should be transferred to the translated page almost completely automatically, so that the translators could focus on writing the prose, as writing the prose is the area where human work is most needed.

&lt;!--T:26--&gt;
A template can be exported from one wiki to another, but once this is done, the template becomes a forked copy. It either stays in the state in which it was exported, or continues to be developed separately, causing incompatibility. Sometimes people keep maintaining the different copies, but this is not robust and cannot scale for the hundreds of wikis that we have.

&lt;!--T:27--&gt;
Template parameters can have the same functionality, but different names in different wikis. They can be adapted using TemplateData aliases, but this is a suboptimal hack: it is not what TemplateData was originally made for, and it has to be done manually for each language pair.

&lt;!--T:28--&gt;
Templates mix together algorithmic logic, human-readable text strings, and formatting. Because of this there is no robust way to translate the templates’ user interface strings, as it is done with MediaWiki core and extensions.

=== Difficulties for editors in smaller wikis === &lt;!--T:29--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:139--&gt; A new wiki project is created by installing core MediaWiki and enabling a default set of extensions.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:531--&gt; In practice this doesn’t create a level playing field because many key features of larger wikis are implemented in templates: infoboxes, citations, maintenance hatnotes (such as &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced|Unreferenced]]&lt;nowiki&gt;}}&lt;/nowiki&gt;), etc.&lt;/translate&gt;

&lt;translate&gt;
=== Difficulties for software developers === &lt;!--T:435--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:436--&gt; It is difficult for developers of MediaWiki core, extensions, bots, and other tools that analyze, generate, or modify wiki page content to build features that depend on the presence of certain templates in a wiki.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:532--&gt; Developers of extensions such as GrowthExperiments, PageTriage, ContentTranslation, some components of Wikibase, and many others, have to either test them in production, which is a bad idea, or to import the templates to their local wikis or an online test wiki.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:437--&gt;
Researchers who get data about wiki content based on templates have to write their analysis code for each wiki separately, and sometimes they end up doing for only one wiki. A notable example is using English Wikipedia’s WikiProject templates to analyze page topics and assess article quality.&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Assumptions == &lt;!--T:414--&gt;

=== Extensions vs Templates: Similarities and differences === &lt;!--T:318--&gt;

&lt;!--T:319--&gt;
One of the main assumptions of this project proposal is that templates and modules are very similar to MediaWiki core and extensions: They are software, and they implement features that the editors community needs. In particular, since templates are usually developed by the editors themselves, it’s obvious that the community ''really'' needs them. The big differences between lie in how they are developed, localized, and deployed.

&lt;!--T:320--&gt;
Templates and modules should become similar to extensions in some key properties that they currently lack, and preserve some good properties that extensions lack. (For ease of understanding by English readers, in the table, examples of templates are given from the English Wikipedia. They could also come from any other wiki and any other language.)
&lt;/translate&gt;

{| class="wikitable vs"
!&lt;translate&gt;&lt;!--T:321--&gt; Property&lt;/translate&gt;
!&lt;translate&gt;&lt;!--T:322--&gt; Core and extensions&lt;/translate&gt;
!&lt;translate&gt;&lt;!--T:323--&gt; Templates&lt;/translate&gt;
!&lt;translate&gt;&lt;!--T:362--&gt; What should be done about this with templates?&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:324--&gt; Implement special kind of content&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:325--&gt; Yes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:326--&gt; image, math, hieroglyphics, score, basic ref&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:327--&gt; Yes.&lt;/translate&gt;
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|&lt;translate&gt;&lt;!--T:328--&gt; └ Special kind of content is easy to insert into pages&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:329--&gt; Yes (using the toolbar).&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:330--&gt; No (unless you learned how to do it).&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:363--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:331--&gt; └ Special kind of content is easy to adapt to mobile devices&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:332--&gt; Mostly yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:333--&gt; Sometimes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:364--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:334--&gt; └ Special kind of content is easy to translate as part of an article&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:335--&gt; Mostly yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:336--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:365--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:337--&gt; Implement page formatting features&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:338--&gt; Yes.&lt;/translate&gt;
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|&lt;translate&gt;&lt;!--T:339--&gt; Yes.&lt;/translate&gt;
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|&lt;translate&gt;&lt;!--T:340--&gt; Implement community workflow processes&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:341--&gt; Yes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:342--&gt; Abuse filter, Check user, Move&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:343--&gt; Yes.&lt;/translate&gt;
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|&lt;translate&gt;&lt;!--T:366--&gt; Should be easy to reuse, but not forced.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:344--&gt; Easy to deploy initial version&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:345--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:346--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:367--&gt; Should be preserved.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:347--&gt; Easy to deploy changes&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:348--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:349--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:368--&gt; Should be preserved.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:350--&gt; Easy to localize&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:351--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:352--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:369--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:353--&gt; Useful on multiple wikis&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:354--&gt; Often.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:355--&gt; Often.&lt;/translate&gt;
|
|-
|&lt;translate&gt;&lt;!--T:374--&gt; Used only on a limited number of wikis&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:375--&gt; Sometimes.&lt;/translate&gt;
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|&lt;translate&gt;&lt;!--T:376--&gt; Sometimes.&lt;/translate&gt;
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|&lt;translate&gt;&lt;!--T:356--&gt; Easy to install and use on multiple wikis&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:357--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:358--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:370--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:359--&gt; Easy to use on a new, recently created wiki&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:360--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:361--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:371--&gt; Should be changed.&lt;/translate&gt;
|}
&lt;translate&gt;
=== Templates and modules development skills === &lt;!--T:406--&gt;

&lt;!--T:407--&gt;
Another important set of assumptions on which this proposal is based is the following:&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:408--&gt; The skills for developing templates and modules are non-trivial. Both templates and modules have numerous obscure features.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:409--&gt; Even though many of the sites’ most notable features are implemented as templates and modules, these skills are often unnoticed, underappreciated, and taken for granted.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:410--&gt; There are dozens of people who have these skills, and they edit many wikis. They usually focus on their home wiki and relatively rarely communicate with contributors from other wikis or other languages. Even though the underlying technology is the same everywhere, there is no true global community of template developers that would be comparable to the global community of MediaWiki core and extensions developers. There are cases of cross-wiki collaboration on certain templates, but they are inconsistent.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:411--&gt; There are also many wikis in which there are no editors who have these skills. They either copy templates and modules from other wikis without fully understanding how they work and without the ability to localize and maintain them effectively, or they don’t use templates at all.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:412--&gt; This situation is far from optimal.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:522--&gt; The template and module developers’ skills need more appreciation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:523--&gt; They develop truly needed features, and they are embedded in their editors communities.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:524--&gt; In wikis in many languages, the template developers come up with innovative features for structured content, data presentation, and modularization.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:525--&gt; These innovations could be useful in many wikis, but currently there is no convenient mechanism to achieve this.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:413--&gt;
And of course, any solution for these problems must not come up with new technologies that will discard the many years of hands-on experience that the template maintainers have acquired. Hence, there must be as few changes as possible in the syntax for developing templates and modules. The things that need to change are the way in which they are deployed and propagated across wikis, and the way in which the human-readable strings in them are localized (translated).&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== The proposed solution: Summary == &lt;!--T:30--&gt;

&lt;!--T:140--&gt;
There are already many features of MediaWiki that are global across wikis:
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:466--&gt; images (using [[&lt;tvar name=1&gt;:commons:&lt;/tvar&gt;|Commons]])&lt;/translate&gt;
* {{pll|Extension:GlobalBlocking|2=&lt;translate&gt;&lt;!--T:467--&gt; blocking&lt;/translate&gt;}}
* &lt;translate&gt;&lt;!--T:468--&gt; user accounts&lt;/translate&gt; ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=&lt;translate&gt;&lt;!--T:469--&gt; preferences&lt;/translate&gt;}}
* {{pll|Extension:GlobalUserPage|2=&lt;translate&gt;&lt;!--T:470--&gt; user pages&lt;/translate&gt;}}
* {{pll|Extension:GlobalCssJs|2=&lt;translate&gt;&lt;!--T:471--&gt; user JS and CSS pages&lt;/translate&gt;}}
* &lt;translate&gt;&lt;!--T:481--&gt; global watchlist is in active development as of late 2020&lt;/translate&gt; ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* &lt;translate&gt;&lt;!--T:472--&gt; and some others.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:31--&gt;
'''It must be possible to store templates and modules in a global repository, too, and to localize them as robustly as it is done with extensions.'''

&lt;!--T:32--&gt;
Global templates and modules will empower template maintainers in all wikis by letting them collaborate more easily on developing the templates’ code.

&lt;!--T:305--&gt;
Global templates and modules will empower translators and localizers by allowing them to focus on translating just the user interface strings (“messages”), without having to look for strings in the code, and by allowing them to use the same skills and tools for translating templates and MediaWiki extensions.

&lt;!--T:306--&gt;
Global templates and modules will empower content editors in all wikis to write and translate content that uses these templates without having to dive into the differences and to relearn different rules and skills in each wiki.

&lt;!--T:33--&gt;
The syntax for developing templates and modules, and the general template maintenance and deployment cycle will not change, so all the skills that the template maintainers have acquired over the years will remain relevant.

&lt;!--T:34--&gt;
All wikis will be able to use the global templates, but not forced to do this. Communities will keep their capability to override any global functionality, design, workflows, and data.

&lt;!--T:35--&gt;
Localizing templates will be as convenient as localizing MediaWiki extensions.&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== The proposed solution: Detailed requirements == &lt;!--T:36--&gt;

=== Templates must be able to be semantic and global === &lt;!--T:37--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:141--&gt; ''Semantic'' means that other software components, especially Visual Editor and Content Translation, must have a general way to understand that a template exists and that it provides certain functionality, so that it will be possible to insert it into a page as an infobox, a citation, a maintenance tag, etc., and not only as a generic template.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:503--&gt; Currently, the closest thing to making templates semantic is TemplateData, but it only describes the template’s parameters.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:504--&gt; It doesn’t, for example, help Visual Editor add an “Insert infobox” button to the toolbar.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:38--&gt;
''Global'' means that a template’s code must be maintained in one place and usable in all wikis.

=== Making templates semantic === &lt;!--T:39--&gt;
&lt;/translate&gt;
{{Tracked|T103630}}
{{Tracked|T103624}}
&lt;translate&gt;
&lt;!--T:142--&gt;
Templates have never been robustly semantic, in the sense of being easy to handle by software that processes pages.

&lt;!--T:40--&gt;
There are only a few examples of templates that were made semantic:
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:41--&gt; Various reference templates, which are usable from the Visual Editor toolbar “&lt;tvar name=1&gt;{{int|citoid-citoidtool-title}}&lt;/tvar&gt;” button.&lt;/translate&gt; &lt;translate&gt;&lt;!--T:454--&gt; They require writing a lot of separate code to configure Citoid on each wiki that wants to use them.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:42--&gt; “Citation needed”, which was adapted to Visual Editor in late 2019.&lt;/translate&gt; &lt;translate&gt;&lt;!--T:533--&gt; It also requires configuration on each wiki.&lt;/translate&gt; &lt;translate&gt;&lt;!--T:534--&gt; For example: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|English]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|Hebrew]], [[:sl:MediaWiki:Visualeditor-template-tools-definition.json|Slovene]].&lt;/translate&gt; &lt;translate&gt;&lt;!--T:535--&gt; As of this writing, French, Spanish, and most other languages are not configured for this, even though they have templates of this kind.&lt;/translate&gt; ({{Phab|T211243}})
* &lt;translate&gt;&lt;!--T:43--&gt; Templates for mentioning users in the Flow extension, which require local configuration, too.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:44--&gt; Some dump processing and research tools can parse English Wikipedia’s WikiProject page assessment templates, which are usually added to talk pages.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:445--&gt; The GrowthExperiments extension suggests editors to perform certain tasks in articles based on the templates that are transcluded in them. The template names have to be configured manually by writing JSON files separately in each wiki. For example: [[:cs:MediaWiki:NewcomerTasks.json|Czech]], [[:vi:MediaWiki:NewcomerTasks.json|Vietnamese]], [[:ko:MediaWiki:NewcomerTasks.json|Korean]], [[:ar:MediaWiki:NewcomerTasks.json|Arabic]].&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:45--&gt; The PageTriage extension is configured to work with English Wikipedia’s hatnote templates (also known as “tags”).&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:46--&gt;
In the case of PageTriage, the extension essentially hard-codes a single wiki’s templates, making it unusable in other wikis without a significant rewrite. Even if the on-wiki configuration step is small, as it is with the Flow example, it still needs to be done. This doesn’t scale well for the 900 wikis that Wikimedia has, and the thousands that it will have in the future.

&lt;!--T:47--&gt;
These things should be global by default, so that they will be immediately usable in at least a basic default configuration on all wikis at once by extensions, bots, dump analyzers, etc.

=== Storage and delivery === &lt;!--T:48--&gt;
&lt;/translate&gt;
{{Tracked|T6547}}
{{Tracked|T91162}}
&lt;translate&gt;
&lt;!--T:143--&gt;
The global templates and modules can be stored in a central wiki (Meta, Commons, or a whole new wiki), and it can even be &lt;tvar name=1&gt;{{ll|Gerrit}}&lt;/tvar&gt; or another repository.

&lt;!--T:49--&gt;
The best solution is probably creating a new wiki that will store them, without getting mixed up with images, general community discussion, etc.

&lt;!--T:50--&gt;
Using Gerrit as storage for templates and modules code is technically possible, but it would lose an important element of accessibility for template maintainers: editing a template in a wiki page is much easier and familiar to the vast majority of template maintainers than making Git commits and waiting for code review. Therefore, Gerrit probably shouldn’t become a way for storing the template and module code, at least not the primary one.

&lt;!--T:51--&gt;
Global templates and modules must be stored in a common repository that can be edited by most wiki editors. Rules about blocking and special permissions should initially be similar to the rules in other wikis: everything should be open by default, and it must be possible to protect very common, sensitive, or frequently-vandalized templates. More detailed rules about protection levels can be developed by the editors community later.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:510--&gt; The code of the templates in the central repository will use the generic English names of tags such as &lt;tvar name=section&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt;, parser functions such as &lt;tvar name=ifexist&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt; or &lt;tvar name=invoke&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt;, and magic words such as &lt;tvar name=displaytitle&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt;.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:52--&gt; How the templates are delivered to the target wikis is a question of internal engineering and architecture, as long as the other requirements are addressed.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:505--&gt; These questions were discussed in the past by some platform developers, for example around the [[Requests for comment/Shadow namespaces|Shadow namespaces]] project.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:506--&gt; This document tries to address related questions of how it works for the user who edits a page that uses a template, or who maintains the template itself—how to write it in a localizable way; how is it translated; how is it locally customized; etc.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:507--&gt; These questions weren’t addressed sufficiently in the previous architectural discussions on the topic.&lt;/translate&gt;

&lt;translate&gt;
=== Templates must remain easy to modify === &lt;!--T:53--&gt;

&lt;!--T:144--&gt;
An important feature of how templates currently work is that they are edited just like wiki pages and immediately become functional after publishing without review or deployment. This is somewhat dangerous because a bad edit can ruin many pages, but the fact is that it works mostly well.

&lt;!--T:54--&gt;
This ease must be preserved. Community members who maintain templates will most likely reject moving to a new system that will require them to learn new skills and drag every change through an exhausting review and deployment phase. This probably means that storing the templates in Gerrit is not going to work, unless, perhaps, the process for review and deployment will be ''much'' easier than it is for extensions.

=== It must be possible to make some templates non-global === &lt;!--T:55--&gt;

&lt;!--T:145--&gt;
Not all templates should be forced to be global.
&lt;/translate&gt;
{{Tracked|T165053}}
&lt;translate&gt;
&lt;!--T:56--&gt;
In fact, some templates should be local because they implement a functionality that is unique to a certain language. By their nature, such templates don’t need to be translated, and there should be a way to give a hint to both human editors and translation tools (such as Content Translation) that they don’t need to be adapted, and can be skipped or substituted. This is a part of the effort to make templates more semantic.

=== It must be possible to override some functionality or appearance of a global template === &lt;!--T:57--&gt;

&lt;!--T:146--&gt;
No community should feel that a functionality is imposed on it by some powerful external player, like the English Wikipedia community, the Wikidata community, the WMF, or anybody else. Global templates should be developed and used collaboratively for the common benefit. Most of the time, it should work for everybody.

&lt;!--T:313--&gt;
Sometimes some communities will have strong opinions about wanting to have particular functionality or design that will be different in their language or project, or to show an infobox with information that is different from what is shown in other projects, or not to show it at all. The capability to override things locally must be allowed from the start. (Or rather, it must not be taken away.)

=== A global template must be immediately usable in every wiki === &lt;!--T:60--&gt;

&lt;!--T:147--&gt;
Just like a global user page is immediately available in every wiki in which there is no local user page, every template or module that is created on the global infrastructure must be immediately usable in every wiki.

&lt;!--T:387--&gt;
This must not require ''any'' extra steps, such as copying wiki pages, creating wrapper templates with a local name, administrator intervention, waiting for hours for caches to refresh, etc.

&lt;!--T:388--&gt;
After the central version is updated, the updated version will be immediately shown everywhere. To prevent vandalism, the editors community will develop policies on permissions and protection levels.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:389--&gt; If the user interface strings (also known as “messages”) were not translated, the template will nevertheless be usable, and the strings will be shown in the [[&lt;tvar name=1&gt;Special:MyLanguage/fallback language&lt;/tvar&gt;|fallback language]].&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:536--&gt; See the sections on localization for more details.&lt;/translate&gt;

&lt;translate&gt;
=== Localization of user-facing strings === &lt;!--T:61--&gt;
&lt;/translate&gt;
{{tracked|T238411}}
&lt;translate&gt;
==== It must be possible to translate all user-facing strings ==== &lt;!--T:62--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:148--&gt; The user interface strings (messages) of core MediaWiki, extensions, and some external tools such as [[&lt;tvar name=1&gt;:m:Community Tech/Pageview stats tool&lt;/tvar&gt;|Pageviews]] are translated conveniently and robustly on &lt;tvar name=2&gt;translatewiki.net&lt;/tvar&gt;.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:537--&gt; This localization process is familiar to at least some editors in all languages.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:63--&gt;
It’s currently not possible to do the same with templates. Multilingual sites such as Commons and mediawiki.org have the “[[commons:Template:Translatable navigation template|TNT]]” system for translating some templates, but it’s very complicated and cannot be reused for Wikipedia, Wikisource, etc. In 2021, this became more robust thanks to the "language-aware transclusion" feature, but it still needs some improvements.

&lt;!--T:64--&gt;
Ideally, it should be possible to translate templates just like core and extensions, using a wiki with the Translate extension.

&lt;!--T:65--&gt;
The translated string must become usable immediately after the translation is submitted using the Translate interface.

&lt;!--T:66--&gt;
It can be possible to edit the user interface strings in raw wiki pages, but ideally they should be edited primarily through a dedicated translation interface.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:380--&gt; Translators should be able to focus on translating nothing but text.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:526--&gt; Seeing any code around it makes it difficult for people who are not experienced with programming and JSON files to contribute easily.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:527--&gt; In addition, editing translations into languages that are written from right to left in raw text files is extremely inconvenient.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:528--&gt; The Translate extension already addresses all of these issues.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:172--&gt;
The template documentation pages must be translatable as well. It’s mostly enough to do it using the page translation feature of the Translate extension, but it may require some adaptations.

==== The language in which the strings are shown to the user ==== &lt;!--T:67--&gt;
&lt;/translate&gt;
{{Tracked|T313748}}
&lt;translate&gt;
&lt;!--T:149--&gt;
Templates are primarily used when they are integrated into content, so by default the translated messages must be shown in the wiki’s content language.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:68--&gt; Some templates, however, are used as UI elements.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:538--&gt; Therefore, perhaps it makes sense to also allow showing the translated strings in the user language, when it’s different from the wiki content language.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:539--&gt; This may be particularly relevant for multilingual sites such as Commons, Wikidata, Meta, and &lt;tvar name=1&gt;mediawiki.org&lt;/tvar&gt;.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:69--&gt; MediaWiki’s usual fallback language chains must be used when a translation is not available.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:540--&gt; For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:541--&gt; The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/translate&gt;

&lt;translate&gt;

==== Message keys ==== &lt;!--T:70--&gt;

&lt;!--T:150--&gt;
Messages should be represented as keys, similarly to how it is done in MediaWiki core, extensions, and tools.

&lt;!--T:71--&gt;
Writing translatable strings will probably be the largest change in the template development process that template maintainers will have to get used to. Hard-coded strings will have to be separated and moved to messages organized by key. It must be made as easy as possible not only for the translators, but also for the template maintainers. Otherwise, they won’t actually do it, and the feature will be effectively rejected.

&lt;!--T:72--&gt;
To easily make keys globally unique, it’s probably OK to automatically include the global template name in the message key.

==== Transitioning tools ==== &lt;!--T:416--&gt;
&lt;/translate&gt;
{{Tracked|T245737}}
&lt;translate&gt;
&lt;!--T:417--&gt;
A tool should be developed that will help the transitioning of a template or a module to central storage. It can do the following steps:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:418--&gt; Export a template from a local wiki and import it into the global wiki.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:419--&gt; Export all the templates that are used by this template (cascading).&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:420--&gt; Identify the human-readable strings, convert them to a list with keys, and replace them with keys in the template’s source code.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:434--&gt; Import the template’s documentation page and TemplateData.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:455--&gt; Import the necessary CSS pages.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:421--&gt;
In most cases, this automatic process probably cannot create a fully usable and robust template or module, but it can help begin the transitioning process.

==== Organizing messages ==== &lt;!--T:73--&gt;

&lt;!--T:151--&gt;
The Translate extension organizes messages by groups, also known as “projects”, which can be further organized by aggregate groups. For example, Article Placeholder, Score, and Poem are all groups that represent the corresponding MediaWiki extensions, and they are all included in the “Extensions used by Wikimedia - Advanced” aggregate group, along with many other extensions.

&lt;!--T:74--&gt;
Projects that represent MediaWiki extensions are configured in YAML files in the translatewiki repository and shown in the Translate user interface in a project selector, also known as “message group selector”.

&lt;!--T:75--&gt;
Since there are many more templates than extensions, some modifications may be needed in the way the Translate extension handles message groups to accommodate templates translation.

&lt;!--T:76--&gt;
Each template should be a message group. Closely related templates should be grouped in an aggregate message group. They can be similar to the categories in which they are stored, and in fact, the categories may even be reused. Editing files in a Git repository to organize these message groups is probably not desirable, because it’s too complex and slow.

&lt;!--T:77--&gt;
It would be nice to show group and template names as localized in the selector, but it’s also OK if they are shown in English. If it’s good enough for extension localizers, it’s good enough for template localizers, too.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:441--&gt; Templates must be shown as message groups on the Translate extension’s Language statistics special page (&lt;tvar name=1&gt;Special:LanguageStats&lt;/tvar&gt;).&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:542--&gt; This will help localizers find what templates need translation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:543--&gt; This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:442--&gt; There will be thousands of templates, so it will be nice if the table’s design corresponds to this somehow.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:443--&gt; The table should show on how many pages is each template transcluded and make it possible to order the rows by this number, to help localizers prioritize what is more important to translate.&lt;/translate&gt;

&lt;translate&gt;

==== Finding how to translate a template ==== &lt;!--T:78--&gt;

&lt;!--T:152--&gt;
Every template description page needs to have a direct link to translating it to the user’s language.
&lt;/translate&gt;
{{Tracked|T64695}}
&lt;translate&gt;&lt;!--T:314--&gt; Some templates use Wikidata labels as part of their UI instead of hard-coding strings.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:484--&gt; This is done at the moment in [[:commons:Wikidata Infobox|Wikidata Infobox]] on Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (Infobox person) in the Catalan Wikipedia, and in several other templates.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:485--&gt; These labels and values can be localized in Wikidata itself.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:486--&gt; Such usage cannot cover all the needs of template localization, but it is legitimate and useful for particular purposes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:487--&gt; As long as this is properly described in the template documentation, this can continue to be used, and probably doesn’t need special infrastructure adaptations.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:488--&gt; (Perhaps the translation of the relevant labels and values can be somehow integrated into the Translate interface for localizing the template, but this is optional.)&lt;/translate&gt;

&lt;translate&gt;
==== Message parameters and magic words ==== &lt;!--T:422--&gt;

&lt;!--T:423--&gt;
In core MediaWiki and extensions, many messages have parameters, sometimes also known as “placeholders”. They are named $1, $2, etc., and they are filled in run time. Parameters are particularly important for making messages robustly translatable because different languages have different word order.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:424--&gt; Something like this is needed in templates, too, although it is possible that the form does not have to be $1, $2, but template-like parameters with triple curly braces (&lt;tvar name=3&gt;&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;&lt;/tvar&gt;).&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:544--&gt; This is to be decided according to considerations of parsing and localization convenience.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:425--&gt;
The magic words PLURAL, GENDER, and GRAMMAR must be supported in template messages as in MediaWiki messages.

==== Message documentation ==== &lt;!--T:426--&gt;

&lt;!--T:427--&gt;
In core MediaWiki and extensions, every translatable message is documented for the convenience of developers and translators. The documentation may include information about where the message appears, what the $1, $2, etc. parameters are, whether the word is a verb or an adjective, etc. This documentation is stored as pseudo-language with the code qqq.

&lt;!--T:428--&gt;
Such documentation will be useful for template translation, too. How it is stored is a question of technical architecture. Perhaps it can be combined with TemplateData, perhaps it can be stored as a qqq language, and perhaps it can be something else.

==== Source language ==== &lt;!--T:429--&gt;

&lt;!--T:430--&gt;
Templates will be imported to the global storage not only from English-language projects, but from wikis in many languages. More than ever, the localization tools must support translation from any language and not only from English.

==== Fuzzying ==== &lt;!--T:431--&gt;

&lt;!--T:432--&gt;
In core MediaWiki and extensions and in translatable pages, if the source message in English changes, the message is automatically marked as outdated or “fuzzy”. The existing translations continue to work, but are shown to translators as needing an update. (The translation manager can also mark a message as not needing fuzzying.)

&lt;!--T:433--&gt;
A similar mechanism will be needed for template localization. However, since it would be nice not to force English as the source language, there should be more ways to mark messages as fuzzy.

==== Localization considerations for modules ==== &lt;!--T:79--&gt;
&lt;/translate&gt;
{{Tracked|T238417}}
&lt;translate&gt;&lt;!--T:153--&gt; Lua modules can load and parse translatable MediaWiki strings, but there is no defined way for storing these strings for Lua modules that are maintained as wiki pages.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:489--&gt; It is possible to package Lua modules as parts of extensions, and then they are able to load messages from the extensions’ &lt;tvar name=1&gt;i18/*.json&lt;/tvar&gt; files, but this is done in very few extensions at the moment.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:490--&gt; Rewriting templates in Lua may be a more robust solution from the engineering point of view, but Lua will not necessarily be embraced by all existing template maintainers, and their cooperation will be crucial to the project’s success, so this cannot be done to all templates.&lt;/translate&gt;

{{Tracked|T209310|resolved}}
&lt;translate&gt;&lt;!--T:440--&gt; Some very internal, technical modules that are commonly used, rarely changed, and don’t require internationalization can probably be painlessly moved into the Scribunto extension itself.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:545--&gt; Some examples are [[Module:No globals|No globals]] and [[Module:Arguments|Arguments]].&lt;/translate&gt;

&lt;translate&gt;
=== Localizing the template name === &lt;!--T:307--&gt;
&lt;/translate&gt;
{{Tracked|T239294}}
&lt;translate&gt;
&lt;!--T:102--&gt;
The template may have a different name in every language, but it must be directly connected to the central storage.

&lt;!--T:308--&gt;
Global templates and modules are supposed to be immediately usable in all wikis without any extra steps, so it must be possible to transclude a global template in a local wiki page using its global name. The cross-wiki editors community shall decide what will be the policy for these global names.

&lt;!--T:160--&gt;
Similarly to parameter names, templates may have different names in different languages, and this must be preserved. There must be a structured way to translate template names. Perhaps Wikidata sitelinks can play a role, but not necessarily.

&lt;!--T:103--&gt;
If this is not done, editors will either avoid global templates, or wrap the global template in a local template with a translated name, and this will probably cause the template to lose the connection to the global entity. This is not desirable and misses the whole point of the project.

&lt;!--T:309--&gt;
Template names must only be translated to languages that can be content languages of wikis. Translation to Formal German or British English are probably unnecessary. There may be a way to have aliases or redirects. Language variants, for example for Serbian and Chinese, must be supported according to these languages’ needs.

&lt;!--T:310--&gt;
If a local template exists in a wiki and has the same name as a localized name of a global template, the local template will be used. This is similar to how local files with identical names override global files on Commons, and how local messages in the MediaWiki space override the localization coming from the code.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:311--&gt; Lua module names are often localized, too.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:546--&gt; Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/translate&gt;

&lt;translate&gt;
=== Localizing parameters === &lt;!--T:88--&gt;

==== Localizing parameter names ==== &lt;!--T:89--&gt;

&lt;!--T:157--&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.

&lt;!--T:90--&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.

&lt;!--T:446--&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.

&lt;!--T:91--&gt;
These translations of parameter names must be validated:&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:92--&gt; they must not include invalid characters&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:93--&gt; they must not be repeated within one template in one language&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:94--&gt; ''Anything else?''&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:415--&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.&lt;/translate&gt;
{{anchor|AutomaticParameterTranslation}}
&lt;translate&gt;

==== Automatic parameter translation ==== &lt;!--T:298--&gt;
&lt;/translate&gt;
{{Tracked|T243150}}
&lt;translate&gt;
&lt;!--T:299--&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:

&lt;!--T:300--&gt;
Input:&lt;/translate&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
&lt;!--T:301--&gt;
Output:
&lt;/translate&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
&lt;!--T:447--&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.

&lt;!--T:302--&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.

&lt;!--T:303--&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.

&lt;!--T:304--&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.

==== Nameless parameters ==== &lt;!--T:95--&gt;

&lt;!--T:158--&gt;
Nameless numbered parameters must continue working, of course.

&lt;!--T:96--&gt;
A decision is needed about how will their names be localized.

==== Translating parameter values ==== &lt;!--T:97--&gt;

&lt;!--T:159--&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.

&lt;!--T:98--&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.

&lt;!--T:99--&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.

&lt;!--T:100--&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.

&lt;!--T:101--&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.

&lt;!--T:439--&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.

=== Text direction === &lt;!--T:80--&gt;

&lt;!--T:154--&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.

&lt;!--T:81--&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.

=== Bots === &lt;!--T:377--&gt;

&lt;!--T:378--&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.

&lt;!--T:379--&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.

=== Transitioning the templates from the large wikis to central storage === &lt;!--T:82--&gt;

&lt;!--T:155--&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.

&lt;!--T:83--&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:119--&gt; The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:120--&gt; Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:121--&gt; Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:315--&gt; Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:122--&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.

&lt;!--T:58--&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.

&lt;!--T:59--&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.

=== It must be possible to use templates completely in both wiki syntax and in visual editing === &lt;!--T:86--&gt;

&lt;!--T:156--&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.

&lt;!--T:87--&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.

=== Other features related to templates === &lt;!--T:104--&gt;

&lt;!--T:161--&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.

==== Core MediaWiki ==== &lt;!--T:316--&gt;
&lt;/translate&gt;
{{Tracked|T238412}}
&lt;translate&gt;
&lt;!--T:312--&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.

&lt;!--T:317--&gt;
The “&lt;tvar name=1&gt;{{int|Whatlinkshere}}&lt;/tvar&gt;” page must keep working, and remain useful for global transclusions.

==== TemplateData ==== &lt;!--T:105--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:438--&gt; It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:125--&gt; The “&lt;tvar name=wikitextFormat&gt;{{int|Templatedata-modal-title-templateformat}}&lt;/tvar&gt;” parameter (&lt;tvar name=inline&gt;{{int|Templatedata-modal-format-inline}}&lt;/tvar&gt;, &lt;tvar name=block&gt;{{int|Templatedata-modal-format-block}}&lt;/tvar&gt;, &lt;tvar name=custom&gt;{{int|Templatedata-modal-format-custom}}&lt;/tvar&gt;) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/translate&gt;

&lt;translate&gt;
==== Citoid ==== &lt;!--T:458--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:459--&gt; [[Citoid]] has to be configured on every wiki separately using JSON files, such as &lt;tvar name=citoid-example-link&gt;[[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]&lt;/tvar&gt;. In the global templates age, it must become possible to share these files, so that the “&lt;tvar name=citoidtool-title&gt;{{int|citoid-citoidtool-title}}&lt;/tvar&gt;” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/translate&gt;

&lt;translate&gt;
==== TemplateStyles ==== &lt;!--T:107--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:126--&gt; There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/translate&gt;

&lt;translate&gt;
==== TemplateSandbox ==== &lt;!--T:109--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:127--&gt; Special:TemplateSandbox must keep working.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:128--&gt; It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/translate&gt;

&lt;translate&gt;
==== TemplateWizard ==== &lt;!--T:111--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:129--&gt; The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:130--&gt; TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/translate&gt;

&lt;translate&gt;
==== Wikibase ==== &lt;!--T:113--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:131--&gt; Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:132--&gt; It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/translate&gt;

&lt;translate&gt;
==== VisualEditor ==== &lt;!--T:115--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:133--&gt; VisualEditor obviously needs to be able to insert both global and local templates.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:134--&gt; VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/translate&gt;

&lt;translate&gt;
== Development and deployment == &lt;!--T:456--&gt;

&lt;!--T:460--&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:461--&gt; '''{{&lt;tvar name=1&gt;pll|Translatable modules&lt;/tvar&gt;|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:462--&gt; '''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:463--&gt; '''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:464--&gt; '''Global templates''': Complete the project with making the templates global.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:465--&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.

&lt;!--T:457--&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:162--&gt; Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:497--&gt; Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:498--&gt; Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:499--&gt; This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Imagine a world == &lt;!--T:173--&gt;

&lt;!--T:174--&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/translate&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;translate&gt;&lt;!--T:175--&gt; Task&lt;/translate&gt;
! scope="col" width="40%" |&lt;translate&gt;&lt;!--T:176--&gt; With the current template system&lt;/translate&gt;
! scope="col" width="40%" |&lt;translate&gt;&lt;!--T:177--&gt; With global templates&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:178--&gt; Insert an infobox using the Visual Editor&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:179--&gt; Go to “Insert”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:180--&gt; Click “Template”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:181--&gt; Find the template name somehow.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:182--&gt; Type the template name.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:183--&gt; Fill the fields.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:184--&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/translate&gt;

|
# &lt;translate&gt;&lt;!--T:185--&gt; Go to “Insert”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:186--&gt; Click “Infobox”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:187--&gt; Select the infobox type you want.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:188--&gt; Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:189--&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:190--&gt; Insert an infobox using the wiki syntax editor&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:191--&gt; Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:192--&gt; Mostly manual: Copy from a similar article and change the parameter values.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:193--&gt; Use TemplateWizard (hoping that it is configured for your wiki):&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:194--&gt; Click the puzzle piece button.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:195--&gt; Find the template name somehow.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:196--&gt; Type the template name.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:197--&gt; Fill the parameters one by one using the form.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:198--&gt; If you want, you can still do all the same things as with the current template system.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:199--&gt; But you will also have these additional optional features:&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:200--&gt; To select a suggested infobox from a list instead of typing the name manually.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:201--&gt; To have the parameter values auto-filled.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:202--&gt; To have the same process for every wiki.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:203--&gt; Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:204--&gt; If you have time and necessary skills:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:205--&gt; Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:206--&gt; Copy the underlying modules, if necessary.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:207--&gt; Copy the TemplateStyles, if necessary.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:208--&gt; Copy the documentation and translate it in the wiki syntax editor.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:209--&gt; Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:210--&gt; Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:211--&gt; Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/translate&gt;
#&lt;translate&gt;&lt;!--T:212--&gt; If you don’t have time or necessary skills, you have two options:&lt;/translate&gt;
##&lt;translate&gt;&lt;!--T:213--&gt; Make a simpler template with fewer features.&lt;/translate&gt;
##&lt;translate&gt;&lt;!--T:214--&gt; Just give up.&lt;/translate&gt;
#&lt;translate&gt;&lt;!--T:215--&gt; '''Repeat the process for every language and every wiki.'''&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:216--&gt; If the template is in the global repository, then:&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:217--&gt; Go to the template documentation page.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:218--&gt; Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:219--&gt;
That’s it, the template is fully usable in your language.

&lt;!--T:220--&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:221--&gt; Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:222--&gt; Three options:&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:223--&gt; Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:224--&gt; Develop it by yourself.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:225--&gt; Give up and stay with the older version.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:226--&gt; Just translate the new strings. All the new features are already available in all wikis.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:289--&gt; Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:290--&gt; This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:291--&gt; The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:227--&gt; Translate an article from English, French, or Russian into your language using Content Translation&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:228--&gt; Open the article in Content Translation.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:229--&gt; Click the Infobox.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:230--&gt; If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:231--&gt; If no-one imported the infobox into your language, skip it.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:232--&gt; Translate the prose of the first paragraph.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:233--&gt; '''Carefully''' check that all of these templates were correctly adapted:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:234--&gt; IPA pronunciation templates&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:235--&gt; Native language name templates&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:236--&gt; Citation needed&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:237--&gt; Unit conversion&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:238--&gt; Blockquote&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:239--&gt; Country flags&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:240--&gt; Various others&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:241--&gt; Repeat steps 3 and 4 until everything you want is translated.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:242--&gt; Publish the article.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:243--&gt; Clean up incorrectly published wiki syntax.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:244--&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:245--&gt; Open the article in Content Translation.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:246--&gt; Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:247--&gt; Translate the prose of the first paragraph.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:248--&gt; All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:249--&gt; Repeat steps 3 and 4 until everything you want is translated.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:250--&gt; Publish the article.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:251--&gt; (Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:252--&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:253--&gt; Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:254--&gt; Check that a corresponding template exists in the target language. If it does:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:255--&gt; Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:256--&gt; If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:257--&gt; If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:258--&gt; Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:259--&gt; Find a similar citation template and use it.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:260--&gt; Just copy the text of the citation without formatting and structure.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:261--&gt; Give up and publish the article without the reference.&lt;/translate&gt;
| &lt;translate&gt;&lt;!--T:262--&gt; In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:293--&gt;
In the wiki syntax editor:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:294--&gt; Copy.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:295--&gt; Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:296--&gt; Paste the result.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:297--&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:390--&gt; Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/translate&gt;

&lt;small&gt;&lt;translate&gt;&lt;!--T:391--&gt; This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[&lt;tvar name=1&gt;w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0&lt;/tvar&gt;|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/translate&gt;&lt;/small&gt;
|
# &lt;translate&gt;&lt;!--T:392--&gt; Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:393--&gt; In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:394--&gt; In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:395--&gt; In every wiki: Copy the module from the central storage to your wiki.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:396--&gt; In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:397--&gt; In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:398--&gt; Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:399--&gt; Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:400--&gt; In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:401--&gt; In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:402--&gt; In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:405--&gt; In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:403--&gt; Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:404--&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:263--&gt; Start writing in a new wiki after the domain is created&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:264--&gt; After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:265--&gt; Start copying these templates one by one, or create your own.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:266--&gt; Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:267--&gt; You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:268--&gt; All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:269--&gt; Use a navigation box while reading an article on a mobile phone&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:270--&gt; '''Impossible.'''&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:271--&gt; Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[&lt;tvar name=1&gt;phab:T124168&lt;/tvar&gt;|there is demand for it]].)&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:272--&gt; '''Possible.'''&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:273--&gt; Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:381--&gt; Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:382--&gt; Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:383--&gt; Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:508--&gt; Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:509--&gt; This happens in some of the smaller languages.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:384--&gt; Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:385--&gt; Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:386--&gt; Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:274--&gt; Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:275--&gt; Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:276--&gt; Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:277--&gt; Rewrite the code for every wiki.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:278--&gt; Give up, and research only the English Wikipedia.&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:279--&gt; Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/translate&gt;
|}
&lt;translate&gt;
&lt;!--T:280--&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Status == &lt;!--T:163--&gt;

&lt;!--T:478--&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''

&lt;!--T:164--&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.

&lt;!--T:448--&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;tvar name=bugzilla&gt;&lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt;&lt;/tvar&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called &lt;tvar name=globalwiki&gt;[[:m:Global-Wiki|Global-Wiki]]&lt;/tvar&gt; was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.

&lt;!--T:449--&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[&lt;tvar name=wishlist2015&gt;:m:Community Wishlist Survey 2015&lt;/tvar&gt;|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[&lt;tvar name=wishlist2016&gt;:m:Community Wishlist Survey 2016/Results&lt;/tvar&gt;|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.

&lt;!--T:165--&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/translate&gt;

:&lt;translate&gt;&lt;!--T:166--&gt; ... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:167--&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/translate&gt;

:&lt;translate&gt;&lt;!--T:168--&gt; Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:477--&gt;
[[&lt;tvar name=aw&gt;:m:Abstract Wikipedia&lt;/tvar&gt;|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[&lt;tvar name=awt&gt;:m:Abstract Wikipedia/Tasks&lt;/tvar&gt;|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).

&lt;!--T:479--&gt;
The {{&lt;tvar name=txm&gt;pll|Translatable modules&lt;/tvar&gt;|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.

&lt;!--T:482--&gt;
In [[&lt;tvar name=survey&gt;:m:Community Wishlist Survey 2021&lt;/tvar&gt;|Community Wishlist Survey 2021]], the wish titled “[[&lt;tvar name=tt&gt;:m:Community Wishlist Survey 2021/Translation/Templates translation&lt;/tvar&gt;|Templates translation]]” received [[&lt;tvar name=results&gt;:m:Community Wishlist Survey 2021/Results&lt;/tvar&gt;|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[&lt;tvar name=apt&gt;#AutomaticParameterTranslation&lt;/tvar&gt;|Automatic parameter translation]].

&lt;!--T:480--&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{&lt;tvar name=strategy&gt;pll|Global templates/Relationship to strategy&lt;/tvar&gt;|Global templates/Relationship to strategy}}.

&lt;!--T:169--&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Useful links == &lt;!--T:170--&gt;

&lt;!--T:171--&gt;
Some relevant pages that discuss similar topics:
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:283--&gt; [[&lt;tvar name=1&gt;Platform Evolution/Goals&lt;/tvar&gt;|Platform Evolution/Goals]]&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:284--&gt; [[&lt;tvar name=1&gt;Platform Evolution/Recommendations&lt;/tvar&gt;|Platform Evolution/Recommendations]]&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:285--&gt; [[&lt;tvar name=1&gt;Multilingual Templates and Modules&lt;/tvar&gt;|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:286--&gt; [[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:287--&gt; [[:m:Which templates should be global?]] - an informal list made by various editors&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:372--&gt; [[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/translate&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;translate&gt;&lt;!--T:373--&gt; an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:444--&gt; [[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:474--&gt; [[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:483--&gt; [[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[&lt;tvar name=apt&gt;#AutomaticParameterTranslation&lt;/tvar&gt;|Automatic parameter translation]].&lt;/translate&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>e023d363fcd0d3b4b0c6346f0fb60fbe8a616111</sha1>
  </revision>
  <revision>
    <id>6624152</id>
    <parentid>6624147</parentid>
    <timestamp>2024-07-09T07:36:22Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <minor/>
    <comment>editace</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88742" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
&lt;translate&gt;
&lt;!--T:1--&gt;
This is a proposal for the functional requirements for global templates and modules.

&lt;!--T:288--&gt;
You can also read a {{&lt;tvar name=1&gt;pll|Global templates/Proposed specification, short version&lt;/tvar&gt;|one-page version of this proposal}}.

&lt;!--T:2--&gt;
'''This is not a project that is being executed or planned to be executed by anyone at any defined point in time, at least not yet. This is just an idea, albeit a very detailed one.'''

&lt;!--T:3--&gt;
The eventual goal is to form a cross-team and cross-project commitment on implementing these things, with proper architecture, product and project management, community engagement, etc.

&lt;!--T:4--&gt;
This document does not try to go into the details of technical implementation in terms of storage, caching, delivery, PHP code design, etc. It only tries to define the requirements of how this feature will work from the point of view of the users:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:5--&gt; People who create and maintain templates and modules.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:6--&gt; People who create and edit pages that transclude templates and modules. This includes all editors and all kinds of pages:&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:7--&gt; All levels of experience: from those who are completely new to those who have made thousands of edits&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:8--&gt; All kinds of editing tools: wiki syntax editing, Visual Editor, Content Translation, and others (even bot operators)&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:9--&gt; All wikis: Wikipedia, Wiktionary, Wikivoyage, Wikidata, Incubator, etc., and any new future projects&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:10--&gt; All languages: English, French, Russian, Spanish, Armenian, Persian, Zulu, Manipuri, etc.&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:11--&gt; All kinds of pages: Wikipedia articles, articles talk pages, user talk pages, community discussion pages, WikiProject pages, categories, template documentation pages, etc.&lt;/translate&gt; {{Triple globe}}
{{Global templates nav}}
&lt;translate&gt;
== Elevator pitch == &lt;!--T:12--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:135--&gt; A large part of the functionality of Wikimedia sites is implemented in templates and Lua modules.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:491--&gt; In their current form, they cannot be shared across different wikis and languages.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:492--&gt; Because of this they are hard to integrate with modern ways of creating and editing articles, such as Visual Editor, Wikidata, and Content Translation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:493--&gt; They are also hard to adapt to mobile devices.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:494--&gt; This causes waste of contributors’ effort, and difficulties for new editors and smaller projects.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:495--&gt; It must become possible to share them across wiki sites, similarly to Commons images.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:496--&gt; This will make software development faster and more robust, and it will also let editors focus more on writing.&lt;/translate&gt; {{Triple globe}}

&lt;translate&gt;
== The Problem == &lt;!--T:13--&gt;

&lt;!--T:136--&gt;
'''''General comment: Unless noted otherwise, all references to “templates” also apply to {{&lt;tvar name=1&gt;pll|Extension:Scribunto&lt;/tvar&gt;|Scribunto}} Lua modules.'''''
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:14--&gt; Templates implement features of Wikimedia sites.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:513--&gt; Some of these features are highly prominent, especially the infoboxes, the references, “citation needed”, and many others.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:514--&gt; For a more comprehensive list of functions implemented using templates, see {{&lt;tvar name="Taxonomy"&gt;pll|Global templates/Taxonomy&lt;/tvar&gt;|Taxonomy}}.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:515--&gt; All the readers see them, and all the editors run into them in almost every edit action.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:516--&gt; In addition, they implement many of the sites’ internal community management features: requests for deletion, requests for unblocking, expressing support in discussions, sorting articles for WikiProjects, etc.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:15--&gt;
Templates provide an efficient mechanism to quickly design, deploy, and use repetitive pieces of text and markup in many pages. However, templates also have several acute usability problems for all kinds of editors.

=== Difficulties for all editors in all wikis === &lt;!--T:16--&gt;

==== Wiki syntax editors ==== &lt;!--T:17--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:137--&gt; Templates are often difficult to understand for editors in wiki syntax.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:500--&gt; People who are experienced with using a particular template will probably identify it and be able to edit a page that includes it.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:501--&gt; However, editors who are not familiar with this template will have to look up its documentation when they encounter it, even if they are generally experienced with editing and other templates.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:502--&gt; And editors who have low experience will be baffled by the cryptic text with curly braces, pipe characters, equal signs, etc.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:18--&gt; Using a feature that is implemented as a template requires knowing the template’s name and typing it in curly braces (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) or copying it from another page.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:517--&gt; This is not obvious to new users, and veteran users have to learn each new template separately, too.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:19--&gt; Some wikis have gadgets that add buttons that insert templates that are common in that project to the editing toolbar.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:518--&gt; These are different in each wiki, even though a lot of the templates have similar functionality across projects and languages.&lt;/translate&gt;

&lt;translate&gt;
==== Visual Editor users ==== &lt;!--T:20--&gt;
&lt;/translate&gt;
{{Tracked|T55590}}
{{Tracked|T67173}}
&lt;translate&gt;
&lt;!--T:138--&gt;
VisualEditor users have some advantages with using templates, however there are many issues with them there as well. In particular, there is a similar discoverability issue: In Visual Editor, all the templates’ functionality is hidden behind the “&lt;tvar name=1&gt;{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}&lt;/tvar&gt;” menu item, and the user has to know the template name before using it.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:21--&gt; Visual Editor’s “&lt;tvar name=1&gt;{{int|visualeditor-toolbar-insert}}&lt;/tvar&gt;” menu has items for Math formulas, Egyptian Hieroglyphs, Musical scores, and some other functions that are implemented as extensions, but it doesn’t have items such as “Infobox”, “Citation needed”, “Unit conversion”, “Quotation”, etc.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:450--&gt; All the templates are the same kind of generic item.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:22--&gt; There is one notable exception: Some wikis have the “&lt;tvar name=1&gt;{{int|citoid-citoidtool-title}}&lt;/tvar&gt;” button, which inserts footnotes with reference templates.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:451--&gt; However, it is an exception that proves the rule.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:452--&gt; It requires manual configuration for even basic functionality, this configuration is separate in each wiki, and as a consequence many wikis don’t have this button at all.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:453--&gt; Another comparable exception, which was added in late 2019, is special support for “Citation needed” templates, but this also needs some custom configuration on each and every wiki to actually work.&lt;/translate&gt;

&lt;translate&gt;
=== Difficulties for editors who write in more than one project === &lt;!--T:23--&gt;

&lt;!--T:292--&gt;
Many templates exist in one project, but not in others, and often a template is available, but in a different form. Because of this, it’s difficult or impossible to reuse skills that were acquired in one project: the functionality that the template provides is sometimes unavailable, and sometimes it works differently. This applies not just to wikis in different languages, but also to different wikis in the same language, for example, English Wikipedia and English Wikisource.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:24--&gt; For people editing in different languages, templates make translation harder.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:519--&gt; When translating a page, templates are much harder to handle than the article text (“prose”), whether the translation is done manually or with Content Translation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:520--&gt; Users often have to skip the template or to correct it after the article was published.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:521--&gt; This also causes abandoning translations in progress, because template translation looks intimidating.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:281--&gt;
The most commonly reported issues in Content Translation are about templates.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:25--&gt; Content Translation has a template adaptation feature, which automates some parts of this process, but it works only if a corresponding template exists in both languages, and if all the parameters were meticulously mapped by the template maintainers.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:529--&gt; This must be done for each template in each language separately and manually, and continuously maintained when the source template changes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:530--&gt; This happens even though the templates’ function across the languages is the same most of the time.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:282--&gt;
Ideally, the templates and their parameters should be transferred to the translated page almost completely automatically, so that the translators could focus on writing the prose, as writing the prose is the area where human work is most needed.

&lt;!--T:26--&gt;
A template can be exported from one wiki to another, but once this is done, the template becomes a forked copy. It either stays in the state in which it was exported, or continues to be developed separately, causing incompatibility. Sometimes people keep maintaining the different copies, but this is not robust and cannot scale for the hundreds of wikis that we have.

&lt;!--T:27--&gt;
Template parameters can have the same functionality, but different names in different wikis. They can be adapted using TemplateData aliases, but this is a suboptimal hack: it is not what TemplateData was originally made for, and it has to be done manually for each language pair.

&lt;!--T:28--&gt;
Templates mix together algorithmic logic, human-readable text strings, and formatting. Because of this there is no robust way to translate the templates’ user interface strings, as it is done with MediaWiki core and extensions.

=== Difficulties for editors in smaller wikis === &lt;!--T:29--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:139--&gt; A new wiki project is created by installing core MediaWiki and enabling a default set of extensions.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:531--&gt; In practice this doesn’t create a level playing field because many key features of larger wikis are implemented in templates: infoboxes, citations, maintenance hatnotes (such as &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced|Unreferenced]]&lt;nowiki&gt;}}&lt;/nowiki&gt;), etc.&lt;/translate&gt;

&lt;translate&gt;
=== Difficulties for software developers === &lt;!--T:435--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:436--&gt; It is difficult for developers of MediaWiki core, extensions, bots, and other tools that analyze, generate, or modify wiki page content to build features that depend on the presence of certain templates in a wiki.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:532--&gt; Developers of extensions such as GrowthExperiments, PageTriage, ContentTranslation, some components of Wikibase, and many others, have to either test them in production, which is a bad idea, or to import the templates to their local wikis or an online test wiki.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:437--&gt;
Researchers who get data about wiki content based on templates have to write their analysis code for each wiki separately, and sometimes they end up doing for only one wiki. A notable example is using English Wikipedia’s WikiProject templates to analyze page topics and assess article quality.&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Assumptions == &lt;!--T:414--&gt;

=== Extensions vs Templates: Similarities and differences === &lt;!--T:318--&gt;

&lt;!--T:319--&gt;
One of the main assumptions of this project proposal is that templates and modules are very similar to MediaWiki core and extensions: They are software, and they implement features that the editors community needs. In particular, since templates are usually developed by the editors themselves, it’s obvious that the community ''really'' needs them. The big differences between lie in how they are developed, localized, and deployed.

&lt;!--T:320--&gt;
Templates and modules should become similar to extensions in some key properties that they currently lack, and preserve some good properties that extensions lack. (For ease of understanding by English readers, in the table, examples of templates are given from the English Wikipedia. They could also come from any other wiki and any other language.)
&lt;/translate&gt;

{| class="wikitable vs"
!&lt;translate&gt;&lt;!--T:321--&gt; Property&lt;/translate&gt;
!&lt;translate&gt;&lt;!--T:322--&gt; Core and extensions&lt;/translate&gt;
!&lt;translate&gt;&lt;!--T:323--&gt; Templates&lt;/translate&gt;
!&lt;translate&gt;&lt;!--T:362--&gt; What should be done about this with templates?&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:324--&gt; Implement special kind of content&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:325--&gt; Yes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:326--&gt; image, math, hieroglyphics, score, basic ref&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:327--&gt; Yes.&lt;/translate&gt;
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|&lt;translate&gt;&lt;!--T:328--&gt; └ Special kind of content is easy to insert into pages&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:329--&gt; Yes (using the toolbar).&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:330--&gt; No (unless you learned how to do it).&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:363--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:331--&gt; └ Special kind of content is easy to adapt to mobile devices&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:332--&gt; Mostly yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:333--&gt; Sometimes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:364--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:334--&gt; └ Special kind of content is easy to translate as part of an article&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:335--&gt; Mostly yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:336--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:365--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:337--&gt; Implement page formatting features&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:338--&gt; Yes.&lt;/translate&gt;
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|&lt;translate&gt;&lt;!--T:339--&gt; Yes.&lt;/translate&gt;
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|&lt;translate&gt;&lt;!--T:340--&gt; Implement community workflow processes&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:341--&gt; Yes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:342--&gt; Abuse filter, Check user, Move&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:343--&gt; Yes.&lt;/translate&gt;
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|&lt;translate&gt;&lt;!--T:366--&gt; Should be easy to reuse, but not forced.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:344--&gt; Easy to deploy initial version&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:345--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:346--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:367--&gt; Should be preserved.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:347--&gt; Easy to deploy changes&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:348--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:349--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:368--&gt; Should be preserved.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:350--&gt; Easy to localize&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:351--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:352--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:369--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:353--&gt; Useful on multiple wikis&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:354--&gt; Often.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:355--&gt; Often.&lt;/translate&gt;
|
|-
|&lt;translate&gt;&lt;!--T:374--&gt; Used only on a limited number of wikis&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:375--&gt; Sometimes.&lt;/translate&gt;
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|&lt;translate&gt;&lt;!--T:376--&gt; Sometimes.&lt;/translate&gt;
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|&lt;translate&gt;&lt;!--T:356--&gt; Easy to install and use on multiple wikis&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:357--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:358--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:370--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:359--&gt; Easy to use on a new, recently created wiki&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:360--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:361--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:371--&gt; Should be changed.&lt;/translate&gt;
|}
&lt;translate&gt;
=== Templates and modules development skills === &lt;!--T:406--&gt;

&lt;!--T:407--&gt;
Another important set of assumptions on which this proposal is based is the following:&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:408--&gt; The skills for developing templates and modules are non-trivial. Both templates and modules have numerous obscure features.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:409--&gt; Even though many of the sites’ most notable features are implemented as templates and modules, these skills are often unnoticed, underappreciated, and taken for granted.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:410--&gt; There are dozens of people who have these skills, and they edit many wikis. They usually focus on their home wiki and relatively rarely communicate with contributors from other wikis or other languages. Even though the underlying technology is the same everywhere, there is no true global community of template developers that would be comparable to the global community of MediaWiki core and extensions developers. There are cases of cross-wiki collaboration on certain templates, but they are inconsistent.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:411--&gt; There are also many wikis in which there are no editors who have these skills. They either copy templates and modules from other wikis without fully understanding how they work and without the ability to localize and maintain them effectively, or they don’t use templates at all.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:412--&gt; This situation is far from optimal.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:522--&gt; The template and module developers’ skills need more appreciation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:523--&gt; They develop truly needed features, and they are embedded in their editors communities.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:524--&gt; In wikis in many languages, the template developers come up with innovative features for structured content, data presentation, and modularization.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:525--&gt; These innovations could be useful in many wikis, but currently there is no convenient mechanism to achieve this.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:413--&gt;
And of course, any solution for these problems must not come up with new technologies that will discard the many years of hands-on experience that the template maintainers have acquired. Hence, there must be as few changes as possible in the syntax for developing templates and modules. The things that need to change are the way in which they are deployed and propagated across wikis, and the way in which the human-readable strings in them are localized (translated).&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== The proposed solution: Summary == &lt;!--T:30--&gt;

&lt;!--T:140--&gt;
There are already many features of MediaWiki that are global across wikis:
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:466--&gt; images (using [[&lt;tvar name=1&gt;:commons:&lt;/tvar&gt;|Commons]])&lt;/translate&gt;
* {{pll|Extension:GlobalBlocking|2=&lt;translate&gt;&lt;!--T:467--&gt; blocking&lt;/translate&gt;}}
* &lt;translate&gt;&lt;!--T:468--&gt; user accounts&lt;/translate&gt; ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=&lt;translate&gt;&lt;!--T:469--&gt; preferences&lt;/translate&gt;}}
* {{pll|Extension:GlobalUserPage|2=&lt;translate&gt;&lt;!--T:470--&gt; user pages&lt;/translate&gt;}}
* {{pll|Extension:GlobalCssJs|2=&lt;translate&gt;&lt;!--T:471--&gt; user JS and CSS pages&lt;/translate&gt;}}
* &lt;translate&gt;&lt;!--T:481--&gt; global watchlist is in active development as of late 2020&lt;/translate&gt; ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* &lt;translate&gt;&lt;!--T:472--&gt; and some others.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:31--&gt;
'''It must be possible to store templates and modules in a global repository, too, and to localize them as robustly as it is done with extensions.'''

&lt;!--T:32--&gt;
Global templates and modules will empower template maintainers in all wikis by letting them collaborate more easily on developing the templates’ code.

&lt;!--T:305--&gt;
Global templates and modules will empower translators and localizers by allowing them to focus on translating just the user interface strings (“messages”), without having to look for strings in the code, and by allowing them to use the same skills and tools for translating templates and MediaWiki extensions.

&lt;!--T:306--&gt;
Global templates and modules will empower content editors in all wikis to write and translate content that uses these templates without having to dive into the differences and to relearn different rules and skills in each wiki.

&lt;!--T:33--&gt;
The syntax for developing templates and modules, and the general template maintenance and deployment cycle will not change, so all the skills that the template maintainers have acquired over the years will remain relevant.

&lt;!--T:34--&gt;
All wikis will be able to use the global templates, but not forced to do this. Communities will keep their capability to override any global functionality, design, workflows, and data.

&lt;!--T:35--&gt;
Localizing templates will be as convenient as localizing MediaWiki extensions.&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== The proposed solution: Detailed requirements == &lt;!--T:36--&gt;

=== Templates must be able to be semantic and global === &lt;!--T:37--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:141--&gt; ''Semantic'' means that other software components, especially Visual Editor and Content Translation, must have a general way to understand that a template exists and that it provides certain functionality, so that it will be possible to insert it into a page as an infobox, a citation, a maintenance tag, etc., and not only as a generic template.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:503--&gt; Currently, the closest thing to making templates semantic is TemplateData, but it only describes the template’s parameters.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:504--&gt; It doesn’t, for example, help Visual Editor add an “Insert infobox” button to the toolbar.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:38--&gt;
''Global'' means that a template’s code must be maintained in one place and usable in all wikis.

=== Making templates semantic === &lt;!--T:39--&gt;
&lt;/translate&gt;
{{Tracked|T103630}}
{{Tracked|T103624}}
&lt;translate&gt;
&lt;!--T:142--&gt;
Templates have never been robustly semantic, in the sense of being easy to handle by software that processes pages.

&lt;!--T:40--&gt;
There are only a few examples of templates that were made semantic:
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:41--&gt; Various reference templates, which are usable from the Visual Editor toolbar “&lt;tvar name=1&gt;{{int|citoid-citoidtool-title}}&lt;/tvar&gt;” button.&lt;/translate&gt; &lt;translate&gt;&lt;!--T:454--&gt; They require writing a lot of separate code to configure Citoid on each wiki that wants to use them.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:42--&gt; “Citation needed”, which was adapted to Visual Editor in late 2019.&lt;/translate&gt; &lt;translate&gt;&lt;!--T:533--&gt; It also requires configuration on each wiki.&lt;/translate&gt; &lt;translate&gt;&lt;!--T:534--&gt; For example: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|English]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|Hebrew]], [[:sl:MediaWiki:Visualeditor-template-tools-definition.json|Slovene]].&lt;/translate&gt; &lt;translate&gt;&lt;!--T:535--&gt; As of this writing, French, Spanish, and most other languages are not configured for this, even though they have templates of this kind.&lt;/translate&gt; ({{Phab|T211243}})
* &lt;translate&gt;&lt;!--T:43--&gt; Templates for mentioning users in the Flow extension, which require local configuration, too.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:44--&gt; Some dump processing and research tools can parse English Wikipedia’s WikiProject page assessment templates, which are usually added to talk pages.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:445--&gt; The GrowthExperiments extension suggests editors to perform certain tasks in articles based on the templates that are transcluded in them. The template names have to be configured manually by writing JSON files separately in each wiki. For example: [[:cs:MediaWiki:NewcomerTasks.json|Czech]], [[:vi:MediaWiki:NewcomerTasks.json|Vietnamese]], [[:ko:MediaWiki:NewcomerTasks.json|Korean]], [[:ar:MediaWiki:NewcomerTasks.json|Arabic]].&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:45--&gt; The PageTriage extension is configured to work with English Wikipedia’s hatnote templates (also known as “tags”).&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:46--&gt;
In the case of PageTriage, the extension essentially hard-codes a single wiki’s templates, making it unusable in other wikis without a significant rewrite. Even if the on-wiki configuration step is small, as it is with the Flow example, it still needs to be done. This doesn’t scale well for the 900 wikis that Wikimedia has, and the thousands that it will have in the future.

&lt;!--T:47--&gt;
These things should be global by default, so that they will be immediately usable in at least a basic default configuration on all wikis at once by extensions, bots, dump analyzers, etc.

=== Storage and delivery === &lt;!--T:48--&gt;
&lt;/translate&gt;
{{Tracked|T6547}}
{{Tracked|T91162}}
&lt;translate&gt;
&lt;!--T:143--&gt;
The global templates and modules can be stored in a central wiki (Meta, Commons, or a whole new wiki), and it can even be &lt;tvar name=1&gt;{{ll|Gerrit}}&lt;/tvar&gt; or another repository.

&lt;!--T:49--&gt;
The best solution is probably creating a new wiki that will store them, without getting mixed up with images, general community discussion, etc.

&lt;!--T:50--&gt;
Using Gerrit as storage for templates and modules code is technically possible, but it would lose an important element of accessibility for template maintainers: editing a template in a wiki page is much easier and familiar to the vast majority of template maintainers than making Git commits and waiting for code review. Therefore, Gerrit probably shouldn’t become a way for storing the template and module code, at least not the primary one.

&lt;!--T:51--&gt;
Global templates and modules must be stored in a common repository that can be edited by most wiki editors. Rules about blocking and special permissions should initially be similar to the rules in other wikis: everything should be open by default, and it must be possible to protect very common, sensitive, or frequently-vandalized templates. More detailed rules about protection levels can be developed by the editors community later.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:510--&gt; The code of the templates in the central repository will use the generic English names of tags such as &lt;tvar name=section&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt;, parser functions such as &lt;tvar name=ifexist&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt; or &lt;tvar name=invoke&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt;, and magic words such as &lt;tvar name=displaytitle&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt;.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:52--&gt; How the templates are delivered to the target wikis is a question of internal engineering and architecture, as long as the other requirements are addressed.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:505--&gt; These questions were discussed in the past by some platform developers, for example around the [[Requests for comment/Shadow namespaces|Shadow namespaces]] project.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:506--&gt; This document tries to address related questions of how it works for the user who edits a page that uses a template, or who maintains the template itself—how to write it in a localizable way; how is it translated; how is it locally customized; etc.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:507--&gt; These questions weren’t addressed sufficiently in the previous architectural discussions on the topic.&lt;/translate&gt;

&lt;translate&gt;
=== Templates must remain easy to modify === &lt;!--T:53--&gt;

&lt;!--T:144--&gt;
An important feature of how templates currently work is that they are edited just like wiki pages and immediately become functional after publishing without review or deployment. This is somewhat dangerous because a bad edit can ruin many pages, but the fact is that it works mostly well.

&lt;!--T:54--&gt;
This ease must be preserved. Community members who maintain templates will most likely reject moving to a new system that will require them to learn new skills and drag every change through an exhausting review and deployment phase. This probably means that storing the templates in Gerrit is not going to work, unless, perhaps, the process for review and deployment will be ''much'' easier than it is for extensions.

=== It must be possible to make some templates non-global === &lt;!--T:55--&gt;

&lt;!--T:145--&gt;
Not all templates should be forced to be global.
&lt;/translate&gt;
{{Tracked|T165053}}
&lt;translate&gt;
&lt;!--T:56--&gt;
In fact, some templates should be local because they implement a functionality that is unique to a certain language. By their nature, such templates don’t need to be translated, and there should be a way to give a hint to both human editors and translation tools (such as Content Translation) that they don’t need to be adapted, and can be skipped or substituted. This is a part of the effort to make templates more semantic.

=== It must be possible to override some functionality or appearance of a global template === &lt;!--T:57--&gt;

&lt;!--T:146--&gt;
No community should feel that a functionality is imposed on it by some powerful external player, like the English Wikipedia community, the Wikidata community, the WMF, or anybody else. Global templates should be developed and used collaboratively for the common benefit. Most of the time, it should work for everybody.

&lt;!--T:313--&gt;
Sometimes some communities will have strong opinions about wanting to have particular functionality or design that will be different in their language or project, or to show an infobox with information that is different from what is shown in other projects, or not to show it at all. The capability to override things locally must be allowed from the start. (Or rather, it must not be taken away.)

=== A global template must be immediately usable in every wiki === &lt;!--T:60--&gt;

&lt;!--T:147--&gt;
Just like a global user page is immediately available in every wiki in which there is no local user page, every template or module that is created on the global infrastructure must be immediately usable in every wiki.

&lt;!--T:387--&gt;
This must not require ''any'' extra steps, such as copying wiki pages, creating wrapper templates with a local name, administrator intervention, waiting for hours for caches to refresh, etc.

&lt;!--T:388--&gt;
After the central version is updated, the updated version will be immediately shown everywhere. To prevent vandalism, the editors community will develop policies on permissions and protection levels.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:389--&gt; If the user interface strings (also known as “messages”) were not translated, the template will nevertheless be usable, and the strings will be shown in the [[&lt;tvar name=1&gt;Special:MyLanguage/fallback language&lt;/tvar&gt;|fallback language]].&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:536--&gt; See the sections on localization for more details.&lt;/translate&gt;

&lt;translate&gt;
=== Localization of user-facing strings === &lt;!--T:61--&gt;
&lt;/translate&gt;
{{tracked|T238411}}
&lt;translate&gt;
==== It must be possible to translate all user-facing strings ==== &lt;!--T:62--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:148--&gt; The user interface strings (messages) of core MediaWiki, extensions, and some external tools such as [[&lt;tvar name=1&gt;:m:Community Tech/Pageview stats tool&lt;/tvar&gt;|Pageviews]] are translated conveniently and robustly on &lt;tvar name=2&gt;translatewiki.net&lt;/tvar&gt;.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:537--&gt; This localization process is familiar to at least some editors in all languages.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:63--&gt;
It’s currently not possible to do the same with templates. Multilingual sites such as Commons and mediawiki.org have the “[[commons:Template:Translatable navigation template|TNT]]” system for translating some templates, but it’s very complicated and cannot be reused for Wikipedia, Wikisource, etc. In 2021, this became more robust thanks to the "language-aware transclusion" feature, but it still needs some improvements.

&lt;!--T:64--&gt;
Ideally, it should be possible to translate templates just like core and extensions, using a wiki with the Translate extension.

&lt;!--T:65--&gt;
The translated string must become usable immediately after the translation is submitted using the Translate interface.

&lt;!--T:66--&gt;
It can be possible to edit the user interface strings in raw wiki pages, but ideally they should be edited primarily through a dedicated translation interface.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:380--&gt; Translators should be able to focus on translating nothing but text.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:526--&gt; Seeing any code around it makes it difficult for people who are not experienced with programming and JSON files to contribute easily.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:527--&gt; In addition, editing translations into languages that are written from right to left in raw text files is extremely inconvenient.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:528--&gt; The Translate extension already addresses all of these issues.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:172--&gt;
The template documentation pages must be translatable as well. It’s mostly enough to do it using the page translation feature of the Translate extension, but it may require some adaptations.

==== The language in which the strings are shown to the user ==== &lt;!--T:67--&gt;
&lt;/translate&gt;
{{Tracked|T313748}}
&lt;translate&gt;
&lt;!--T:149--&gt;
Templates are primarily used when they are integrated into content, so by default the translated messages must be shown in the wiki’s content language.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:68--&gt; Some templates, however, are used as UI elements.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:538--&gt; Therefore, perhaps it makes sense to also allow showing the translated strings in the user language, when it’s different from the wiki content language.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:539--&gt; This may be particularly relevant for multilingual sites such as Commons, Wikidata, Meta, and &lt;tvar name=1&gt;mediawiki.org&lt;/tvar&gt;.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:69--&gt; MediaWiki’s usual fallback language chains must be used when a translation is not available.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:540--&gt; For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:541--&gt; The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/translate&gt;

&lt;translate&gt;

==== Message keys ==== &lt;!--T:70--&gt;

&lt;!--T:150--&gt;
Messages should be represented as keys, similarly to how it is done in MediaWiki core, extensions, and tools.

&lt;!--T:71--&gt;
Writing translatable strings will probably be the largest change in the template development process that template maintainers will have to get used to. Hard-coded strings will have to be separated and moved to messages organized by key. It must be made as easy as possible not only for the translators, but also for the template maintainers. Otherwise, they won’t actually do it, and the feature will be effectively rejected.

&lt;!--T:72--&gt;
To easily make keys globally unique, it’s probably OK to automatically include the global template name in the message key.

==== Transitioning tools ==== &lt;!--T:416--&gt;
&lt;/translate&gt;
{{Tracked|T245737}}
&lt;translate&gt;
&lt;!--T:417--&gt;
A tool should be developed that will help the transitioning of a template or a module to central storage. It can do the following steps:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:418--&gt; Export a template from a local wiki and import it into the global wiki.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:419--&gt; Export all the templates that are used by this template (cascading).&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:420--&gt; Identify the human-readable strings, convert them to a list with keys, and replace them with keys in the template’s source code.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:434--&gt; Import the template’s documentation page and TemplateData.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:455--&gt; Import the necessary CSS pages.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:421--&gt;
In most cases, this automatic process probably cannot create a fully usable and robust template or module, but it can help begin the transitioning process.

==== Organizing messages ==== &lt;!--T:73--&gt;

&lt;!--T:151--&gt;
The Translate extension organizes messages by groups, also known as “projects”, which can be further organized by aggregate groups. For example, Article Placeholder, Score, and Poem are all groups that represent the corresponding MediaWiki extensions, and they are all included in the “Extensions used by Wikimedia - Advanced” aggregate group, along with many other extensions.

&lt;!--T:74--&gt;
Projects that represent MediaWiki extensions are configured in YAML files in the translatewiki repository and shown in the Translate user interface in a project selector, also known as “message group selector”.

&lt;!--T:75--&gt;
Since there are many more templates than extensions, some modifications may be needed in the way the Translate extension handles message groups to accommodate templates translation.

&lt;!--T:76--&gt;
Each template should be a message group. Closely related templates should be grouped in an aggregate message group. They can be similar to the categories in which they are stored, and in fact, the categories may even be reused. Editing files in a Git repository to organize these message groups is probably not desirable, because it’s too complex and slow.

&lt;!--T:77--&gt;
It would be nice to show group and template names as localized in the selector, but it’s also OK if they are shown in English. If it’s good enough for extension localizers, it’s good enough for template localizers, too.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:441--&gt; Templates must be shown as message groups on the Translate extension’s Language statistics special page (&lt;tvar name=1&gt;Special:LanguageStats&lt;/tvar&gt;).&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:542--&gt; This will help localizers find what templates need translation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:543--&gt; This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:442--&gt; There will be thousands of templates, so it will be nice if the table’s design corresponds to this somehow.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:443--&gt; The table should show on how many pages is each template transcluded and make it possible to order the rows by this number, to help localizers prioritize what is more important to translate.&lt;/translate&gt;

&lt;translate&gt;

==== Finding how to translate a template ==== &lt;!--T:78--&gt;

&lt;!--T:152--&gt;
Every template description page needs to have a direct link to translating it to the user’s language.
&lt;/translate&gt;
{{Tracked|T64695}}
&lt;translate&gt;&lt;!--T:314--&gt; Some templates use Wikidata labels as part of their UI instead of hard-coding strings.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:484--&gt; This is done at the moment in [[:commons:Wikidata Infobox|Wikidata Infobox]] on Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (Infobox person) in the Catalan Wikipedia, and in several other templates.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:485--&gt; These labels and values can be localized in Wikidata itself.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:486--&gt; Such usage cannot cover all the needs of template localization, but it is legitimate and useful for particular purposes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:487--&gt; As long as this is properly described in the template documentation, this can continue to be used, and probably doesn’t need special infrastructure adaptations.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:488--&gt; (Perhaps the translation of the relevant labels and values can be somehow integrated into the Translate interface for localizing the template, but this is optional.)&lt;/translate&gt;

&lt;translate&gt;
==== Message parameters and magic words ==== &lt;!--T:422--&gt;

&lt;!--T:423--&gt;
In core MediaWiki and extensions, many messages have parameters, sometimes also known as “placeholders”. They are named $1, $2, etc., and they are filled in run time. Parameters are particularly important for making messages robustly translatable because different languages have different word order.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:424--&gt; Something like this is needed in templates, too, although it is possible that the form does not have to be $1, $2, but template-like parameters with triple curly braces (&lt;tvar name=3&gt;&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;&lt;/tvar&gt;).&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:544--&gt; This is to be decided according to considerations of parsing and localization convenience.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:425--&gt;
The magic words PLURAL, GENDER, and GRAMMAR must be supported in template messages as in MediaWiki messages.

==== Message documentation ==== &lt;!--T:426--&gt;

&lt;!--T:427--&gt;
In core MediaWiki and extensions, every translatable message is documented for the convenience of developers and translators. The documentation may include information about where the message appears, what the $1, $2, etc. parameters are, whether the word is a verb or an adjective, etc. This documentation is stored as pseudo-language with the code qqq.

&lt;!--T:428--&gt;
Such documentation will be useful for template translation, too. How it is stored is a question of technical architecture. Perhaps it can be combined with TemplateData, perhaps it can be stored as a qqq language, and perhaps it can be something else.

==== Source language ==== &lt;!--T:429--&gt;

&lt;!--T:430--&gt;
Templates will be imported to the global storage not only from English-language projects, but from wikis in many languages. More than ever, the localization tools must support translation from any language and not only from English.

==== Fuzzying ==== &lt;!--T:431--&gt;

&lt;!--T:432--&gt;
In core MediaWiki and extensions and in translatable pages, if the source message in English changes, the message is automatically marked as outdated or “fuzzy”. The existing translations continue to work, but are shown to translators as needing an update. (The translation manager can also mark a message as not needing fuzzying.)

&lt;!--T:433--&gt;
A similar mechanism will be needed for template localization. However, since it would be nice not to force English as the source language, there should be more ways to mark messages as fuzzy.

==== Localization considerations for modules ==== &lt;!--T:79--&gt;
&lt;/translate&gt;
{{Tracked|T238417}}
&lt;translate&gt;&lt;!--T:153--&gt; Lua modules can load and parse translatable MediaWiki strings, but there is no defined way for storing these strings for Lua modules that are maintained as wiki pages.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:489--&gt; It is possible to package Lua modules as parts of extensions, and then they are able to load messages from the extensions’ &lt;tvar name=1&gt;i18/*.json&lt;/tvar&gt; files, but this is done in very few extensions at the moment.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:490--&gt; Rewriting templates in Lua may be a more robust solution from the engineering point of view, but Lua will not necessarily be embraced by all existing template maintainers, and their cooperation will be crucial to the project’s success, so this cannot be done to all templates.&lt;/translate&gt;

{{Tracked|T209310|resolved}}
&lt;translate&gt;&lt;!--T:440--&gt; Some very internal, technical modules that are commonly used, rarely changed, and don’t require internationalization can probably be painlessly moved into the Scribunto extension itself.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:545--&gt; Some examples are [[&lt;tvar name=1&gt;Module:No globals&lt;/tvar&gt;|No globals]] and [[&lt;tvar name=2&gt;Module:Arguments&lt;/tvar&gt;|Arguments]].&lt;/translate&gt;

&lt;translate&gt;

=== Localizing the template name === &lt;!--T:307--&gt;
&lt;/translate&gt;
{{Tracked|T239294}}
&lt;translate&gt;
&lt;!--T:102--&gt;
The template may have a different name in every language, but it must be directly connected to the central storage.

&lt;!--T:308--&gt;
Global templates and modules are supposed to be immediately usable in all wikis without any extra steps, so it must be possible to transclude a global template in a local wiki page using its global name. The cross-wiki editors community shall decide what will be the policy for these global names.

&lt;!--T:160--&gt;
Similarly to parameter names, templates may have different names in different languages, and this must be preserved. There must be a structured way to translate template names. Perhaps Wikidata sitelinks can play a role, but not necessarily.

&lt;!--T:103--&gt;
If this is not done, editors will either avoid global templates, or wrap the global template in a local template with a translated name, and this will probably cause the template to lose the connection to the global entity. This is not desirable and misses the whole point of the project.

&lt;!--T:309--&gt;
Template names must only be translated to languages that can be content languages of wikis. Translation to Formal German or British English are probably unnecessary. There may be a way to have aliases or redirects. Language variants, for example for Serbian and Chinese, must be supported according to these languages’ needs.

&lt;!--T:310--&gt;
If a local template exists in a wiki and has the same name as a localized name of a global template, the local template will be used. This is similar to how local files with identical names override global files on Commons, and how local messages in the MediaWiki space override the localization coming from the code.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:311--&gt; Lua module names are often localized, too.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:546--&gt; Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;code&gt;require&lt;/code&gt; statements.&lt;/translate&gt;

&lt;translate&gt;
=== Localizing parameters === &lt;!--T:88--&gt;

==== Localizing parameter names ==== &lt;!--T:89--&gt;

&lt;!--T:157--&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.

&lt;!--T:90--&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.

&lt;!--T:446--&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.

&lt;!--T:91--&gt;
These translations of parameter names must be validated:&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:92--&gt; they must not include invalid characters&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:93--&gt; they must not be repeated within one template in one language&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:94--&gt; ''Anything else?''&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:415--&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.&lt;/translate&gt;
{{anchor|AutomaticParameterTranslation}}
&lt;translate&gt;

==== Automatic parameter translation ==== &lt;!--T:298--&gt;
&lt;/translate&gt;
{{Tracked|T243150}}
&lt;translate&gt;
&lt;!--T:299--&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:

&lt;!--T:300--&gt;
Input:&lt;/translate&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
&lt;!--T:301--&gt;
Output:
&lt;/translate&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
&lt;!--T:447--&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.

&lt;!--T:302--&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.

&lt;!--T:303--&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.

&lt;!--T:304--&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.

==== Nameless parameters ==== &lt;!--T:95--&gt;

&lt;!--T:158--&gt;
Nameless numbered parameters must continue working, of course.

&lt;!--T:96--&gt;
A decision is needed about how will their names be localized.

==== Translating parameter values ==== &lt;!--T:97--&gt;

&lt;!--T:159--&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.

&lt;!--T:98--&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.

&lt;!--T:99--&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.

&lt;!--T:100--&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.

&lt;!--T:101--&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.

&lt;!--T:439--&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.

=== Text direction === &lt;!--T:80--&gt;

&lt;!--T:154--&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.

&lt;!--T:81--&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.

=== Bots === &lt;!--T:377--&gt;

&lt;!--T:378--&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.

&lt;!--T:379--&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.

=== Transitioning the templates from the large wikis to central storage === &lt;!--T:82--&gt;

&lt;!--T:155--&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.

&lt;!--T:83--&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:119--&gt; The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:120--&gt; Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:121--&gt; Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:315--&gt; Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:122--&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.

&lt;!--T:58--&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.

&lt;!--T:59--&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.

=== It must be possible to use templates completely in both wiki syntax and in visual editing === &lt;!--T:86--&gt;

&lt;!--T:156--&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.

&lt;!--T:87--&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.

=== Other features related to templates === &lt;!--T:104--&gt;

&lt;!--T:161--&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.

==== Core MediaWiki ==== &lt;!--T:316--&gt;
&lt;/translate&gt;
{{Tracked|T238412}}
&lt;translate&gt;
&lt;!--T:312--&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.

&lt;!--T:317--&gt;
The “&lt;tvar name=1&gt;{{int|Whatlinkshere}}&lt;/tvar&gt;” page must keep working, and remain useful for global transclusions.

==== TemplateData ==== &lt;!--T:105--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:438--&gt; It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:125--&gt; The “&lt;tvar name=wikitextFormat&gt;{{int|Templatedata-modal-title-templateformat}}&lt;/tvar&gt;” parameter (&lt;tvar name=inline&gt;{{int|Templatedata-modal-format-inline}}&lt;/tvar&gt;, &lt;tvar name=block&gt;{{int|Templatedata-modal-format-block}}&lt;/tvar&gt;, &lt;tvar name=custom&gt;{{int|Templatedata-modal-format-custom}}&lt;/tvar&gt;) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/translate&gt;

&lt;translate&gt;
==== Citoid ==== &lt;!--T:458--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:459--&gt; [[Citoid]] has to be configured on every wiki separately using JSON files, such as &lt;tvar name=citoid-example-link&gt;[[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]&lt;/tvar&gt;. In the global templates age, it must become possible to share these files, so that the “&lt;tvar name=citoidtool-title&gt;{{int|citoid-citoidtool-title}}&lt;/tvar&gt;” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/translate&gt;

&lt;translate&gt;
==== TemplateStyles ==== &lt;!--T:107--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:126--&gt; There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/translate&gt;

&lt;translate&gt;
==== TemplateSandbox ==== &lt;!--T:109--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:127--&gt; Special:TemplateSandbox must keep working.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:128--&gt; It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/translate&gt;

&lt;translate&gt;
==== TemplateWizard ==== &lt;!--T:111--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:129--&gt; The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:130--&gt; TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/translate&gt;

&lt;translate&gt;
==== Wikibase ==== &lt;!--T:113--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:131--&gt; Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:132--&gt; It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/translate&gt;

&lt;translate&gt;
==== VisualEditor ==== &lt;!--T:115--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:133--&gt; VisualEditor obviously needs to be able to insert both global and local templates.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:134--&gt; VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/translate&gt;

&lt;translate&gt;
== Development and deployment == &lt;!--T:456--&gt;

&lt;!--T:460--&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:461--&gt; '''{{&lt;tvar name=1&gt;pll|Translatable modules&lt;/tvar&gt;|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:462--&gt; '''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:463--&gt; '''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:464--&gt; '''Global templates''': Complete the project with making the templates global.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:465--&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.

&lt;!--T:457--&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:162--&gt; Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:497--&gt; Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:498--&gt; Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:499--&gt; This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Imagine a world == &lt;!--T:173--&gt;

&lt;!--T:174--&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/translate&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;translate&gt;&lt;!--T:175--&gt; Task&lt;/translate&gt;
! scope="col" width="40%" |&lt;translate&gt;&lt;!--T:176--&gt; With the current template system&lt;/translate&gt;
! scope="col" width="40%" |&lt;translate&gt;&lt;!--T:177--&gt; With global templates&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:178--&gt; Insert an infobox using the Visual Editor&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:179--&gt; Go to “Insert”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:180--&gt; Click “Template”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:181--&gt; Find the template name somehow.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:182--&gt; Type the template name.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:183--&gt; Fill the fields.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:184--&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/translate&gt;

|
# &lt;translate&gt;&lt;!--T:185--&gt; Go to “Insert”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:186--&gt; Click “Infobox”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:187--&gt; Select the infobox type you want.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:188--&gt; Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:189--&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:190--&gt; Insert an infobox using the wiki syntax editor&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:191--&gt; Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:192--&gt; Mostly manual: Copy from a similar article and change the parameter values.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:193--&gt; Use TemplateWizard (hoping that it is configured for your wiki):&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:194--&gt; Click the puzzle piece button.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:195--&gt; Find the template name somehow.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:196--&gt; Type the template name.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:197--&gt; Fill the parameters one by one using the form.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:198--&gt; If you want, you can still do all the same things as with the current template system.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:199--&gt; But you will also have these additional optional features:&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:200--&gt; To select a suggested infobox from a list instead of typing the name manually.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:201--&gt; To have the parameter values auto-filled.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:202--&gt; To have the same process for every wiki.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:203--&gt; Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:204--&gt; If you have time and necessary skills:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:205--&gt; Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:206--&gt; Copy the underlying modules, if necessary.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:207--&gt; Copy the TemplateStyles, if necessary.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:208--&gt; Copy the documentation and translate it in the wiki syntax editor.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:209--&gt; Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:210--&gt; Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:211--&gt; Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/translate&gt;
#&lt;translate&gt;&lt;!--T:212--&gt; If you don’t have time or necessary skills, you have two options:&lt;/translate&gt;
##&lt;translate&gt;&lt;!--T:213--&gt; Make a simpler template with fewer features.&lt;/translate&gt;
##&lt;translate&gt;&lt;!--T:214--&gt; Just give up.&lt;/translate&gt;
#&lt;translate&gt;&lt;!--T:215--&gt; '''Repeat the process for every language and every wiki.'''&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:216--&gt; If the template is in the global repository, then:&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:217--&gt; Go to the template documentation page.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:218--&gt; Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:219--&gt;
That’s it, the template is fully usable in your language.

&lt;!--T:220--&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:221--&gt; Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:222--&gt; Three options:&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:223--&gt; Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:224--&gt; Develop it by yourself.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:225--&gt; Give up and stay with the older version.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:226--&gt; Just translate the new strings. All the new features are already available in all wikis.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:289--&gt; Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:290--&gt; This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:291--&gt; The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:227--&gt; Translate an article from English, French, or Russian into your language using Content Translation&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:228--&gt; Open the article in Content Translation.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:229--&gt; Click the Infobox.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:230--&gt; If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:231--&gt; If no-one imported the infobox into your language, skip it.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:232--&gt; Translate the prose of the first paragraph.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:233--&gt; '''Carefully''' check that all of these templates were correctly adapted:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:234--&gt; IPA pronunciation templates&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:235--&gt; Native language name templates&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:236--&gt; Citation needed&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:237--&gt; Unit conversion&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:238--&gt; Blockquote&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:239--&gt; Country flags&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:240--&gt; Various others&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:241--&gt; Repeat steps 3 and 4 until everything you want is translated.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:242--&gt; Publish the article.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:243--&gt; Clean up incorrectly published wiki syntax.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:244--&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:245--&gt; Open the article in Content Translation.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:246--&gt; Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:247--&gt; Translate the prose of the first paragraph.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:248--&gt; All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:249--&gt; Repeat steps 3 and 4 until everything you want is translated.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:250--&gt; Publish the article.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:251--&gt; (Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:252--&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:253--&gt; Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:254--&gt; Check that a corresponding template exists in the target language. If it does:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:255--&gt; Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:256--&gt; If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:257--&gt; If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:258--&gt; Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:259--&gt; Find a similar citation template and use it.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:260--&gt; Just copy the text of the citation without formatting and structure.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:261--&gt; Give up and publish the article without the reference.&lt;/translate&gt;
| &lt;translate&gt;&lt;!--T:262--&gt; In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:293--&gt;
In the wiki syntax editor:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:294--&gt; Copy.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:295--&gt; Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:296--&gt; Paste the result.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:297--&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:390--&gt; Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/translate&gt;

&lt;small&gt;&lt;translate&gt;&lt;!--T:391--&gt; This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[&lt;tvar name=1&gt;w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0&lt;/tvar&gt;|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/translate&gt;&lt;/small&gt;
|
# &lt;translate&gt;&lt;!--T:392--&gt; Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:393--&gt; In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:394--&gt; In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:395--&gt; In every wiki: Copy the module from the central storage to your wiki.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:396--&gt; In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:397--&gt; In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:398--&gt; Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:399--&gt; Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:400--&gt; In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:401--&gt; In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:402--&gt; In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:405--&gt; In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:403--&gt; Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:404--&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:263--&gt; Start writing in a new wiki after the domain is created&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:264--&gt; After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:265--&gt; Start copying these templates one by one, or create your own.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:266--&gt; Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:267--&gt; You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:268--&gt; All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:269--&gt; Use a navigation box while reading an article on a mobile phone&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:270--&gt; '''Impossible.'''&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:271--&gt; Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[&lt;tvar name=1&gt;phab:T124168&lt;/tvar&gt;|there is demand for it]].)&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:272--&gt; '''Possible.'''&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:273--&gt; Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:381--&gt; Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:382--&gt; Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:383--&gt; Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:508--&gt; Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:509--&gt; This happens in some of the smaller languages.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:384--&gt; Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:385--&gt; Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:386--&gt; Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:274--&gt; Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:275--&gt; Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:276--&gt; Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:277--&gt; Rewrite the code for every wiki.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:278--&gt; Give up, and research only the English Wikipedia.&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:279--&gt; Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/translate&gt;
|}
&lt;translate&gt;
&lt;!--T:280--&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Status == &lt;!--T:163--&gt;

&lt;!--T:478--&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''

&lt;!--T:164--&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.

&lt;!--T:448--&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;tvar name=bugzilla&gt;&lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt;&lt;/tvar&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called &lt;tvar name=globalwiki&gt;[[:m:Global-Wiki|Global-Wiki]]&lt;/tvar&gt; was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.

&lt;!--T:449--&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[&lt;tvar name=wishlist2015&gt;:m:Community Wishlist Survey 2015&lt;/tvar&gt;|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[&lt;tvar name=wishlist2016&gt;:m:Community Wishlist Survey 2016/Results&lt;/tvar&gt;|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.

&lt;!--T:165--&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/translate&gt;

:&lt;translate&gt;&lt;!--T:166--&gt; ... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:167--&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/translate&gt;

:&lt;translate&gt;&lt;!--T:168--&gt; Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:477--&gt;
[[&lt;tvar name=aw&gt;:m:Abstract Wikipedia&lt;/tvar&gt;|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[&lt;tvar name=awt&gt;:m:Abstract Wikipedia/Tasks&lt;/tvar&gt;|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).

&lt;!--T:479--&gt;
The {{&lt;tvar name=txm&gt;pll|Translatable modules&lt;/tvar&gt;|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.

&lt;!--T:482--&gt;
In [[&lt;tvar name=survey&gt;:m:Community Wishlist Survey 2021&lt;/tvar&gt;|Community Wishlist Survey 2021]], the wish titled “[[&lt;tvar name=tt&gt;:m:Community Wishlist Survey 2021/Translation/Templates translation&lt;/tvar&gt;|Templates translation]]” received [[&lt;tvar name=results&gt;:m:Community Wishlist Survey 2021/Results&lt;/tvar&gt;|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[&lt;tvar name=apt&gt;#AutomaticParameterTranslation&lt;/tvar&gt;|Automatic parameter translation]].

&lt;!--T:480--&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{&lt;tvar name=strategy&gt;pll|Global templates/Relationship to strategy&lt;/tvar&gt;|Global templates/Relationship to strategy}}.

&lt;!--T:169--&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Useful links == &lt;!--T:170--&gt;

&lt;!--T:171--&gt;
Some relevant pages that discuss similar topics:
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:283--&gt; [[&lt;tvar name=1&gt;Platform Evolution/Goals&lt;/tvar&gt;|Platform Evolution/Goals]]&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:284--&gt; [[&lt;tvar name=1&gt;Platform Evolution/Recommendations&lt;/tvar&gt;|Platform Evolution/Recommendations]]&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:285--&gt; [[&lt;tvar name=1&gt;Multilingual Templates and Modules&lt;/tvar&gt;|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:286--&gt; [[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:287--&gt; [[:m:Which templates should be global?]] - an informal list made by various editors&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:372--&gt; [[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/translate&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;translate&gt;&lt;!--T:373--&gt; an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:444--&gt; [[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:474--&gt; [[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:483--&gt; [[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[&lt;tvar name=apt&gt;#AutomaticParameterTranslation&lt;/tvar&gt;|Automatic parameter translation]].&lt;/translate&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>bede0cf507e738fa9ad08fd1861e806e0190e792</sha1>
  </revision>
  <revision>
    <id>6624157</id>
    <parentid>6624152</parentid>
    <timestamp>2024-07-09T07:37:57Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <minor/>
    <comment>editace</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88763" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
&lt;translate&gt;
&lt;!--T:1--&gt;
This is a proposal for the functional requirements for global templates and modules.

&lt;!--T:288--&gt;
You can also read a {{&lt;tvar name=1&gt;pll|Global templates/Proposed specification, short version&lt;/tvar&gt;|one-page version of this proposal}}.

&lt;!--T:2--&gt;
'''This is not a project that is being executed or planned to be executed by anyone at any defined point in time, at least not yet. This is just an idea, albeit a very detailed one.'''

&lt;!--T:3--&gt;
The eventual goal is to form a cross-team and cross-project commitment on implementing these things, with proper architecture, product and project management, community engagement, etc.

&lt;!--T:4--&gt;
This document does not try to go into the details of technical implementation in terms of storage, caching, delivery, PHP code design, etc. It only tries to define the requirements of how this feature will work from the point of view of the users:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:5--&gt; People who create and maintain templates and modules.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:6--&gt; People who create and edit pages that transclude templates and modules. This includes all editors and all kinds of pages:&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:7--&gt; All levels of experience: from those who are completely new to those who have made thousands of edits&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:8--&gt; All kinds of editing tools: wiki syntax editing, Visual Editor, Content Translation, and others (even bot operators)&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:9--&gt; All wikis: Wikipedia, Wiktionary, Wikivoyage, Wikidata, Incubator, etc., and any new future projects&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:10--&gt; All languages: English, French, Russian, Spanish, Armenian, Persian, Zulu, Manipuri, etc.&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:11--&gt; All kinds of pages: Wikipedia articles, articles talk pages, user talk pages, community discussion pages, WikiProject pages, categories, template documentation pages, etc.&lt;/translate&gt; {{Triple globe}}
{{Global templates nav}}
&lt;translate&gt;
== Elevator pitch == &lt;!--T:12--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:135--&gt; A large part of the functionality of Wikimedia sites is implemented in templates and Lua modules.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:491--&gt; In their current form, they cannot be shared across different wikis and languages.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:492--&gt; Because of this they are hard to integrate with modern ways of creating and editing articles, such as Visual Editor, Wikidata, and Content Translation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:493--&gt; They are also hard to adapt to mobile devices.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:494--&gt; This causes waste of contributors’ effort, and difficulties for new editors and smaller projects.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:495--&gt; It must become possible to share them across wiki sites, similarly to Commons images.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:496--&gt; This will make software development faster and more robust, and it will also let editors focus more on writing.&lt;/translate&gt; {{Triple globe}}

&lt;translate&gt;
== The Problem == &lt;!--T:13--&gt;

&lt;!--T:136--&gt;
'''''General comment: Unless noted otherwise, all references to “templates” also apply to {{&lt;tvar name=1&gt;pll|Extension:Scribunto&lt;/tvar&gt;|Scribunto}} Lua modules.'''''
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:14--&gt; Templates implement features of Wikimedia sites.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:513--&gt; Some of these features are highly prominent, especially the infoboxes, the references, “citation needed”, and many others.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:514--&gt; For a more comprehensive list of functions implemented using templates, see {{&lt;tvar name="Taxonomy"&gt;pll|Global templates/Taxonomy&lt;/tvar&gt;|Taxonomy}}.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:515--&gt; All the readers see them, and all the editors run into them in almost every edit action.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:516--&gt; In addition, they implement many of the sites’ internal community management features: requests for deletion, requests for unblocking, expressing support in discussions, sorting articles for WikiProjects, etc.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:15--&gt;
Templates provide an efficient mechanism to quickly design, deploy, and use repetitive pieces of text and markup in many pages. However, templates also have several acute usability problems for all kinds of editors.

=== Difficulties for all editors in all wikis === &lt;!--T:16--&gt;

==== Wiki syntax editors ==== &lt;!--T:17--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:137--&gt; Templates are often difficult to understand for editors in wiki syntax.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:500--&gt; People who are experienced with using a particular template will probably identify it and be able to edit a page that includes it.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:501--&gt; However, editors who are not familiar with this template will have to look up its documentation when they encounter it, even if they are generally experienced with editing and other templates.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:502--&gt; And editors who have low experience will be baffled by the cryptic text with curly braces, pipe characters, equal signs, etc.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:18--&gt; Using a feature that is implemented as a template requires knowing the template’s name and typing it in curly braces (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) or copying it from another page.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:517--&gt; This is not obvious to new users, and veteran users have to learn each new template separately, too.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:19--&gt; Some wikis have gadgets that add buttons that insert templates that are common in that project to the editing toolbar.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:518--&gt; These are different in each wiki, even though a lot of the templates have similar functionality across projects and languages.&lt;/translate&gt;

&lt;translate&gt;
==== Visual Editor users ==== &lt;!--T:20--&gt;
&lt;/translate&gt;
{{Tracked|T55590}}
{{Tracked|T67173}}
&lt;translate&gt;
&lt;!--T:138--&gt;
VisualEditor users have some advantages with using templates, however there are many issues with them there as well. In particular, there is a similar discoverability issue: In Visual Editor, all the templates’ functionality is hidden behind the “&lt;tvar name=1&gt;{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}&lt;/tvar&gt;” menu item, and the user has to know the template name before using it.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:21--&gt; Visual Editor’s “&lt;tvar name=1&gt;{{int|visualeditor-toolbar-insert}}&lt;/tvar&gt;” menu has items for Math formulas, Egyptian Hieroglyphs, Musical scores, and some other functions that are implemented as extensions, but it doesn’t have items such as “Infobox”, “Citation needed”, “Unit conversion”, “Quotation”, etc.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:450--&gt; All the templates are the same kind of generic item.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:22--&gt; There is one notable exception: Some wikis have the “&lt;tvar name=1&gt;{{int|citoid-citoidtool-title}}&lt;/tvar&gt;” button, which inserts footnotes with reference templates.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:451--&gt; However, it is an exception that proves the rule.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:452--&gt; It requires manual configuration for even basic functionality, this configuration is separate in each wiki, and as a consequence many wikis don’t have this button at all.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:453--&gt; Another comparable exception, which was added in late 2019, is special support for “Citation needed” templates, but this also needs some custom configuration on each and every wiki to actually work.&lt;/translate&gt;

&lt;translate&gt;
=== Difficulties for editors who write in more than one project === &lt;!--T:23--&gt;

&lt;!--T:292--&gt;
Many templates exist in one project, but not in others, and often a template is available, but in a different form. Because of this, it’s difficult or impossible to reuse skills that were acquired in one project: the functionality that the template provides is sometimes unavailable, and sometimes it works differently. This applies not just to wikis in different languages, but also to different wikis in the same language, for example, English Wikipedia and English Wikisource.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:24--&gt; For people editing in different languages, templates make translation harder.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:519--&gt; When translating a page, templates are much harder to handle than the article text (“prose”), whether the translation is done manually or with Content Translation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:520--&gt; Users often have to skip the template or to correct it after the article was published.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:521--&gt; This also causes abandoning translations in progress, because template translation looks intimidating.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:281--&gt;
The most commonly reported issues in Content Translation are about templates.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:25--&gt; Content Translation has a template adaptation feature, which automates some parts of this process, but it works only if a corresponding template exists in both languages, and if all the parameters were meticulously mapped by the template maintainers.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:529--&gt; This must be done for each template in each language separately and manually, and continuously maintained when the source template changes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:530--&gt; This happens even though the templates’ function across the languages is the same most of the time.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:282--&gt;
Ideally, the templates and their parameters should be transferred to the translated page almost completely automatically, so that the translators could focus on writing the prose, as writing the prose is the area where human work is most needed.

&lt;!--T:26--&gt;
A template can be exported from one wiki to another, but once this is done, the template becomes a forked copy. It either stays in the state in which it was exported, or continues to be developed separately, causing incompatibility. Sometimes people keep maintaining the different copies, but this is not robust and cannot scale for the hundreds of wikis that we have.

&lt;!--T:27--&gt;
Template parameters can have the same functionality, but different names in different wikis. They can be adapted using TemplateData aliases, but this is a suboptimal hack: it is not what TemplateData was originally made for, and it has to be done manually for each language pair.

&lt;!--T:28--&gt;
Templates mix together algorithmic logic, human-readable text strings, and formatting. Because of this there is no robust way to translate the templates’ user interface strings, as it is done with MediaWiki core and extensions.

=== Difficulties for editors in smaller wikis === &lt;!--T:29--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:139--&gt; A new wiki project is created by installing core MediaWiki and enabling a default set of extensions.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:531--&gt; In practice this doesn’t create a level playing field because many key features of larger wikis are implemented in templates: infoboxes, citations, maintenance hatnotes (such as &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced|Unreferenced]]&lt;nowiki&gt;}}&lt;/nowiki&gt;), etc.&lt;/translate&gt;

&lt;translate&gt;
=== Difficulties for software developers === &lt;!--T:435--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:436--&gt; It is difficult for developers of MediaWiki core, extensions, bots, and other tools that analyze, generate, or modify wiki page content to build features that depend on the presence of certain templates in a wiki.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:532--&gt; Developers of extensions such as GrowthExperiments, PageTriage, ContentTranslation, some components of Wikibase, and many others, have to either test them in production, which is a bad idea, or to import the templates to their local wikis or an online test wiki.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:437--&gt;
Researchers who get data about wiki content based on templates have to write their analysis code for each wiki separately, and sometimes they end up doing for only one wiki. A notable example is using English Wikipedia’s WikiProject templates to analyze page topics and assess article quality.&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Assumptions == &lt;!--T:414--&gt;

=== Extensions vs Templates: Similarities and differences === &lt;!--T:318--&gt;

&lt;!--T:319--&gt;
One of the main assumptions of this project proposal is that templates and modules are very similar to MediaWiki core and extensions: They are software, and they implement features that the editors community needs. In particular, since templates are usually developed by the editors themselves, it’s obvious that the community ''really'' needs them. The big differences between lie in how they are developed, localized, and deployed.

&lt;!--T:320--&gt;
Templates and modules should become similar to extensions in some key properties that they currently lack, and preserve some good properties that extensions lack. (For ease of understanding by English readers, in the table, examples of templates are given from the English Wikipedia. They could also come from any other wiki and any other language.)
&lt;/translate&gt;

{| class="wikitable vs"
!&lt;translate&gt;&lt;!--T:321--&gt; Property&lt;/translate&gt;
!&lt;translate&gt;&lt;!--T:322--&gt; Core and extensions&lt;/translate&gt;
!&lt;translate&gt;&lt;!--T:323--&gt; Templates&lt;/translate&gt;
!&lt;translate&gt;&lt;!--T:362--&gt; What should be done about this with templates?&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:324--&gt; Implement special kind of content&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:325--&gt; Yes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:326--&gt; image, math, hieroglyphics, score, basic ref&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:327--&gt; Yes.&lt;/translate&gt;
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|&lt;translate&gt;&lt;!--T:328--&gt; └ Special kind of content is easy to insert into pages&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:329--&gt; Yes (using the toolbar).&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:330--&gt; No (unless you learned how to do it).&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:363--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:331--&gt; └ Special kind of content is easy to adapt to mobile devices&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:332--&gt; Mostly yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:333--&gt; Sometimes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:364--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:334--&gt; └ Special kind of content is easy to translate as part of an article&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:335--&gt; Mostly yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:336--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:365--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:337--&gt; Implement page formatting features&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:338--&gt; Yes.&lt;/translate&gt;
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|&lt;translate&gt;&lt;!--T:339--&gt; Yes.&lt;/translate&gt;
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|&lt;translate&gt;&lt;!--T:340--&gt; Implement community workflow processes&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:341--&gt; Yes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:342--&gt; Abuse filter, Check user, Move&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:343--&gt; Yes.&lt;/translate&gt;
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|&lt;translate&gt;&lt;!--T:366--&gt; Should be easy to reuse, but not forced.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:344--&gt; Easy to deploy initial version&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:345--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:346--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:367--&gt; Should be preserved.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:347--&gt; Easy to deploy changes&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:348--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:349--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:368--&gt; Should be preserved.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:350--&gt; Easy to localize&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:351--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:352--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:369--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:353--&gt; Useful on multiple wikis&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:354--&gt; Often.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:355--&gt; Often.&lt;/translate&gt;
|
|-
|&lt;translate&gt;&lt;!--T:374--&gt; Used only on a limited number of wikis&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:375--&gt; Sometimes.&lt;/translate&gt;
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|&lt;translate&gt;&lt;!--T:376--&gt; Sometimes.&lt;/translate&gt;
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|&lt;translate&gt;&lt;!--T:356--&gt; Easy to install and use on multiple wikis&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:357--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:358--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:370--&gt; Should be changed.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:359--&gt; Easy to use on a new, recently created wiki&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:360--&gt; Yes.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:361--&gt; No.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:371--&gt; Should be changed.&lt;/translate&gt;
|}
&lt;translate&gt;
=== Templates and modules development skills === &lt;!--T:406--&gt;

&lt;!--T:407--&gt;
Another important set of assumptions on which this proposal is based is the following:&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:408--&gt; The skills for developing templates and modules are non-trivial. Both templates and modules have numerous obscure features.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:409--&gt; Even though many of the sites’ most notable features are implemented as templates and modules, these skills are often unnoticed, underappreciated, and taken for granted.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:410--&gt; There are dozens of people who have these skills, and they edit many wikis. They usually focus on their home wiki and relatively rarely communicate with contributors from other wikis or other languages. Even though the underlying technology is the same everywhere, there is no true global community of template developers that would be comparable to the global community of MediaWiki core and extensions developers. There are cases of cross-wiki collaboration on certain templates, but they are inconsistent.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:411--&gt; There are also many wikis in which there are no editors who have these skills. They either copy templates and modules from other wikis without fully understanding how they work and without the ability to localize and maintain them effectively, or they don’t use templates at all.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:412--&gt; This situation is far from optimal.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:522--&gt; The template and module developers’ skills need more appreciation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:523--&gt; They develop truly needed features, and they are embedded in their editors communities.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:524--&gt; In wikis in many languages, the template developers come up with innovative features for structured content, data presentation, and modularization.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:525--&gt; These innovations could be useful in many wikis, but currently there is no convenient mechanism to achieve this.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:413--&gt;
And of course, any solution for these problems must not come up with new technologies that will discard the many years of hands-on experience that the template maintainers have acquired. Hence, there must be as few changes as possible in the syntax for developing templates and modules. The things that need to change are the way in which they are deployed and propagated across wikis, and the way in which the human-readable strings in them are localized (translated).&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== The proposed solution: Summary == &lt;!--T:30--&gt;

&lt;!--T:140--&gt;
There are already many features of MediaWiki that are global across wikis:
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:466--&gt; images (using [[&lt;tvar name=1&gt;:commons:&lt;/tvar&gt;|Commons]])&lt;/translate&gt;
* {{pll|Extension:GlobalBlocking|2=&lt;translate&gt;&lt;!--T:467--&gt; blocking&lt;/translate&gt;}}
* &lt;translate&gt;&lt;!--T:468--&gt; user accounts&lt;/translate&gt; ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=&lt;translate&gt;&lt;!--T:469--&gt; preferences&lt;/translate&gt;}}
* {{pll|Extension:GlobalUserPage|2=&lt;translate&gt;&lt;!--T:470--&gt; user pages&lt;/translate&gt;}}
* {{pll|Extension:GlobalCssJs|2=&lt;translate&gt;&lt;!--T:471--&gt; user JS and CSS pages&lt;/translate&gt;}}
* &lt;translate&gt;&lt;!--T:481--&gt; global watchlist is in active development as of late 2020&lt;/translate&gt; ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* &lt;translate&gt;&lt;!--T:472--&gt; and some others.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:31--&gt;
'''It must be possible to store templates and modules in a global repository, too, and to localize them as robustly as it is done with extensions.'''

&lt;!--T:32--&gt;
Global templates and modules will empower template maintainers in all wikis by letting them collaborate more easily on developing the templates’ code.

&lt;!--T:305--&gt;
Global templates and modules will empower translators and localizers by allowing them to focus on translating just the user interface strings (“messages”), without having to look for strings in the code, and by allowing them to use the same skills and tools for translating templates and MediaWiki extensions.

&lt;!--T:306--&gt;
Global templates and modules will empower content editors in all wikis to write and translate content that uses these templates without having to dive into the differences and to relearn different rules and skills in each wiki.

&lt;!--T:33--&gt;
The syntax for developing templates and modules, and the general template maintenance and deployment cycle will not change, so all the skills that the template maintainers have acquired over the years will remain relevant.

&lt;!--T:34--&gt;
All wikis will be able to use the global templates, but not forced to do this. Communities will keep their capability to override any global functionality, design, workflows, and data.

&lt;!--T:35--&gt;
Localizing templates will be as convenient as localizing MediaWiki extensions.&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== The proposed solution: Detailed requirements == &lt;!--T:36--&gt;

=== Templates must be able to be semantic and global === &lt;!--T:37--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:141--&gt; ''Semantic'' means that other software components, especially Visual Editor and Content Translation, must have a general way to understand that a template exists and that it provides certain functionality, so that it will be possible to insert it into a page as an infobox, a citation, a maintenance tag, etc., and not only as a generic template.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:503--&gt; Currently, the closest thing to making templates semantic is TemplateData, but it only describes the template’s parameters.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:504--&gt; It doesn’t, for example, help Visual Editor add an “Insert infobox” button to the toolbar.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:38--&gt;
''Global'' means that a template’s code must be maintained in one place and usable in all wikis.

=== Making templates semantic === &lt;!--T:39--&gt;
&lt;/translate&gt;
{{Tracked|T103630}}
{{Tracked|T103624}}
&lt;translate&gt;
&lt;!--T:142--&gt;
Templates have never been robustly semantic, in the sense of being easy to handle by software that processes pages.

&lt;!--T:40--&gt;
There are only a few examples of templates that were made semantic:
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:41--&gt; Various reference templates, which are usable from the Visual Editor toolbar “&lt;tvar name=1&gt;{{int|citoid-citoidtool-title}}&lt;/tvar&gt;” button.&lt;/translate&gt; &lt;translate&gt;&lt;!--T:454--&gt; They require writing a lot of separate code to configure Citoid on each wiki that wants to use them.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:42--&gt; “Citation needed”, which was adapted to Visual Editor in late 2019.&lt;/translate&gt; &lt;translate&gt;&lt;!--T:533--&gt; It also requires configuration on each wiki.&lt;/translate&gt; &lt;translate&gt;&lt;!--T:534--&gt; For example: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|English]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|Hebrew]], [[:sl:MediaWiki:Visualeditor-template-tools-definition.json|Slovene]].&lt;/translate&gt; &lt;translate&gt;&lt;!--T:535--&gt; As of this writing, French, Spanish, and most other languages are not configured for this, even though they have templates of this kind.&lt;/translate&gt; ({{Phab|T211243}})
* &lt;translate&gt;&lt;!--T:43--&gt; Templates for mentioning users in the Flow extension, which require local configuration, too.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:44--&gt; Some dump processing and research tools can parse English Wikipedia’s WikiProject page assessment templates, which are usually added to talk pages.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:445--&gt; The GrowthExperiments extension suggests editors to perform certain tasks in articles based on the templates that are transcluded in them. The template names have to be configured manually by writing JSON files separately in each wiki. For example: [[:cs:MediaWiki:NewcomerTasks.json|Czech]], [[:vi:MediaWiki:NewcomerTasks.json|Vietnamese]], [[:ko:MediaWiki:NewcomerTasks.json|Korean]], [[:ar:MediaWiki:NewcomerTasks.json|Arabic]].&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:45--&gt; The PageTriage extension is configured to work with English Wikipedia’s hatnote templates (also known as “tags”).&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:46--&gt;
In the case of PageTriage, the extension essentially hard-codes a single wiki’s templates, making it unusable in other wikis without a significant rewrite. Even if the on-wiki configuration step is small, as it is with the Flow example, it still needs to be done. This doesn’t scale well for the 900 wikis that Wikimedia has, and the thousands that it will have in the future.

&lt;!--T:47--&gt;
These things should be global by default, so that they will be immediately usable in at least a basic default configuration on all wikis at once by extensions, bots, dump analyzers, etc.

=== Storage and delivery === &lt;!--T:48--&gt;
&lt;/translate&gt;
{{Tracked|T6547}}
{{Tracked|T91162}}
&lt;translate&gt;
&lt;!--T:143--&gt;
The global templates and modules can be stored in a central wiki (Meta, Commons, or a whole new wiki), and it can even be &lt;tvar name=1&gt;{{ll|Gerrit}}&lt;/tvar&gt; or another repository.

&lt;!--T:49--&gt;
The best solution is probably creating a new wiki that will store them, without getting mixed up with images, general community discussion, etc.

&lt;!--T:50--&gt;
Using Gerrit as storage for templates and modules code is technically possible, but it would lose an important element of accessibility for template maintainers: editing a template in a wiki page is much easier and familiar to the vast majority of template maintainers than making Git commits and waiting for code review. Therefore, Gerrit probably shouldn’t become a way for storing the template and module code, at least not the primary one.

&lt;!--T:51--&gt;
Global templates and modules must be stored in a common repository that can be edited by most wiki editors. Rules about blocking and special permissions should initially be similar to the rules in other wikis: everything should be open by default, and it must be possible to protect very common, sensitive, or frequently-vandalized templates. More detailed rules about protection levels can be developed by the editors community later.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:510--&gt; The code of the templates in the central repository will use the generic English names of tags such as &lt;tvar name=section&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt;, parser functions such as &lt;tvar name=ifexist&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt; or &lt;tvar name=invoke&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt;, and magic words such as &lt;tvar name=displaytitle&gt;&lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;&lt;/tvar&gt;.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:52--&gt; How the templates are delivered to the target wikis is a question of internal engineering and architecture, as long as the other requirements are addressed.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:505--&gt; These questions were discussed in the past by some platform developers, for example around the [[Requests for comment/Shadow namespaces|Shadow namespaces]] project.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:506--&gt; This document tries to address related questions of how it works for the user who edits a page that uses a template, or who maintains the template itself—how to write it in a localizable way; how is it translated; how is it locally customized; etc.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:507--&gt; These questions weren’t addressed sufficiently in the previous architectural discussions on the topic.&lt;/translate&gt;

&lt;translate&gt;
=== Templates must remain easy to modify === &lt;!--T:53--&gt;

&lt;!--T:144--&gt;
An important feature of how templates currently work is that they are edited just like wiki pages and immediately become functional after publishing without review or deployment. This is somewhat dangerous because a bad edit can ruin many pages, but the fact is that it works mostly well.

&lt;!--T:54--&gt;
This ease must be preserved. Community members who maintain templates will most likely reject moving to a new system that will require them to learn new skills and drag every change through an exhausting review and deployment phase. This probably means that storing the templates in Gerrit is not going to work, unless, perhaps, the process for review and deployment will be ''much'' easier than it is for extensions.

=== It must be possible to make some templates non-global === &lt;!--T:55--&gt;

&lt;!--T:145--&gt;
Not all templates should be forced to be global.
&lt;/translate&gt;
{{Tracked|T165053}}
&lt;translate&gt;
&lt;!--T:56--&gt;
In fact, some templates should be local because they implement a functionality that is unique to a certain language. By their nature, such templates don’t need to be translated, and there should be a way to give a hint to both human editors and translation tools (such as Content Translation) that they don’t need to be adapted, and can be skipped or substituted. This is a part of the effort to make templates more semantic.

=== It must be possible to override some functionality or appearance of a global template === &lt;!--T:57--&gt;

&lt;!--T:146--&gt;
No community should feel that a functionality is imposed on it by some powerful external player, like the English Wikipedia community, the Wikidata community, the WMF, or anybody else. Global templates should be developed and used collaboratively for the common benefit. Most of the time, it should work for everybody.

&lt;!--T:313--&gt;
Sometimes some communities will have strong opinions about wanting to have particular functionality or design that will be different in their language or project, or to show an infobox with information that is different from what is shown in other projects, or not to show it at all. The capability to override things locally must be allowed from the start. (Or rather, it must not be taken away.)

=== A global template must be immediately usable in every wiki === &lt;!--T:60--&gt;

&lt;!--T:147--&gt;
Just like a global user page is immediately available in every wiki in which there is no local user page, every template or module that is created on the global infrastructure must be immediately usable in every wiki.

&lt;!--T:387--&gt;
This must not require ''any'' extra steps, such as copying wiki pages, creating wrapper templates with a local name, administrator intervention, waiting for hours for caches to refresh, etc.

&lt;!--T:388--&gt;
After the central version is updated, the updated version will be immediately shown everywhere. To prevent vandalism, the editors community will develop policies on permissions and protection levels.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:389--&gt; If the user interface strings (also known as “messages”) were not translated, the template will nevertheless be usable, and the strings will be shown in the [[&lt;tvar name=1&gt;Special:MyLanguage/fallback language&lt;/tvar&gt;|fallback language]].&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:536--&gt; See the sections on localization for more details.&lt;/translate&gt;

&lt;translate&gt;
=== Localization of user-facing strings === &lt;!--T:61--&gt;
&lt;/translate&gt;
{{tracked|T238411}}
&lt;translate&gt;
==== It must be possible to translate all user-facing strings ==== &lt;!--T:62--&gt;
&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:148--&gt; The user interface strings (messages) of core MediaWiki, extensions, and some external tools such as [[&lt;tvar name=1&gt;:m:Community Tech/Pageview stats tool&lt;/tvar&gt;|Pageviews]] are translated conveniently and robustly on &lt;tvar name=2&gt;translatewiki.net&lt;/tvar&gt;.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:537--&gt; This localization process is familiar to at least some editors in all languages.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:63--&gt;
It’s currently not possible to do the same with templates. Multilingual sites such as Commons and mediawiki.org have the “[[commons:Template:Translatable navigation template|TNT]]” system for translating some templates, but it’s very complicated and cannot be reused for Wikipedia, Wikisource, etc. In 2021, this became more robust thanks to the "language-aware transclusion" feature, but it still needs some improvements.

&lt;!--T:64--&gt;
Ideally, it should be possible to translate templates just like core and extensions, using a wiki with the Translate extension.

&lt;!--T:65--&gt;
The translated string must become usable immediately after the translation is submitted using the Translate interface.

&lt;!--T:66--&gt;
It can be possible to edit the user interface strings in raw wiki pages, but ideally they should be edited primarily through a dedicated translation interface.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:380--&gt; Translators should be able to focus on translating nothing but text.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:526--&gt; Seeing any code around it makes it difficult for people who are not experienced with programming and JSON files to contribute easily.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:527--&gt; In addition, editing translations into languages that are written from right to left in raw text files is extremely inconvenient.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:528--&gt; The Translate extension already addresses all of these issues.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:172--&gt;
The template documentation pages must be translatable as well. It’s mostly enough to do it using the page translation feature of the Translate extension, but it may require some adaptations.

==== The language in which the strings are shown to the user ==== &lt;!--T:67--&gt;
&lt;/translate&gt;
{{Tracked|T313748}}
&lt;translate&gt;
&lt;!--T:149--&gt;
Templates are primarily used when they are integrated into content, so by default the translated messages must be shown in the wiki’s content language.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:68--&gt; Some templates, however, are used as UI elements.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:538--&gt; Therefore, perhaps it makes sense to also allow showing the translated strings in the user language, when it’s different from the wiki content language.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:539--&gt; This may be particularly relevant for multilingual sites such as Commons, Wikidata, Meta, and &lt;tvar name=1&gt;mediawiki.org&lt;/tvar&gt;.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:69--&gt; MediaWiki’s usual fallback language chains must be used when a translation is not available.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:540--&gt; For example, if a message is not translated into Quechua or Guarani, it will be shown in Spanish, if it’s not translated into Bashkir or Chuvash, it will be shown in Russian, and so on.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:541--&gt; The ultimate fallback language is English, so if this message is not translated into Spanish or Russian, it will be shown in English.&lt;/translate&gt;

&lt;translate&gt;

==== Message keys ==== &lt;!--T:70--&gt;

&lt;!--T:150--&gt;
Messages should be represented as keys, similarly to how it is done in MediaWiki core, extensions, and tools.

&lt;!--T:71--&gt;
Writing translatable strings will probably be the largest change in the template development process that template maintainers will have to get used to. Hard-coded strings will have to be separated and moved to messages organized by key. It must be made as easy as possible not only for the translators, but also for the template maintainers. Otherwise, they won’t actually do it, and the feature will be effectively rejected.

&lt;!--T:72--&gt;
To easily make keys globally unique, it’s probably OK to automatically include the global template name in the message key.

==== Transitioning tools ==== &lt;!--T:416--&gt;
&lt;/translate&gt;
{{Tracked|T245737}}
&lt;translate&gt;
&lt;!--T:417--&gt;
A tool should be developed that will help the transitioning of a template or a module to central storage. It can do the following steps:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:418--&gt; Export a template from a local wiki and import it into the global wiki.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:419--&gt; Export all the templates that are used by this template (cascading).&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:420--&gt; Identify the human-readable strings, convert them to a list with keys, and replace them with keys in the template’s source code.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:434--&gt; Import the template’s documentation page and TemplateData.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:455--&gt; Import the necessary CSS pages.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:421--&gt;
In most cases, this automatic process probably cannot create a fully usable and robust template or module, but it can help begin the transitioning process.

==== Organizing messages ==== &lt;!--T:73--&gt;

&lt;!--T:151--&gt;
The Translate extension organizes messages by groups, also known as “projects”, which can be further organized by aggregate groups. For example, Article Placeholder, Score, and Poem are all groups that represent the corresponding MediaWiki extensions, and they are all included in the “Extensions used by Wikimedia - Advanced” aggregate group, along with many other extensions.

&lt;!--T:74--&gt;
Projects that represent MediaWiki extensions are configured in YAML files in the translatewiki repository and shown in the Translate user interface in a project selector, also known as “message group selector”.

&lt;!--T:75--&gt;
Since there are many more templates than extensions, some modifications may be needed in the way the Translate extension handles message groups to accommodate templates translation.

&lt;!--T:76--&gt;
Each template should be a message group. Closely related templates should be grouped in an aggregate message group. They can be similar to the categories in which they are stored, and in fact, the categories may even be reused. Editing files in a Git repository to organize these message groups is probably not desirable, because it’s too complex and slow.

&lt;!--T:77--&gt;
It would be nice to show group and template names as localized in the selector, but it’s also OK if they are shown in English. If it’s good enough for extension localizers, it’s good enough for template localizers, too.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:441--&gt; Templates must be shown as message groups on the Translate extension’s Language statistics special page (&lt;tvar name=1&gt;Special:LanguageStats&lt;/tvar&gt;).&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:542--&gt; This will help localizers find what templates need translation.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:543--&gt; This should be generally similar to all message groups, but there are some special considerations for templates:&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:442--&gt; There will be thousands of templates, so it will be nice if the table’s design corresponds to this somehow.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:443--&gt; The table should show on how many pages is each template transcluded and make it possible to order the rows by this number, to help localizers prioritize what is more important to translate.&lt;/translate&gt;

&lt;translate&gt;

==== Finding how to translate a template ==== &lt;!--T:78--&gt;

&lt;!--T:152--&gt;
Every template description page needs to have a direct link to translating it to the user’s language.
&lt;/translate&gt;
{{Tracked|T64695}}
&lt;translate&gt;&lt;!--T:314--&gt; Some templates use Wikidata labels as part of their UI instead of hard-coding strings.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:484--&gt; This is done at the moment in [[:commons:Wikidata Infobox|Wikidata Infobox]] on Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (Infobox person) in the Catalan Wikipedia, and in several other templates.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:485--&gt; These labels and values can be localized in Wikidata itself.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:486--&gt; Such usage cannot cover all the needs of template localization, but it is legitimate and useful for particular purposes.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:487--&gt; As long as this is properly described in the template documentation, this can continue to be used, and probably doesn’t need special infrastructure adaptations.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:488--&gt; (Perhaps the translation of the relevant labels and values can be somehow integrated into the Translate interface for localizing the template, but this is optional.)&lt;/translate&gt;

&lt;translate&gt;
==== Message parameters and magic words ==== &lt;!--T:422--&gt;

&lt;!--T:423--&gt;
In core MediaWiki and extensions, many messages have parameters, sometimes also known as “placeholders”. They are named $1, $2, etc., and they are filled in run time. Parameters are particularly important for making messages robustly translatable because different languages have different word order.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:424--&gt; Something like this is needed in templates, too, although it is possible that the form does not have to be $1, $2, but template-like parameters with triple curly braces (&lt;tvar name=3&gt;&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;&lt;/tvar&gt;).&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:544--&gt; This is to be decided according to considerations of parsing and localization convenience.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:425--&gt;
The magic words PLURAL, GENDER, and GRAMMAR must be supported in template messages as in MediaWiki messages.

==== Message documentation ==== &lt;!--T:426--&gt;

&lt;!--T:427--&gt;
In core MediaWiki and extensions, every translatable message is documented for the convenience of developers and translators. The documentation may include information about where the message appears, what the $1, $2, etc. parameters are, whether the word is a verb or an adjective, etc. This documentation is stored as pseudo-language with the code qqq.

&lt;!--T:428--&gt;
Such documentation will be useful for template translation, too. How it is stored is a question of technical architecture. Perhaps it can be combined with TemplateData, perhaps it can be stored as a qqq language, and perhaps it can be something else.

==== Source language ==== &lt;!--T:429--&gt;

&lt;!--T:430--&gt;
Templates will be imported to the global storage not only from English-language projects, but from wikis in many languages. More than ever, the localization tools must support translation from any language and not only from English.

==== Fuzzying ==== &lt;!--T:431--&gt;

&lt;!--T:432--&gt;
In core MediaWiki and extensions and in translatable pages, if the source message in English changes, the message is automatically marked as outdated or “fuzzy”. The existing translations continue to work, but are shown to translators as needing an update. (The translation manager can also mark a message as not needing fuzzying.)

&lt;!--T:433--&gt;
A similar mechanism will be needed for template localization. However, since it would be nice not to force English as the source language, there should be more ways to mark messages as fuzzy.

==== Localization considerations for modules ==== &lt;!--T:79--&gt;
&lt;/translate&gt;
{{Tracked|T238417}}
&lt;translate&gt;&lt;!--T:153--&gt; Lua modules can load and parse translatable MediaWiki strings, but there is no defined way for storing these strings for Lua modules that are maintained as wiki pages.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:489--&gt; It is possible to package Lua modules as parts of extensions, and then they are able to load messages from the extensions’ &lt;tvar name=1&gt;i18/*.json&lt;/tvar&gt; files, but this is done in very few extensions at the moment.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:490--&gt; Rewriting templates in Lua may be a more robust solution from the engineering point of view, but Lua will not necessarily be embraced by all existing template maintainers, and their cooperation will be crucial to the project’s success, so this cannot be done to all templates.&lt;/translate&gt;

{{Tracked|T209310|resolved}}
&lt;translate&gt;&lt;!--T:440--&gt; Some very internal, technical modules that are commonly used, rarely changed, and don’t require internationalization can probably be painlessly moved into the Scribunto extension itself.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:545--&gt; Some examples are [[&lt;tvar name=1&gt;Module:No globals&lt;/tvar&gt;|No globals]] and [[&lt;tvar name=2&gt;Module:Arguments&lt;/tvar&gt;|Arguments]].&lt;/translate&gt;

&lt;translate&gt;

=== Localizing the template name === &lt;!--T:307--&gt;
&lt;/translate&gt;
{{Tracked|T239294}}
&lt;translate&gt;
&lt;!--T:102--&gt;
The template may have a different name in every language, but it must be directly connected to the central storage.

&lt;!--T:308--&gt;
Global templates and modules are supposed to be immediately usable in all wikis without any extra steps, so it must be possible to transclude a global template in a local wiki page using its global name. The cross-wiki editors community shall decide what will be the policy for these global names.

&lt;!--T:160--&gt;
Similarly to parameter names, templates may have different names in different languages, and this must be preserved. There must be a structured way to translate template names. Perhaps Wikidata sitelinks can play a role, but not necessarily.

&lt;!--T:103--&gt;
If this is not done, editors will either avoid global templates, or wrap the global template in a local template with a translated name, and this will probably cause the template to lose the connection to the global entity. This is not desirable and misses the whole point of the project.

&lt;!--T:309--&gt;
Template names must only be translated to languages that can be content languages of wikis. Translation to Formal German or British English are probably unnecessary. There may be a way to have aliases or redirects. Language variants, for example for Serbian and Chinese, must be supported according to these languages’ needs.

&lt;!--T:310--&gt;
If a local template exists in a wiki and has the same name as a localized name of a global template, the local template will be used. This is similar to how local files with identical names override global files on Commons, and how local messages in the MediaWiki space override the localization coming from the code.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:311--&gt; Lua module names are often localized, too.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:546--&gt; Their names can be localized for direct invoking from wiki pages, but since code usually uses English-like identifiers, the internal global names should probably be preferred for use in the code itself, for example in &lt;tvar name=1&gt;&lt;code&gt;require&lt;/code&gt;&lt;/tvar&gt; statements.&lt;/translate&gt;

&lt;translate&gt;

=== Localizing parameters === &lt;!--T:88--&gt;

==== Localizing parameter names ==== &lt;!--T:89--&gt;

&lt;!--T:157--&gt;
Parameter names are different in every language. They are usually based on words in each language, so it’s important for editing the transclusion in wiki syntax conveniently.

&lt;!--T:90--&gt;
Ideally, the global template should have generic internal parameter names that have translations to different languages. This is somewhat similar to Wikidata property name labels, but it can be simpler: since English is a ''lingua franca'' for software developers and templates are a kind of software, it’s probably OK to have English as the default source language rather than generic numbers as it is in Wikidata.

&lt;!--T:446--&gt;
These generic parameter names will be the common default names. They will work in wikis in all languages. The localized names will work in the wikis that has that language as its content language.

&lt;!--T:91--&gt;
These translations of parameter names must be validated:&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:92--&gt; they must not include invalid characters&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:93--&gt; they must not be repeated within one template in one language&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:94--&gt; ''Anything else?''&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:415--&gt;
The actual process of translating the parameter names may be different from translating user interface strings. These names have technical constraints that must be enforced. They must also remain stable because changing a parameter name will break existing transclusions, so there should be some safeguards against changing them too often.&lt;/translate&gt;
{{anchor|AutomaticParameterTranslation}}
&lt;translate&gt;

==== Automatic parameter translation ==== &lt;!--T:298--&gt;
&lt;/translate&gt;
{{Tracked|T243150}}
&lt;translate&gt;
&lt;!--T:299--&gt;
If all the localized template and parameter names are stored centrally, it will be possible to have a simple service that gets a valid template call with parameters, a source language name, and a target language name, and outputs a localized template call. For example:

&lt;!--T:300--&gt;
Input:&lt;/translate&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
&lt;!--T:301--&gt;
Output:
&lt;/translate&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;translate&gt;
&lt;!--T:447--&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.

&lt;!--T:302--&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.

&lt;!--T:303--&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.

&lt;!--T:304--&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.

==== Nameless parameters ==== &lt;!--T:95--&gt;

&lt;!--T:158--&gt;
Nameless numbered parameters must continue working, of course.

&lt;!--T:96--&gt;
A decision is needed about how will their names be localized.

==== Translating parameter values ==== &lt;!--T:97--&gt;

&lt;!--T:159--&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.

&lt;!--T:98--&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.

&lt;!--T:99--&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.

&lt;!--T:100--&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.

&lt;!--T:101--&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.

&lt;!--T:439--&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.

=== Text direction === &lt;!--T:80--&gt;

&lt;!--T:154--&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.

&lt;!--T:81--&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.

=== Bots === &lt;!--T:377--&gt;

&lt;!--T:378--&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.

&lt;!--T:379--&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.

=== Transitioning the templates from the large wikis to central storage === &lt;!--T:82--&gt;

&lt;!--T:155--&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.

&lt;!--T:83--&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:119--&gt; The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:120--&gt; Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:121--&gt; Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:315--&gt; Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:122--&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.

&lt;!--T:58--&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.

&lt;!--T:59--&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.

=== It must be possible to use templates completely in both wiki syntax and in visual editing === &lt;!--T:86--&gt;

&lt;!--T:156--&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.

&lt;!--T:87--&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.

=== Other features related to templates === &lt;!--T:104--&gt;

&lt;!--T:161--&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.

==== Core MediaWiki ==== &lt;!--T:316--&gt;
&lt;/translate&gt;
{{Tracked|T238412}}
&lt;translate&gt;
&lt;!--T:312--&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.

&lt;!--T:317--&gt;
The “&lt;tvar name=1&gt;{{int|Whatlinkshere}}&lt;/tvar&gt;” page must keep working, and remain useful for global transclusions.

==== TemplateData ==== &lt;!--T:105--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:438--&gt; It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:125--&gt; The “&lt;tvar name=wikitextFormat&gt;{{int|Templatedata-modal-title-templateformat}}&lt;/tvar&gt;” parameter (&lt;tvar name=inline&gt;{{int|Templatedata-modal-format-inline}}&lt;/tvar&gt;, &lt;tvar name=block&gt;{{int|Templatedata-modal-format-block}}&lt;/tvar&gt;, &lt;tvar name=custom&gt;{{int|Templatedata-modal-format-custom}}&lt;/tvar&gt;) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/translate&gt;

&lt;translate&gt;
==== Citoid ==== &lt;!--T:458--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:459--&gt; [[Citoid]] has to be configured on every wiki separately using JSON files, such as &lt;tvar name=citoid-example-link&gt;[[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]&lt;/tvar&gt;. In the global templates age, it must become possible to share these files, so that the “&lt;tvar name=citoidtool-title&gt;{{int|citoid-citoidtool-title}}&lt;/tvar&gt;” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/translate&gt;

&lt;translate&gt;
==== TemplateStyles ==== &lt;!--T:107--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:126--&gt; There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/translate&gt;

&lt;translate&gt;
==== TemplateSandbox ==== &lt;!--T:109--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:127--&gt; Special:TemplateSandbox must keep working.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:128--&gt; It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/translate&gt;

&lt;translate&gt;
==== TemplateWizard ==== &lt;!--T:111--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:129--&gt; The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:130--&gt; TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/translate&gt;

&lt;translate&gt;
==== Wikibase ==== &lt;!--T:113--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:131--&gt; Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:132--&gt; It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/translate&gt;

&lt;translate&gt;
==== VisualEditor ==== &lt;!--T:115--&gt;
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:133--&gt; VisualEditor obviously needs to be able to insert both global and local templates.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:134--&gt; VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/translate&gt;

&lt;translate&gt;
== Development and deployment == &lt;!--T:456--&gt;

&lt;!--T:460--&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:461--&gt; '''{{&lt;tvar name=1&gt;pll|Translatable modules&lt;/tvar&gt;|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:462--&gt; '''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:463--&gt; '''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:464--&gt; '''Global templates''': Complete the project with making the templates global.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:465--&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.

&lt;!--T:457--&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:162--&gt; Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:497--&gt; Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:498--&gt; Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:499--&gt; This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Imagine a world == &lt;!--T:173--&gt;

&lt;!--T:174--&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/translate&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;translate&gt;&lt;!--T:175--&gt; Task&lt;/translate&gt;
! scope="col" width="40%" |&lt;translate&gt;&lt;!--T:176--&gt; With the current template system&lt;/translate&gt;
! scope="col" width="40%" |&lt;translate&gt;&lt;!--T:177--&gt; With global templates&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:178--&gt; Insert an infobox using the Visual Editor&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:179--&gt; Go to “Insert”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:180--&gt; Click “Template”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:181--&gt; Find the template name somehow.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:182--&gt; Type the template name.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:183--&gt; Fill the fields.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:184--&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/translate&gt;

|
# &lt;translate&gt;&lt;!--T:185--&gt; Go to “Insert”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:186--&gt; Click “Infobox”.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:187--&gt; Select the infobox type you want.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:188--&gt; Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:189--&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:190--&gt; Insert an infobox using the wiki syntax editor&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:191--&gt; Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:192--&gt; Mostly manual: Copy from a similar article and change the parameter values.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:193--&gt; Use TemplateWizard (hoping that it is configured for your wiki):&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:194--&gt; Click the puzzle piece button.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:195--&gt; Find the template name somehow.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:196--&gt; Type the template name.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:197--&gt; Fill the parameters one by one using the form.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:198--&gt; If you want, you can still do all the same things as with the current template system.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:199--&gt; But you will also have these additional optional features:&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:200--&gt; To select a suggested infobox from a list instead of typing the name manually.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:201--&gt; To have the parameter values auto-filled.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:202--&gt; To have the same process for every wiki.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:203--&gt; Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:204--&gt; If you have time and necessary skills:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:205--&gt; Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:206--&gt; Copy the underlying modules, if necessary.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:207--&gt; Copy the TemplateStyles, if necessary.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:208--&gt; Copy the documentation and translate it in the wiki syntax editor.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:209--&gt; Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:210--&gt; Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:211--&gt; Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/translate&gt;
#&lt;translate&gt;&lt;!--T:212--&gt; If you don’t have time or necessary skills, you have two options:&lt;/translate&gt;
##&lt;translate&gt;&lt;!--T:213--&gt; Make a simpler template with fewer features.&lt;/translate&gt;
##&lt;translate&gt;&lt;!--T:214--&gt; Just give up.&lt;/translate&gt;
#&lt;translate&gt;&lt;!--T:215--&gt; '''Repeat the process for every language and every wiki.'''&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:216--&gt; If the template is in the global repository, then:&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:217--&gt; Go to the template documentation page.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:218--&gt; Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:219--&gt;
That’s it, the template is fully usable in your language.

&lt;!--T:220--&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:221--&gt; Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:222--&gt; Three options:&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:223--&gt; Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:224--&gt; Develop it by yourself.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:225--&gt; Give up and stay with the older version.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:226--&gt; Just translate the new strings. All the new features are already available in all wikis.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:289--&gt; Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:290--&gt; This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:291--&gt; The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:227--&gt; Translate an article from English, French, or Russian into your language using Content Translation&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:228--&gt; Open the article in Content Translation.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:229--&gt; Click the Infobox.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:230--&gt; If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:231--&gt; If no-one imported the infobox into your language, skip it.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:232--&gt; Translate the prose of the first paragraph.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:233--&gt; '''Carefully''' check that all of these templates were correctly adapted:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:234--&gt; IPA pronunciation templates&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:235--&gt; Native language name templates&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:236--&gt; Citation needed&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:237--&gt; Unit conversion&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:238--&gt; Blockquote&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:239--&gt; Country flags&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:240--&gt; Various others&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:241--&gt; Repeat steps 3 and 4 until everything you want is translated.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:242--&gt; Publish the article.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:243--&gt; Clean up incorrectly published wiki syntax.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:244--&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:245--&gt; Open the article in Content Translation.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:246--&gt; Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:247--&gt; Translate the prose of the first paragraph.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:248--&gt; All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:249--&gt; Repeat steps 3 and 4 until everything you want is translated.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:250--&gt; Publish the article.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:251--&gt; (Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:252--&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:253--&gt; Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:254--&gt; Check that a corresponding template exists in the target language. If it does:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:255--&gt; Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:256--&gt; If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:257--&gt; If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:258--&gt; Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:259--&gt; Find a similar citation template and use it.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:260--&gt; Just copy the text of the citation without formatting and structure.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:261--&gt; Give up and publish the article without the reference.&lt;/translate&gt;
| &lt;translate&gt;&lt;!--T:262--&gt; In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:293--&gt;
In the wiki syntax editor:
&lt;/translate&gt;

# &lt;translate&gt;&lt;!--T:294--&gt; Copy.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:295--&gt; Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:296--&gt; Paste the result.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:297--&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:390--&gt; Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/translate&gt;

&lt;small&gt;&lt;translate&gt;&lt;!--T:391--&gt; This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[&lt;tvar name=1&gt;w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0&lt;/tvar&gt;|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/translate&gt;&lt;/small&gt;
|
# &lt;translate&gt;&lt;!--T:392--&gt; Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:393--&gt; In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:394--&gt; In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:395--&gt; In every wiki: Copy the module from the central storage to your wiki.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:396--&gt; In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:397--&gt; In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:398--&gt; Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:399--&gt; Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:400--&gt; In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:401--&gt; In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:402--&gt; In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/translate&gt;
#* &lt;translate&gt;&lt;!--T:405--&gt; In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:403--&gt; Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:404--&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/translate&gt;

|-
|&lt;translate&gt;&lt;!--T:263--&gt; Start writing in a new wiki after the domain is created&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:264--&gt; After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:265--&gt; Start copying these templates one by one, or create your own.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:266--&gt; Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:267--&gt; You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:268--&gt; All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:269--&gt; Use a navigation box while reading an article on a mobile phone&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:270--&gt; '''Impossible.'''&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:271--&gt; Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[&lt;tvar name=1&gt;phab:T124168&lt;/tvar&gt;|there is demand for it]].)&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:272--&gt; '''Possible.'''&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:273--&gt; Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:381--&gt; Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:382--&gt; Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:383--&gt; Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:508--&gt; Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/translate&gt;
&lt;translate&gt;&lt;!--T:509--&gt; This happens in some of the smaller languages.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:384--&gt; Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/translate&gt;
|&lt;translate&gt;&lt;!--T:385--&gt; Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/translate&gt;

&lt;translate&gt;&lt;!--T:386--&gt; Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/translate&gt;
|-
|&lt;translate&gt;&lt;!--T:274--&gt; Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:275--&gt; Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/translate&gt;
# &lt;translate&gt;&lt;!--T:276--&gt; Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:277--&gt; Rewrite the code for every wiki.&lt;/translate&gt;
## &lt;translate&gt;&lt;!--T:278--&gt; Give up, and research only the English Wikipedia.&lt;/translate&gt;
|
# &lt;translate&gt;&lt;!--T:279--&gt; Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/translate&gt;
|}
&lt;translate&gt;
&lt;!--T:280--&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Status == &lt;!--T:163--&gt;

&lt;!--T:478--&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''

&lt;!--T:164--&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.

&lt;!--T:448--&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;tvar name=bugzilla&gt;&lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt;&lt;/tvar&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called &lt;tvar name=globalwiki&gt;[[:m:Global-Wiki|Global-Wiki]]&lt;/tvar&gt; was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.

&lt;!--T:449--&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[&lt;tvar name=wishlist2015&gt;:m:Community Wishlist Survey 2015&lt;/tvar&gt;|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[&lt;tvar name=wishlist2016&gt;:m:Community Wishlist Survey 2016/Results&lt;/tvar&gt;|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.

&lt;!--T:165--&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/translate&gt;

:&lt;translate&gt;&lt;!--T:166--&gt; ... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:167--&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/translate&gt;

:&lt;translate&gt;&lt;!--T:168--&gt; Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/translate&gt;

&lt;translate&gt;
&lt;!--T:477--&gt;
[[&lt;tvar name=aw&gt;:m:Abstract Wikipedia&lt;/tvar&gt;|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[&lt;tvar name=awt&gt;:m:Abstract Wikipedia/Tasks&lt;/tvar&gt;|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).

&lt;!--T:479--&gt;
The {{&lt;tvar name=txm&gt;pll|Translatable modules&lt;/tvar&gt;|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.

&lt;!--T:482--&gt;
In [[&lt;tvar name=survey&gt;:m:Community Wishlist Survey 2021&lt;/tvar&gt;|Community Wishlist Survey 2021]], the wish titled “[[&lt;tvar name=tt&gt;:m:Community Wishlist Survey 2021/Translation/Templates translation&lt;/tvar&gt;|Templates translation]]” received [[&lt;tvar name=results&gt;:m:Community Wishlist Survey 2021/Results&lt;/tvar&gt;|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[&lt;tvar name=apt&gt;#AutomaticParameterTranslation&lt;/tvar&gt;|Automatic parameter translation]].

&lt;!--T:480--&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{&lt;tvar name=strategy&gt;pll|Global templates/Relationship to strategy&lt;/tvar&gt;|Global templates/Relationship to strategy}}.

&lt;!--T:169--&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''&lt;/translate&gt; {{Triple globe}}
&lt;translate&gt;
== Useful links == &lt;!--T:170--&gt;

&lt;!--T:171--&gt;
Some relevant pages that discuss similar topics:
&lt;/translate&gt;

* &lt;translate&gt;&lt;!--T:283--&gt; [[&lt;tvar name=1&gt;Platform Evolution/Goals&lt;/tvar&gt;|Platform Evolution/Goals]]&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:284--&gt; [[&lt;tvar name=1&gt;Platform Evolution/Recommendations&lt;/tvar&gt;|Platform Evolution/Recommendations]]&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:285--&gt; [[&lt;tvar name=1&gt;Multilingual Templates and Modules&lt;/tvar&gt;|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:286--&gt; [[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:287--&gt; [[:m:Which templates should be global?]] - an informal list made by various editors&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:372--&gt; [[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/translate&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;translate&gt;&lt;!--T:373--&gt; an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:444--&gt; [[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:474--&gt; [[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/translate&gt;
* &lt;translate&gt;&lt;!--T:483--&gt; [[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[&lt;tvar name=apt&gt;#AutomaticParameterTranslation&lt;/tvar&gt;|Automatic parameter translation]].&lt;/translate&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>1c93975c53465b2912d59c662b653d548ccd81ab</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Global templates/Proposed specification/489/cs</title>
  <ns>1198</ns>
  <id>1992134</id>
  <revision>
    <id>6624148</id>
    <parentid>6623640</parentid>
    <timestamp>2024-07-09T07:33:07Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="199" xml:space="preserve">Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů $1 rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.</text>
    <sha1>d9d80cefcce430235f680ebb10ae180ddab8cc66</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Global templates/Proposed specification/440/cs</title>
  <ns>1198</ns>
  <id>1992136</id>
  <revision>
    <id>6624150</id>
    <parentid>6623664</parentid>
    <timestamp>2024-07-09T07:33:43Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="216" xml:space="preserve">Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.</text>
    <sha1>dfc1db79b6caa336d224b4b2dfbef652d5acfb60</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Global templates/Proposed specification/545/cs</title>
  <ns>1198</ns>
  <id>1992250</id>
  <revision>
    <id>6624153</id>
    <timestamp>2024-07-09T07:36:32Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]]."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="113" xml:space="preserve">Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].</text>
    <sha1>fb64adb62dad0ae18998a74edb4580e7dfd07a48</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Global templates/Proposed specification/311/cs</title>
  <ns>1198</ns>
  <id>1992144</id>
  <revision>
    <id>6624155</id>
    <parentid>6623662</parentid>
    <timestamp>2024-07-09T07:36:54Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="51" xml:space="preserve">Názvy modulů Lua jsou také často lokalizovány.</text>
    <sha1>8e6abd02fd3f6fce6a3f27f9eb4ac01185cecca1</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Global templates/Proposed specification/546/cs</title>
  <ns>1198</ns>
  <id>1992251</id>
  <revision>
    <id>6624158</id>
    <timestamp>2024-07-09T07:38:06Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="285" xml:space="preserve">Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.</text>
    <sha1>2888bcde3205242d3cbc340f3036dbaba257fb1a</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Global templates/Proposed specification/157/cs</title>
  <ns>1198</ns>
  <id>1992252</id>
  <revision>
    <id>6624160</id>
    <timestamp>2024-07-09T07:39:52Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="170" xml:space="preserve">Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.</text>
    <sha1>0d98d858d9861166faee98b86d8ebcd7d9a2f119</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Global templates/Proposed specification/90/cs</title>
  <ns>1198</ns>
  <id>1992253</id>
  <revision>
    <id>6624162</id>
    <timestamp>2024-07-09T07:40:22Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="471" xml:space="preserve">V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.</text>
    <sha1>1bd38cc6562e6b029466c06ed625086a50bcc96f</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Global templates/Proposed specification/446/cs</title>
  <ns>1198</ns>
  <id>1992254</id>
  <revision>
    <id>6624164</id>
    <timestamp>2024-07-09T07:40:55Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="210" xml:space="preserve">Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.</text>
    <sha1>5d3f851e39d74da67ad7fa03d93caf2757fad2fc</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Global templates/Proposed specification/91/cs</title>
  <ns>1198</ns>
  <id>1992255</id>
  <revision>
    <id>6624166</id>
    <timestamp>2024-07-09T07:41:23Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Tyto překlady názvů parametrů musí být ověřeny:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="55" xml:space="preserve">Tyto překlady názvů parametrů musí být ověřeny:</text>
    <sha1>54892e5ff6ee08c90094224ecd5dfb91dffd8f9b</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Global templates/Proposed specification/92/cs</title>
  <ns>1198</ns>
  <id>1992256</id>
  <revision>
    <id>6624168</id>
    <timestamp>2024-07-09T07:41:41Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "nesmí obsahovat neplatné znaky"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="32" xml:space="preserve">nesmí obsahovat neplatné znaky</text>
    <sha1>0dd69c990cc6cfec39214cdbc332c8250229fd44</sha1>
  </revision>
  <revision>
    <id>6624174</id>
    <parentid>6624168</parentid>
    <timestamp>2024-07-09T07:43:06Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="32" xml:space="preserve">Nesmí obsahovat neplatné znaky</text>
    <sha1>9649c0db728c394cdd19504039aed246f91cbef8</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Global templates/Proposed specification/93/cs</title>
  <ns>1198</ns>
  <id>1992257</id>
  <revision>
    <id>6624170</id>
    <timestamp>2024-07-09T07:42:10Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "nesmí se opakovat v rámci jedné šablony v jednom jazyce"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="59" xml:space="preserve">nesmí se opakovat v rámci jedné šablony v jednom jazyce</text>
    <sha1>8490a4fc2e7f5c841771a9a0afdc095fff61c872</sha1>
  </revision>
  <revision>
    <id>6624176</id>
    <parentid>6624170</parentid>
    <timestamp>2024-07-09T07:43:14Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="59" xml:space="preserve">Nesmí se opakovat v rámci jedné šablony v jednom jazyce</text>
    <sha1>b43b93815ea6c6fa0c1d6482abe615a804faffef</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Global templates/Proposed specification/94/cs</title>
  <ns>1198</ns>
  <id>1992258</id>
  <revision>
    <id>6624172</id>
    <timestamp>2024-07-09T07:42:29Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "''Něco dalšího?''"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="20" xml:space="preserve">''Něco dalšího?''</text>
    <sha1>b4558b6b41ca274739ffc8c1e6388cd39f0b04f8</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Global templates/Proposed specification/415/cs</title>
  <ns>1198</ns>
  <id>1992259</id>
  <revision>
    <id>6624178</id>
    <timestamp>2024-07-09T07:44:10Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="373" xml:space="preserve">Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.</text>
    <sha1>e1de7a63aa2d5b2076236456154b2a4846f4df03</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Global templates/Proposed specification/298/cs</title>
  <ns>1198</ns>
  <id>1992260</id>
  <revision>
    <id>6624180</id>
    <timestamp>2024-07-09T07:44:28Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "==== Automatický překlad parametrů ===="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="42" xml:space="preserve">==== Automatický překlad parametrů ====</text>
    <sha1>023de219b2245aa3d487c103c17b80a0340ed9e7</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Technical decision making/Technical Decision-Making Process Retrospective and Consultation plan/Retrospective and Consultation: Results and Analysis</title>
  <ns>0</ns>
  <id>1954312</id>
  <revision>
    <id>6624182</id>
    <parentid>6511990</parentid>
    <timestamp>2024-07-09T08:24:39Z</timestamp>
    <contributor>
      <username>41.114.211.157</username>
      <id>0</id>
    </contributor>
    <comment>Update</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="27328" xml:space="preserve">'''Status:''' Published

'''Authors:''' [[Technical decision making/Technical Decision-Making Process Retrospective and Consultation plan|TDMP Retro Committee]]: Chris Danis, Daniel Kinzler, Kosta Harlan, Moriel Schottlender, Temilola Adeleye


This document presents the findings of the [[listarchive:list/wikitech-l@lists.wikimedia.org/thread/Q7DUCFA75DXG3G2KHTO7CEWMLCYTSDB2/|survey]] conducted among the Wikimedia technical community regarding their perspectives on a technical decision-making process in July 2023. 

The purpose of this document is to serve as a '''comprehensive summary''', offering insights from the retrospective collection of opinions and voices within the technical community. It is ''not'' intended to provide a new decision-making methodology or devise a fresh process.

== Process ==
The survey was built and delivered through LimeSurvey with the help of the Research team. 

* The survey was [[listarchive:list/wikitech-l@lists.wikimedia.org/message/Q7DUCFA75DXG3G2KHTO7CEWMLCYTSDB2/|announced]] on the technical mailing lists on July 18, 2023, and remained open until August 7, 2023.
* Privacy policy was provided by Legal at https://foundation.wikimedia.org/wiki/Legal:Technical_Decision-Making_Process_Retrospective 
* Analysis of the data was done by the TDMP Retro committee with the help of the Research team and the Movement Communications team.

=== Intended audience ===
The [[listarchive:list/wikitech-l@lists.wikimedia.org/thread/Q7DUCFA75DXG3G2KHTO7CEWMLCYTSDB2/|Technical Decision-Making Retrospective Survey]] requested feedback from individuals actively engaged in technical work impacting the Wikimedia environment, including those contributing code to MediaWiki and relying on production code for their tools. The audience was deliberately self-selected, engaging individuals invested in the technical decision-making process. Outreach efforts included communication through various channels such as multiple [[listarchive:list/wikitech-l@lists.wikimedia.org/message/2GNFGILAYZYHCWE24WTKMH3IIMHEG7HI/|technical mailing lists]], announcements [[metawiki:Tech/News/2023/30|in Tech News]] (and [[m:Tech/News/2023/37|later in Tech News]]), [[phab:T333235|Phabricator]], and [[Technical decision making/Technical Decision-Making Process Retrospective and Consultation plan|publication on MediaWiki]]. 

Accessibility was prioritized, allowing participants to provide input through a survey, written communication publicly or privately, and/or two live Zoom listening sessions. 

This multifaceted approach aimed to enable diverse perspectives within the intended audience and foster comprehensive insights into the technical decision-making landscape.

'''Caveat:''' The survey responses represent participants who are developers and individual contributors to the technical environment of the Wikimedia movement. It is important to note that other stakeholders in the technical ecosystem, such as users of the technical products and other impacted parties were not targeted in this research.

=== Survey Demographics ===
A total of 129 people completed the survey. Roughly the same number of surveys were begun but abandoned.

'''Affiliation [Q00]:'''

* 67% of respondents are staff (WMF or Chapter)
* 40% of respondents contribute as volunteers (developer or editor)
* 10% of respondents are 3rd party professionals (developer or editor)

(Note that the numbers add to more than 100%, because some people have multiple affiliations. For instance, 13 respondents who are WMF staff also contribute as volunteer editors.)

'''Tenure [Q01]:'''

* More than 50% the respondents have been contributing for over five years
* Only 8% of respondent have been contributing for less than a year

'''Contribution [Q02]:'''

* 40% of respondents contribute to WMF production code.
* 25% indicate that they work on code that consumes public APIs.
* 15% of respondents maintain code on-wiki or on WMF Cloud Services.
* 12% of respondents write code for 3rd party use.
* 7% (nine people) said that they do not contribute code. Most of these indicated that they have some kind of management role at WMF, while two were volunteer editors and one is a third-party employee.

(Note that the categories are not exclusive, as some people contribute in multiple ways)

'''Gender [Q03]:'''

* 67% of respondents identify as “men”
* 14% identify as “women”
* 12% did not specify any gender
* 11% identified as trans, non-binary, or other.

(Note that the numbers add to more than 100%, because some people identify as multiple genders)

'''Participation [Q15]:'''

* About 40% of respondents (50 people) indicated that they have taken part in the TDMP process in the past.
* 12% say that they were driving a decision, 25% were consulted as stakeholders, 16% were involved in the implementation.
* 22% of respondents indicated that they have observed a TDMP process as an interested party.
* 16 people were unsure whether they had participated or not.

Overally, very few significant differences were found between the different groups, such as staff, volunteers, third-party employees, long-term contributors, tool maintainers, and people who have participated in the process before. They are highlighted below when relevant.

Interestingly, sentiment from the 40 non-male respondents was less pronounced for all questions, with scores closer to neutral, while showing the same trends as other groups.

== Analysis ==

=== Feedback about Current TDMP Process ===
'''Having a process for technical decisions is considered valuable, but there are a lot of deficiencies in the current process that need to be addressed.'''

Respondents consistently disagreed with the statements that the current process ''“meets the needs”'' [Q10] (effectiveness), is ''“open and accessible”'' [Q12] (accessibility), and is ''“easy to follow”'' [Q13] (transparency), ranking them at or worse than -0.4 on a scale of -2 to +2. The proposition that the ''“decisions are relevant”'' [Q11] received a neutral score close to 0.

[[File:TDMPRetro-2024-Q10-Q13-Current-Process.png|600x600px]]

If we examine the responses of '''the 50 people who have actively participated in the process''' [Q15], '''scores are significantly worse''': ''“meets the needs”'' scores below -0.8, ''“relevant”'' below -0.5, ''“accessible”'' and ''“easy to follow”'' below -0.6 [Q10-Q13]. However, those who participated as ''drivers'' [Q15b] were neutral on ''“easy to follow”'') [Q13].

Across all groups, the current process is perceived as slow (-0.6 on a scale of -2 to +2), bureaucratic (-0.6), inefficient (-0.4), non-inclusive (-0.2), and unhelpful (-0.2). Again, ''“decisions are relevant”'' is hovering at around 0 [Q16]. 

[[File:TDMPRetro-2024-Q16-Current-Process.png|600x600px]] 

If we examine responses from different groups, we once again find that the scores are worse among people who have participated in the TDMP in the past [Q15]. Particularly, people who have been ''drivers'' in the process have found it to be ''slow'' and ''bureaucratic'' (both at a solid -1) [Q16].

Interestingly, of the 50 respondents who had participated in the TDMP, '''only 36 (72%) indicated that they have a good familiarity with the process''' [Q14]. Even of the 63 respondents who did not participate in the TDMP before [Q15], merely 4 (6%) said they had good familiarity.

In the free-form text responses [Q21], there were some aspects of the current process that were called out as worth keeping or in need of strengthening:

* Keep an initial round of communication that allows stakeholders to self-identify.
* Strengthen representation of stakeholders outside of WMF.
* Improve clarity and transparency of the process and documentation of decisions.
* Strengthen leadership and decision authority.

=== Needs for Future TDMP Process ===
'''There is a clear mandate for making significant changes to the TDMP process''' [Q17]'''.''' Only 1% of respondents want to keep the current process ''unchanged''. The plurality of respondents (36%) even suggest to re-design the process ''from scratch'', while another 27% say we should make ''minor changes'' (and 3% indicated they want ''major changes'' in the free-form comments). 14% indicate that they would like the process to be ''more like the TechCom RFC process'' we were using until 2020. The “other” option was used mostly to say ''“I don’t know”''.

[[File:TDMPRetro-2024-Q17-Change.png|600x600px]]

The results are consistent across all groups of respondents. '''Notably, the strongest wish for change comes from the group of people who have been ''driving'' decisions through the process [Q15]''': 10 of these 16 decision ''drivers'' (63%) say that they would like to see the process ''re-designed from scratch'', and another 5 (31%) say we should make ''minor changes''. Interestingly, none of them want to see the process to be more like ''TechCom RFCs'', while this idea had significant support among those who had been participating as ''stakeholders'' and ''observers'' (13% and 25%, respectively).

Across all groups, '''the strongest support for going back to the ''TechCom RFC process'' comes from ''third-party staff'' (33%) and ''maintainers of production code'' (20%)'''. Support is weakest among respondents who have been around for ''five years or less'' (7%).

'''Overall, respondents are asking for a public process that focuses on high quality decisions that are clearly documented''' [Q05]'''.''' When asked to rank which features they want in a decision making process, respondents clearly went for ''public discussion'' and ''explicit documentation'' (+1.4 and +1.6, on a scale from -2 “must not happen” to +2 “must happen”). This is also supported by the free-form answers: when we asked what people most want to change about the process [Q18], 28 of 70 responses highlighted public communication and documentation.

The remaining four options got a lot less support: the idea that decisions should be made by the person or group ''responsible for the implementation'' got only weak support (+0.3), starting the process ''without proposing solutions'' did only slightly better (+0.5), closely followed by ''active facilitation'', an ''owner-driven process'', and ''open participation'' (around +0.6). That’s still less than half of the score received by the top two items.

[[File:TDMPRetro-2024-Q05-Feature-Importance.png|600x600px]]

There is an interesting difference between ''volunteers'' respondents and ''staff'': 

* ''Volunteer contributors'' are generally in favor of the process being open to ''anyone participating at any point'' (+1.0) and are less supportive of decisions being made ''by the group in charge of implementation'' (+/-0). 
* ''Among staff contributors'' both ideas get lukewarm support, with ''open participation'' getting a lower score than among volunteers (+0.6) and ''decisions being made by implementers'' getting as higher score (+0.5) 

The trade-off ranking of process attributes shows a similar picture [Q4]: on average, '''respondents from all groups favored focussing on producing the ''highest quality of code and design'' (+1.1) and ''including all voices'' (+0.7 on a scale of -2 to +2).''' This is confirmed by 28 of 70 responses to the free-form question [Q18] asking for a more open and inclusive process.

[[File:TDMPRetro-2024-Q04-Feature-tradeoff.png|600x600px]]

It is interesting to note that here, both ''staff'' and ''volunteer'' ''contributors'' support the idea of ''including all voices'' to the same degree (+0.8)''',''' while the idea that ''anyone'' can join the discussion ''at any point'' [Q05] seems more controversial, as discussed above.

Another interesting aspect is that ''long-term contributors'' valued ''including all voices'' on-par with ''high quality code'' (at +0.9), while respondents who have been contributing for ''five years or less'' value inclusivity quite a bit lower than quality (+0.1 vs. +0.4).

Looking at all groups again, '''respondents assigned little importance to ''making decisions quickly'' (-0.6, staff at -0.8)''' and to finding solutions that can be ''implemented with little effort'' (-1.2). 

'''Respondents favor a pragmatic approach to determining at which point of decision making a formal process should be started''' [Q09]: 35% say the process would start when there is a need for ''"consultation with stakeholders”'', and 32% say when there is a need to ''“brainstorm solutions”''. Only 7% want to start immediately ''when a problem is identified'' (the status quo in the current TDMP), and only 12% want to always ''wait until a specific solution is proposed''. 

This matches the fact that respondents are generally unsure about ''when to engage'' with the process [Q08] (-0.3 on a scale of -1 to +1), while they are a little more sure of ''how to engage'' [Q07] (-0.1). 

== Interpretation of survey results ==
In this section, we distill insights from our survey on technical decision-making. Through a thorough analysis of participant responses, some key patterns and challenges emerge, offering valuable guidance for iterating on the decision processes. 

=== Design tensions ===
The survey highlights some intricate trade-offs involved in crafting a decision-making process, emphasizing the need to balance simplicity, flexibility, and broad participation in future design considerations.&lt;nowiki&gt;[[Script is the only way that can be used for controlling your needs @￼￼Damiyo￼￼@usernameand]]&lt;/nowiki&gt; 

'''Adjustable process vs. Simplicity:''' There is a need to make the process more flexible, and offer a light-weight option. There also arose a need to make the process less complicated and elaborate. Those two may be hard to reconcile.

'''Wide participation vs. Efficiency:''' On one hand, there’s a call to make sure discussions are public and include many voices and perspectives. On the other hand, there is the weariness that decisions take a long time and involve a complex process that depends on feedback stages that slow it down. 

=== Initiating the process ===
'''Many respondents preferred the option to include decision statements alongside proposed solutions during the initial phase of the process.''' Respondents expressed that there are cases where discussing a problem without proposed solutions is wasteful and confusing, and there needs to be room to include potential solutions if any are known.  Having a clear problem statement was seen as necessary but not sufficient to identify the group of stakeholders – since some may not be affected by the problem, but only by some of the possible solutions.

'''Several respondents also felt that the option of 'doing nothing' should be considered when making technical decisions'''. Providing insight into why a decision is necessary was seen to be as crucial as deciding what action to take. They believed that incorporating the consideration of doing nothing would ensure a thoughtful and deliberate decision-making process, aligning with the survey's emphasis on strategic and well-informed choices in technical contexts.

Explicitly considering alternative solutions early on, including the option to do nothing, was seen as likely to provide a better understanding on why the problem needs solving, and how different groups might be affected by each solution.

=== Accountability and authority ===
'''Several participants supported the idea of establishing a mechanism for addressing concerns and documenting alignment'''. They appear to be concerned that the decision owners are not held accountable for the consequences of their decisions. Respondents emphasized the importance of ensuring that  impacted parties have a voice in the decision.

'''The next shared recommendation was to Include relevant stakeholders in the decision process.''' The survey results emphasize the importance of empowering stakeholders from outside the team to flag a decision for consideration. Part of the purpose of the decision making process would be ensuring that people affected by a decision have a voice in making it.

'''Survey respondents also believed in the decision-making process until all concerns have been acknowledged, or until the decision is abandoned explicitly'''. Survey respondents expressed a desire for a clear and binding end to the decision-making process. There were concerns about instances where teams, growing impatient with the process, proceeded without consensus or a documented explicit decision. 

=== Communication and process ===
'''Survey respondents recommended establishing a steady cadence of public updates about what decisions are in progress and what their respective status is.''' This was viewed as allowing people to discover decisions that are relevant to them, and would make the process more visible, accessible, and discoverable.

'''Participants also wanted a new process to support a clear sense of progress on technical decisions.''' They wanted it to be clear what is expected at any given time, what the next steps are, and who needs to take them. This came up in the free-form responses, but can also be seen from the fact that the process is perceived as slow, but on the other hand, fast decision making is not considered very important compared to other aspects. 

'''Respondents recommended identifying stakeholders early in the process.''' This was seen as a way to allow internal and external groups and individuals to identify as stakeholders who can then collaborate to shape the decision. The survey indicates a wish for strengthening the role of the community in the process. 

'''Survey participants wanted to ensure clear documentation of proposals and decisions.''' Many respondents recommend that the [[:File:Decision Record TEMPLATE pdf.pdf|decision record]] should describe why a specific option was chosen, as well as which concerns and questions were addressed during the process. Similarly, respondents proposed that the initial proposal should be clear on why a decision is needed at all, and present possible solutions already under consideration.

= Appendix: Survey questions =

== Demographic questions ==
'''Q00. What is your affiliation with Wikimedia technical spaces? (Multiple choice allowed)'''

* WMF employee (57%)
* Chapter employee (9%)
* Volunteer developer (39%)
* Volunteer editor (40%)
* Third-Party developer (9%)
* Contribute to Wikimedia as part of my job (9%)
* Other [Free text]

'''Q01. How many years of experience do you have with the Wikimedia technical spaces?'''

* &lt; 1 year (8%)
* 1-2 years (16%)
* 2-5 years (26%)
* 5+ (53%)

'''Q02. What is your interaction with technical spaces? (Choose as many as apply)''' 

* I contribute to code deployed by WMF (39%)
* I maintain on-wiki code (such as gadgets) (15%)
* I maintain bots/tools that run on toolforge or Wikimedia Cloud (16%)
* I develop mediawiki extensions for use outside of Wikimedia (12%)
* I write code that relies on the Wikimedia APIs (25%)
* Other (0%)

'''Q03. Which of these categories describes your gender identity?'''

(Multiple choices allowed)

* Male / Man (67%)
* Female / Woman (14%)
* Transgender (2%)
* Non-binary (7%)
* Genderqueer (2%)
* I would prefer not to say (12%)
* Other (0%)

== General decision-making process ==
'''Q04. All decision-making processes have tradeoffs. How would you prioritize these attributes?'''

(The stack rank was converted to a -2 to +2 scale for evaluation, to be consistent with other questions. The option ranked lowest  by a respondent was assigned a score of -2 while the one ranked highest got a scope of +2)

* Decisions are made quickly (-0.6)
* Decisions are focused on the producing the highest quality of the design and code (+0.1)
* The process involves all concerned voices (+0.7)
* Solutions can be done by the least amount of effort and expense (-1.2)

'''Q05. Rank the importance of the following elements of a technical decision process  (1- must not happen; 5- must happen)''' 

(Note that the 1 to 5 scale was shifted to a -2 to +2 scale for evaluation, to be consistent with other questions)

* Decision owners are responsible for driving the process (+0.6)
* There is a dedicated facilitator who ensures that the process is followed and helps to set up conversations. (+0.6)
* Decisions start with a statement of purpose explaining a problem or opportunity, without proposing solutions (+0.5)
* The decision is made by the person or group responsible for the implementation. (+0.3)
* Discussions about the decision are public (+1.4)
* Anyone can participate in the discussion at any point (+0.7)
* The rationale for the decision is clearly documented (+1.6)

'''Q06. Is there anything missing from the list above that you would like to mention, either positively or negatively?'''

== Technical Decision-Making Process (TDMP) ==
'''Q07. If I needed to, I know how to approach the Tech Decision Forum for a decision about something'''

(Conversion to scores of -1 to +1 gives an average of -0.1)

* Yes (score+1)
* No (score -1)
* Unsure (score 0)

'''Q08. I know when (and in what types of decisions) to approach the Tech Decision Decision Making for a decision about something'''

(Conversion to scores of -1 to +1 gives an average of -0.3)

* Yes (score +1)
* No (score -1)
* Unsure (score 0)

'''Q09. At what stage would you want a decision to go through the Technical Decision-Making Process?'''

* Immediately when a problem is raised (7%)
* When there is a need for brainstorming about how to approach solutions (32%)
* When there’s a need for a consultation with stakeholders (35%)
* When solutions are being considered (13%)
* Other (free text) (14%)

'''Q10. The TDMP meets the needs of the Wikimedia technical community'''

(Conversion to scores of -2 to +2 gives an average of -0.44)

* Strongly Disagree (score -2)
* Disagree (score -1)
* Neutral (score 0)
* Agree (score +1)
* Strongly agree (score +2)
* I'm not sure (score 0)

'''Q11. The decisions that result from the TDMP are relevant to my contributions'''

(Conversion to scores of -2 to +2 gives an average of 0.0)

* Strongly Disagree (score -2)
* Disagree (score -1)
* Neutral (score 0)
* Agree (score +1)
* Strongly agree (score +2)
* I'm not sure (score 0)

'''Q12. Tech decision processes are open and accessible to affected stakeholders.'''

(Conversion to scores of -2 to +2 gives an average of -0.4)

* Strongly Disagree (score -2)
* Disagree (score -1)
* Neutral (score 0)
* Agree (score +1)
* Strongly agree (score +2)
* I'm not sure (score 0)

'''Q13. It is easy to stay informed about ongoing technical decisions.'''

(Conversion to scores of -1 to +1 gives an average of -0.5)

* Yes (score +1)
* No (score -1)
* I’m not sure (score 0)

'''Q14. How familiar/comfortable are you with our current tech decision-making process?'''

(Conversion to scores of -2 to +2 gives an average of -0.1)

* I have no knowledge of the process (score -2)
* I’ve heard of it, but don’t know what’s involved (score -1)
* I know a few parts of it, or the rough outline (score 0)
* I could roughly explain it to a friend (score +1)
* I could confidently describe it to a room full of people (score +2)

'''Q15. Have you ever participated in the Technical Decision-Making Process?'''

* Yes (39%)
* No (49%)
* I’m not sure (12%)

Q15b. If your answer to the previous question was a yes, what was your role in the process?

(Percentage of those who answered “Yes” above, multiple choices allowed)

* Decision driver (32%)
* Stakeholder (60%)
* Involved in the implementation of the solution (42%)
* An interested party, not directly involved (56%)

'''Q16. Based on what you have observed, where do you see the Technical Decision-Making Process on the following scale?'''

(Evaluated as a score between +2 down to -2)

* Streamline | Bureaucratic (-0.6)
* Inclusive | Not participatory / open (-0.2)
* Fast | Slow (-0.6)
* Efficient | Inefficient (-0.4)
* Helpful | Not Helpful (-0.2)
* Relevant | Irrelevant (0.0)

'''Q17. In my opinion, the Wikimedia community should:'''

* Keep the decision-making process (Technical Decision-Making Process) exactly as it is (1%)
* Make minor improvements to the existing decision-making process based on feedback in this retro (27%)
* Start over from scratch and design a new decision-making process (36%)
* Change our decision-making to look more like the previous process (TechCom RFCs) (14%)
* Something else [Free text] (23%)

== Open questions ==
'''Q18. If I could change one thing about the existing tech decision process, it would be:'''
{| class="wikitable"
|1: Encouraging an open process with involvement from volunteers and the wider community.
|'''28'''
|-
|2: Less bureaucratic, more efficient, and clear decision-making process.
|'''15'''
|-
|3: Clear communication and well-maintained documentation.
|'''28'''
|-
|4: Clear leadership and decision authority.
|12
|-
|5: Using more open platforms like Wiki and phab to facilitate the decision-making process.
|8
|-
|6: Improved feedback mechanisms and tracking of decision outcomes.
|11
|-
|7: No input/Unsure.
|197
|-
|
|
|-
|Total question respondents:
|70
|}
'''Q19. Is there a type of technical decision that lacks a process but needs one, please state it below.'''
{| class="wikitable"
|1: Desire for increased involvement or participation and communication.
|7
|-
|2: Technical Process and prioritization concerns.
|'''22'''
|-
|3: Technical infrastructure and resources concerns.
|'''8'''
|-
|4: concerns related to technical policies, procedures, and decision management.
|'''11'''
|-
|5: General Concerns, Lack of Knowledge, or Experience (Including responses of "NO").
|18
|-
|6: No input/Unsure.
|216
|-
|
|
|-
|Total question respondents:
|49
|}
'''Q20. (If answered yes to the previous question) What would that process look like for the decision above?'''
{| class="wikitable"
|1: Specific suggestions or recommendations for processes.
|10
|-
|2: Desire for increased involvement or participation and communication.
|'''5'''
|-
|3: Defining roles, responsibilities, or oversight in decision-making.
|'''11'''
|-
|4: Reflecting satisfaction or dissatisfaction with current.
|3
|-
|5: Reflecting satisfaction or dissatisfaction with previous.
|1
|-
|6: No input/Unsure.
|243
|-
|
|
|-
|Total question respondents:
|41
|}
'''Q21. One important thing to keep from the existing tech decision process is:'''
{| class="wikitable"
|1: Responses favoring certain aspects of the current process.
|'''13'''
|-
|2: Expressions of dissatisfaction or disapproval with the current process.
|8
|-
|3: Suggestions related to maintaining or improving stakeholder engagement.
|'''16'''
|-
|4: Emphasis on documentation, transparency, and clear problem definitions.
|8
|-
|5: Suggestions for process modifications for better outcomes.
|'''5'''
|-
|6: No input/Unsure.
|223
|-
|
|
|-
|Total question respondents:
|47
|}
'''Q22. One thing that I think is missing from this survey is'''
{| class="wikitable"
|1: Suggestions on how questions could be worded or framed differently.
|2
|-
|2: Proposals for new questions or topics.
|'''13'''
|-
|3: Feedback on the design, formatting, or structure of the survey.
|3
|-
|4: Unrelated Responses / No input / Unsure.
|247
|-
|
|
|-
|Total question respondents:
|27
|}</text>
    <sha1>432a1ffd5f4a6b321300c7b8f1bfcbbea02351c0</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Topic:Y87dk9xtekbs4g3a</title>
  <ns>2600</ns>
  <id>1992261</id>
  <revision>
    <id>6624183</id>
    <timestamp>2024-07-09T08:27:51Z</timestamp>
    <contributor>
      <username>Flow talk page manager</username>
      <id>1946968</id>
    </contributor>
    <comment>/* This page has been converted into a Structured Discussions board */</comment>
    <model>flow-board</model>
    <format>application/json</format>
    <text bytes="1" xml:space="preserve">{"flow-workflow":"y87dk9xtekbs4g3a"}</text>
    <sha1>19759efc4517ec520e2090df9bb4cfc14386ff88</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Reading/Web/Accessibility for reading/Updates/2024-07 deployments/1/nl</title>
  <ns>1198</ns>
  <id>1992262</id>
  <revision>
    <id>6624184</id>
    <timestamp>2024-07-09T08:28:44Z</timestamp>
    <contributor>
      <username>Ellywa</username>
      <id>21596</id>
    </contributor>
    <comment>Created page with "== De "Dark mode" voor niet ingelogde gebruikers komt binnenkort! =="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="68" xml:space="preserve">== De "Dark mode" voor niet ingelogde gebruikers komt binnenkort! ==</text>
    <sha1>afbdbc02c73eb4eba1223a0f12ec44b56685ca96</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Reading/Web/Accessibility for reading/Updates/2024-07 deployments/nl</title>
  <ns>0</ns>
  <id>1992263</id>
  <revision>
    <id>6624185</id>
    <timestamp>2024-07-09T08:28:45Z</timestamp>
    <contributor>
      <username>Ellywa</username>
      <id>21596</id>
    </contributor>
    <comment>Created page with "== De "Dark mode" voor niet ingelogde gebruikers komt binnenkort! =="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="3661" xml:space="preserve">&lt;languages/&gt; 
&lt;span id="Dark_mode_for_logged-out_users_coming_soon!"&gt;&lt;/span&gt;
== De "Dark mode" voor niet ingelogde gebruikers komt binnenkort! ==
[[File:Accessibility_for_reading_mockup_with_dark_mode_on.png|thumb]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Hi everyone, [[diffblog:2023/11/24/dark-mode-is-coming/|for the past year]], the [[mw:Special:MyLanguage/Reading/Web|Web team at the Wikimedia Foundation]] has been working on dark mode. This work is part of the [[mw:Special:MyLanguage/Reading/Web/Accessibility for reading|Accessibility for Reading]] initiative that introduces changes to the Vector 2022 and Minerva skins. It improves readability, and allows everyone, both logged-out and logged-in users, to customize reading-focused settings.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Since early this year, dark mode has been available as a [[Special:Preferences#mw-prefsection-betafeatures|beta feature]] on both the mobile and the desktop website. We have been collaborating with template editors and other technical contributors to prepare wikis for this feature. This work included fixing templates and ensuring that many pages can appear with dark mode without any accessibility issues. We would like to express immense gratitude to everyone involved in this. Because so much has been done, '''next week''', we will be releasing the feature to all Wikipedias!
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
'''Deployment configuration and timeline'''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Tier 1 and 2 Wikipedias: wikis where the '''[https://night-mode-checker.wmcloud.org/ number of issues] in dark mode when compared to light mode is not significant.''' These wikis will receive dark mode for both logged-in and logged-out users. Some small issues might still exist within templates, though. We will be adding ways to report these issues so that we can continue fixing templates together with editors.
* Tier 3 Wikipedias: wikis where the number of issues in dark mode when compared to light mode is significant. These wikis will only receive dark mode for logged-in users. We would like to make dark mode available to all users. However, some wikis still require work from communities to adapt templates. Similar to the group above, these wikis will also receive a link for reporting issues that will help identify remaining issues.
* Week of July 1: mobile website (Minerva skin) on the Tier 1 Wikipedias
* '''Week of July 15:''' desktop website (Vector 2022 skin) on all Wikipedias; mobile website: logged-in and logged-out on the Tier 2 Wikipedias, logged-in only on the Tier 3 Wikipedias
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
'''How to turn on dark mode'''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The feature will appear in the Appearance menu alongside the options for text and width. Depending on compatibility and technical architecture, some pages might not be available in dark mode. For these pages, a notice will appear in the menu providing more information.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
'''How to make dark mode even better!'''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you would like to help to make more pages dark-mode friendly, go to our [[Special:MyLanguage/Reading/Web/Accessibility for reading/Updates/2024-04|previous message]] and see the section "What we would like you to do (template editors, interface admins, technical editors)".
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Thank you everyone. We're looking forward to your questions, opinions, and comments!
&lt;/div&gt;</text>
    <sha1>24aa8605991c4aad4e53c8281b5e744dd458a0f8</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Help:Mass account creation/1/ru</title>
  <ns>1198</ns>
  <id>1992264</id>
  <revision>
    <id>6624186</id>
    <timestamp>2024-07-09T08:39:43Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "[[$1|Вход в систему]] полезен, и [[$2|создание учетной записи]] рекомендуется;  иногда необходимо создать множество учетных записей пользователей на вики одновременно в одном и том же месте, обычно для [[$3|мастерской редактирования]], где «студенты» должны зарегист..."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="537" xml:space="preserve">[[$1|Вход в систему]] полезен, и [[$2|создание учетной записи]] рекомендуется;  иногда необходимо создать множество учетных записей пользователей на вики одновременно в одном и том же месте, обычно для [[$3|мастерской редактирования]], где «студенты» должны зарегистрироваться перед редактированием.</text>
    <sha1>4c617acad496a8d9234ae487d45638227d8598f5</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Help:Mass account creation/ru</title>
  <ns>12</ns>
  <id>367899</id>
  <revision>
    <id>6624187</id>
    <parentid>6238385</parentid>
    <timestamp>2024-07-09T08:39:44Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "[[$1|Вход в систему]] полезен, и [[$2|создание учетной записи]] рекомендуется;  иногда необходимо создать множество учетных записей пользователей на вики одновременно в одном и том же месте, обычно для [[$3|мастерской редактирования]], где «студенты» должны зарегист..."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="5753" xml:space="preserve">&lt;languages/&gt;
{{PD Help Page}}
[[m:Special:MyLanguage/Help:Logging in|Вход в систему]] полезен, и [[m:Special:MyLanguage/Help:Logging_in#Creating an account|создание учетной записи]] рекомендуется;  иногда необходимо создать множество учетных записей пользователей на вики одновременно в одном и том же месте, обычно для [[outreach:Special:MyLanguage/Editing workshops|мастерской редактирования]], где «студенты» должны зарегистрироваться перед редактированием.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you're organizing such a workshop, you might be unable to create all accounts during it, because many wikis pose some limits.&lt;/span&gt;&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Specifically, they set {{ll|Manual:$wgAccountCreationThrottle|nsp=0}} to a positive value.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;On Wikimedia projects, the limit is 6 new accounts per IP per day.&lt;/span&gt;
&lt;/ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unless you can determine that you won't hit the limit, you have to take some simple precautions.&lt;/span&gt;&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To do so, you need to know (1) the limit set for the wiki you'll use, (2) the number of participants and (unless the latter is lower than the former) (3) the structure of the network you'll use, i.e. how many machines and [[w:IP address|IPs]] you'll have.&lt;/span&gt;
&lt;/ref&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*If you want them to create the account on their own:
&lt;/div&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Before the workshop: tell them to create their own accounts, if they don't have any, at home (give instructions).&lt;/span&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: don't panic! You only need to login on each machine with an account with &lt;code&gt;noratelimit&lt;/code&gt; [[Special:MyLanguage/Manual:User rights|right]];&lt;ref name=noratelimit&gt;Search it in the local [[Special:ListGroupRights]] page. In the default MediaWiki configuration, sysops and bureaucrats have such right; some wikis have specific groups for it (e.g. "Account creators" on all Wikimedia projects).&lt;/ref&gt; if you don't have one, ask yours to be added to the relevant user group. Once you/they are logged with such account, [[Special:CreateAccount]] will look almost the same, and when the users of each machine have created their account they'll just have to logout and login with their new account.&lt;/span&gt;
*&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don't:&lt;/span&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Before the workshop: first, determine (or ask) the username and email for each account, you'll need it in the form (creation "by email" with automatic password sent); then:&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;create them in advance, slowly across the days, so that you don't hit the limit;&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;use your account with &lt;code&gt;noratelimit&lt;/code&gt; right or get it added to your account and create them all at once;&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;ask someone with &lt;code&gt;noratelimit&lt;/code&gt; right (if there's a specific group there's probably some process to request their intervention; otherwise just ask directly or on the general request pages), send the list, get the job done.&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: still, don't panic. Get &lt;code&gt;noratelimit&lt;/code&gt; right added to your account with an emergency request (if you don't have it) and... type furiously or let students do it as above.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you're super-wise, you may also create at least a handful of generic accounts (such as "EditLab1" etc.) so that you can lend them to the students in case everything else fails; at least they'll be able to edit as logged in users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note that, even after registration, [[m:Special:MyLanguage/Newly registered user|newly registered users]] editing from the same IP may be forced to slow down their edits.&lt;/span&gt;&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See {{ll|Manual:$wgRateLimits|nsp=0}} for details.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;On Wikimedia projects, the limit is 8 edits per minute by all newly registered users with the same IP.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, it can be circumvented by immediately adding the user to the "Confirmed" group, which gives the same rights as autoconfirmed users without waiting for the requirements to be met.&lt;/span&gt;
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Additionally, although not recommended unless you're the wiki system administrator, you can ask the configuration to be changed temporarily: for Wikimedia projects, see [[m:Special:MyLanguage/How to request lift of an IP cap]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
But if you want to do a mass account creation from existing names and passwords and you are the wiki system administrator, you can use e.g. the {{ll|Extension:ImportUsers|nsp=0}} extension to do it in a less tedious fashion.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Notes==
&lt;/div&gt;
&lt;references/&gt;

&lt;span id="See_also"&gt;&lt;/span&gt;
== См. также ==
* [[wikitech:Increasing account creation threshold]]

[[Category:Help{{#translation:}}|{{PAGENAME}}]]</text>
    <sha1>78a30ef52f69e42c5d87db325791f70033b85a27</sha1>
  </revision>
  <revision>
    <id>6624189</id>
    <parentid>6624187</parentid>
    <timestamp>2024-07-09T08:40:57Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "Если вы организуете такой семинар, возможно, вы не сможете создать во время него все учетные записи, поскольку многие вики-сайты налагают некоторые ограничения."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="5863" xml:space="preserve">&lt;languages/&gt;
{{PD Help Page}}
[[m:Special:MyLanguage/Help:Logging in|Вход в систему]] полезен, и [[m:Special:MyLanguage/Help:Logging_in#Creating an account|создание учетной записи]] рекомендуется;  иногда необходимо создать множество учетных записей пользователей на вики одновременно в одном и том же месте, обычно для [[outreach:Special:MyLanguage/Editing workshops|мастерской редактирования]], где «студенты» должны зарегистрироваться перед редактированием.
Если вы организуете такой семинар, возможно, вы не сможете создать во время него все учетные записи, поскольку многие вики-сайты налагают некоторые ограничения.&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Specifically, they set {{ll|Manual:$wgAccountCreationThrottle|nsp=0}} to a positive value.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;On Wikimedia projects, the limit is 6 new accounts per IP per day.&lt;/span&gt;
&lt;/ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unless you can determine that you won't hit the limit, you have to take some simple precautions.&lt;/span&gt;&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To do so, you need to know (1) the limit set for the wiki you'll use, (2) the number of participants and (unless the latter is lower than the former) (3) the structure of the network you'll use, i.e. how many machines and [[w:IP address|IPs]] you'll have.&lt;/span&gt;
&lt;/ref&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*If you want them to create the account on their own:
&lt;/div&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Before the workshop: tell them to create their own accounts, if they don't have any, at home (give instructions).&lt;/span&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: don't panic! You only need to login on each machine with an account with &lt;code&gt;noratelimit&lt;/code&gt; [[Special:MyLanguage/Manual:User rights|right]];&lt;ref name=noratelimit&gt;Search it in the local [[Special:ListGroupRights]] page. In the default MediaWiki configuration, sysops and bureaucrats have such right; some wikis have specific groups for it (e.g. "Account creators" on all Wikimedia projects).&lt;/ref&gt; if you don't have one, ask yours to be added to the relevant user group. Once you/they are logged with such account, [[Special:CreateAccount]] will look almost the same, and when the users of each machine have created their account they'll just have to logout and login with their new account.&lt;/span&gt;
*&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don't:&lt;/span&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Before the workshop: first, determine (or ask) the username and email for each account, you'll need it in the form (creation "by email" with automatic password sent); then:&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;create them in advance, slowly across the days, so that you don't hit the limit;&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;use your account with &lt;code&gt;noratelimit&lt;/code&gt; right or get it added to your account and create them all at once;&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;ask someone with &lt;code&gt;noratelimit&lt;/code&gt; right (if there's a specific group there's probably some process to request their intervention; otherwise just ask directly or on the general request pages), send the list, get the job done.&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: still, don't panic. Get &lt;code&gt;noratelimit&lt;/code&gt; right added to your account with an emergency request (if you don't have it) and... type furiously or let students do it as above.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you're super-wise, you may also create at least a handful of generic accounts (such as "EditLab1" etc.) so that you can lend them to the students in case everything else fails; at least they'll be able to edit as logged in users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note that, even after registration, [[m:Special:MyLanguage/Newly registered user|newly registered users]] editing from the same IP may be forced to slow down their edits.&lt;/span&gt;&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See {{ll|Manual:$wgRateLimits|nsp=0}} for details.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;On Wikimedia projects, the limit is 8 edits per minute by all newly registered users with the same IP.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, it can be circumvented by immediately adding the user to the "Confirmed" group, which gives the same rights as autoconfirmed users without waiting for the requirements to be met.&lt;/span&gt;
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Additionally, although not recommended unless you're the wiki system administrator, you can ask the configuration to be changed temporarily: for Wikimedia projects, see [[m:Special:MyLanguage/How to request lift of an IP cap]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
But if you want to do a mass account creation from existing names and passwords and you are the wiki system administrator, you can use e.g. the {{ll|Extension:ImportUsers|nsp=0}} extension to do it in a less tedious fashion.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Notes==
&lt;/div&gt;
&lt;references/&gt;

&lt;span id="See_also"&gt;&lt;/span&gt;
== См. также ==
* [[wikitech:Increasing account creation threshold]]

[[Category:Help{{#translation:}}|{{PAGENAME}}]]</text>
    <sha1>eb6398a71b7d65cddb7ae8acb3919d30c50f2fa2</sha1>
  </revision>
  <revision>
    <id>6624191</id>
    <parentid>6624189</parentid>
    <timestamp>2024-07-09T08:41:09Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "В частности, они присвоили 1 доллару положительное значение."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="5827" xml:space="preserve">&lt;languages/&gt;
{{PD Help Page}}
[[m:Special:MyLanguage/Help:Logging in|Вход в систему]] полезен, и [[m:Special:MyLanguage/Help:Logging_in#Creating an account|создание учетной записи]] рекомендуется;  иногда необходимо создать множество учетных записей пользователей на вики одновременно в одном и том же месте, обычно для [[outreach:Special:MyLanguage/Editing workshops|мастерской редактирования]], где «студенты» должны зарегистрироваться перед редактированием.
Если вы организуете такой семинар, возможно, вы не сможете создать во время него все учетные записи, поскольку многие вики-сайты налагают некоторые ограничения.&lt;ref&gt;
В частности, они присвоили 1 доллару положительное значение.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;On Wikimedia projects, the limit is 6 new accounts per IP per day.&lt;/span&gt;
&lt;/ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unless you can determine that you won't hit the limit, you have to take some simple precautions.&lt;/span&gt;&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To do so, you need to know (1) the limit set for the wiki you'll use, (2) the number of participants and (unless the latter is lower than the former) (3) the structure of the network you'll use, i.e. how many machines and [[w:IP address|IPs]] you'll have.&lt;/span&gt;
&lt;/ref&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*If you want them to create the account on their own:
&lt;/div&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Before the workshop: tell them to create their own accounts, if they don't have any, at home (give instructions).&lt;/span&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: don't panic! You only need to login on each machine with an account with &lt;code&gt;noratelimit&lt;/code&gt; [[Special:MyLanguage/Manual:User rights|right]];&lt;ref name=noratelimit&gt;Search it in the local [[Special:ListGroupRights]] page. In the default MediaWiki configuration, sysops and bureaucrats have such right; some wikis have specific groups for it (e.g. "Account creators" on all Wikimedia projects).&lt;/ref&gt; if you don't have one, ask yours to be added to the relevant user group. Once you/they are logged with such account, [[Special:CreateAccount]] will look almost the same, and when the users of each machine have created their account they'll just have to logout and login with their new account.&lt;/span&gt;
*&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don't:&lt;/span&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Before the workshop: first, determine (or ask) the username and email for each account, you'll need it in the form (creation "by email" with automatic password sent); then:&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;create them in advance, slowly across the days, so that you don't hit the limit;&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;use your account with &lt;code&gt;noratelimit&lt;/code&gt; right or get it added to your account and create them all at once;&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;ask someone with &lt;code&gt;noratelimit&lt;/code&gt; right (if there's a specific group there's probably some process to request their intervention; otherwise just ask directly or on the general request pages), send the list, get the job done.&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: still, don't panic. Get &lt;code&gt;noratelimit&lt;/code&gt; right added to your account with an emergency request (if you don't have it) and... type furiously or let students do it as above.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you're super-wise, you may also create at least a handful of generic accounts (such as "EditLab1" etc.) so that you can lend them to the students in case everything else fails; at least they'll be able to edit as logged in users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note that, even after registration, [[m:Special:MyLanguage/Newly registered user|newly registered users]] editing from the same IP may be forced to slow down their edits.&lt;/span&gt;&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See {{ll|Manual:$wgRateLimits|nsp=0}} for details.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;On Wikimedia projects, the limit is 8 edits per minute by all newly registered users with the same IP.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, it can be circumvented by immediately adding the user to the "Confirmed" group, which gives the same rights as autoconfirmed users without waiting for the requirements to be met.&lt;/span&gt;
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Additionally, although not recommended unless you're the wiki system administrator, you can ask the configuration to be changed temporarily: for Wikimedia projects, see [[m:Special:MyLanguage/How to request lift of an IP cap]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
But if you want to do a mass account creation from existing names and passwords and you are the wiki system administrator, you can use e.g. the {{ll|Extension:ImportUsers|nsp=0}} extension to do it in a less tedious fashion.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Notes==
&lt;/div&gt;
&lt;references/&gt;

&lt;span id="See_also"&gt;&lt;/span&gt;
== См. также ==
* [[wikitech:Increasing account creation threshold]]

[[Category:Help{{#translation:}}|{{PAGENAME}}]]</text>
    <sha1>79e0d1123f519634b0d52047e374893327092935</sha1>
  </revision>
  <revision>
    <id>6624193</id>
    <parentid>6624191</parentid>
    <timestamp>2024-07-09T08:41:37Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "В проектах Викимедиа лимит составляет 6 новых аккаунтов на один IP в день."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="5837" xml:space="preserve">&lt;languages/&gt;
{{PD Help Page}}
[[m:Special:MyLanguage/Help:Logging in|Вход в систему]] полезен, и [[m:Special:MyLanguage/Help:Logging_in#Creating an account|создание учетной записи]] рекомендуется;  иногда необходимо создать множество учетных записей пользователей на вики одновременно в одном и том же месте, обычно для [[outreach:Special:MyLanguage/Editing workshops|мастерской редактирования]], где «студенты» должны зарегистрироваться перед редактированием.
Если вы организуете такой семинар, возможно, вы не сможете создать во время него все учетные записи, поскольку многие вики-сайты налагают некоторые ограничения.&lt;ref&gt;
В частности, они присвоили 1 доллару положительное значение.
В проектах Викимедиа лимит составляет 6 новых аккаунтов на один IP в день.
&lt;/ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unless you can determine that you won't hit the limit, you have to take some simple precautions.&lt;/span&gt;&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To do so, you need to know (1) the limit set for the wiki you'll use, (2) the number of participants and (unless the latter is lower than the former) (3) the structure of the network you'll use, i.e. how many machines and [[w:IP address|IPs]] you'll have.&lt;/span&gt;
&lt;/ref&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*If you want them to create the account on their own:
&lt;/div&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Before the workshop: tell them to create their own accounts, if they don't have any, at home (give instructions).&lt;/span&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: don't panic! You only need to login on each machine with an account with &lt;code&gt;noratelimit&lt;/code&gt; [[Special:MyLanguage/Manual:User rights|right]];&lt;ref name=noratelimit&gt;Search it in the local [[Special:ListGroupRights]] page. In the default MediaWiki configuration, sysops and bureaucrats have such right; some wikis have specific groups for it (e.g. "Account creators" on all Wikimedia projects).&lt;/ref&gt; if you don't have one, ask yours to be added to the relevant user group. Once you/they are logged with such account, [[Special:CreateAccount]] will look almost the same, and when the users of each machine have created their account they'll just have to logout and login with their new account.&lt;/span&gt;
*&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don't:&lt;/span&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Before the workshop: first, determine (or ask) the username and email for each account, you'll need it in the form (creation "by email" with automatic password sent); then:&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;create them in advance, slowly across the days, so that you don't hit the limit;&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;use your account with &lt;code&gt;noratelimit&lt;/code&gt; right or get it added to your account and create them all at once;&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;ask someone with &lt;code&gt;noratelimit&lt;/code&gt; right (if there's a specific group there's probably some process to request their intervention; otherwise just ask directly or on the general request pages), send the list, get the job done.&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: still, don't panic. Get &lt;code&gt;noratelimit&lt;/code&gt; right added to your account with an emergency request (if you don't have it) and... type furiously or let students do it as above.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you're super-wise, you may also create at least a handful of generic accounts (such as "EditLab1" etc.) so that you can lend them to the students in case everything else fails; at least they'll be able to edit as logged in users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note that, even after registration, [[m:Special:MyLanguage/Newly registered user|newly registered users]] editing from the same IP may be forced to slow down their edits.&lt;/span&gt;&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See {{ll|Manual:$wgRateLimits|nsp=0}} for details.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;On Wikimedia projects, the limit is 8 edits per minute by all newly registered users with the same IP.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, it can be circumvented by immediately adding the user to the "Confirmed" group, which gives the same rights as autoconfirmed users without waiting for the requirements to be met.&lt;/span&gt;
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Additionally, although not recommended unless you're the wiki system administrator, you can ask the configuration to be changed temporarily: for Wikimedia projects, see [[m:Special:MyLanguage/How to request lift of an IP cap]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
But if you want to do a mass account creation from existing names and passwords and you are the wiki system administrator, you can use e.g. the {{ll|Extension:ImportUsers|nsp=0}} extension to do it in a less tedious fashion.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Notes==
&lt;/div&gt;
&lt;references/&gt;

&lt;span id="See_also"&gt;&lt;/span&gt;
== См. также ==
* [[wikitech:Increasing account creation threshold]]

[[Category:Help{{#translation:}}|{{PAGENAME}}]]</text>
    <sha1>82cacc5d0a88008f6ce56ec8a5683fdd1d0df090</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Help:Mass account creation/2/ru</title>
  <ns>1198</ns>
  <id>1992265</id>
  <revision>
    <id>6624188</id>
    <timestamp>2024-07-09T08:40:56Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "Если вы организуете такой семинар, возможно, вы не сможете создать во время него все учетные записи, поскольку многие вики-сайты налагают некоторые ограничения."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="294" xml:space="preserve">Если вы организуете такой семинар, возможно, вы не сможете создать во время него все учетные записи, поскольку многие вики-сайты налагают некоторые ограничения.</text>
    <sha1>3fbdad82e52b710a99921452809fed13d705cd3b</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Help:Mass account creation/15/ru</title>
  <ns>1198</ns>
  <id>1992266</id>
  <revision>
    <id>6624190</id>
    <timestamp>2024-07-09T08:41:08Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "В частности, они присвоили 1 доллару положительное значение."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="110" xml:space="preserve">В частности, они присвоили 1 доллару положительное значение.</text>
    <sha1>503a065699e369de847b81d391ff76c911eeb29c</sha1>
  </revision>
</page>
<page arvcontinue="20240709073036|6624144">
  <title>Translations:Help:Mass account creation/16/ru</title>
  <ns>1198</ns>
  <id>1992267</id>
  <revision>
    <id>6624192</id>
    <timestamp>2024-07-09T08:41:36Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "В проектах Викимедиа лимит составляет 6 новых аккаунтов на один IP в день."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="132" xml:space="preserve">В проектах Викимедиа лимит составляет 6 новых аккаунтов на один IP в день.</text>
    <sha1>ce023f6d00bf0a12b75194e99920ca84ed6f1269</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Help:Mass account creation/17/ru</title>
  <ns>1198</ns>
  <id>1992268</id>
  <revision>
    <id>6624194</id>
    <timestamp>2024-07-09T08:41:46Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "Если вы не уверены, что не достигнете предела, вам придется принять некоторые простые меры предосторожности."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="199" xml:space="preserve">Если вы не уверены, что не достигнете предела, вам придется принять некоторые простые меры предосторожности.</text>
    <sha1>9022bbacdf075eb410752282e14866eab3b30d08</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Help:Mass account creation/ru</title>
  <ns>12</ns>
  <id>367899</id>
  <revision>
    <id>6624195</id>
    <parentid>6624193</parentid>
    <timestamp>2024-07-09T08:41:47Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "Если вы не уверены, что не достигнете предела, вам придется принять некоторые простые меры предосторожности."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="5884" xml:space="preserve">&lt;languages/&gt;
{{PD Help Page}}
[[m:Special:MyLanguage/Help:Logging in|Вход в систему]] полезен, и [[m:Special:MyLanguage/Help:Logging_in#Creating an account|создание учетной записи]] рекомендуется;  иногда необходимо создать множество учетных записей пользователей на вики одновременно в одном и том же месте, обычно для [[outreach:Special:MyLanguage/Editing workshops|мастерской редактирования]], где «студенты» должны зарегистрироваться перед редактированием.
Если вы организуете такой семинар, возможно, вы не сможете создать во время него все учетные записи, поскольку многие вики-сайты налагают некоторые ограничения.&lt;ref&gt;
В частности, они присвоили 1 доллару положительное значение.
В проектах Викимедиа лимит составляет 6 новых аккаунтов на один IP в день.
&lt;/ref&gt;
Если вы не уверены, что не достигнете предела, вам придется принять некоторые простые меры предосторожности.&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To do so, you need to know (1) the limit set for the wiki you'll use, (2) the number of participants and (unless the latter is lower than the former) (3) the structure of the network you'll use, i.e. how many machines and [[w:IP address|IPs]] you'll have.&lt;/span&gt;
&lt;/ref&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*If you want them to create the account on their own:
&lt;/div&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Before the workshop: tell them to create their own accounts, if they don't have any, at home (give instructions).&lt;/span&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: don't panic! You only need to login on each machine with an account with &lt;code&gt;noratelimit&lt;/code&gt; [[Special:MyLanguage/Manual:User rights|right]];&lt;ref name=noratelimit&gt;Search it in the local [[Special:ListGroupRights]] page. In the default MediaWiki configuration, sysops and bureaucrats have such right; some wikis have specific groups for it (e.g. "Account creators" on all Wikimedia projects).&lt;/ref&gt; if you don't have one, ask yours to be added to the relevant user group. Once you/they are logged with such account, [[Special:CreateAccount]] will look almost the same, and when the users of each machine have created their account they'll just have to logout and login with their new account.&lt;/span&gt;
*&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don't:&lt;/span&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Before the workshop: first, determine (or ask) the username and email for each account, you'll need it in the form (creation "by email" with automatic password sent); then:&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;create them in advance, slowly across the days, so that you don't hit the limit;&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;use your account with &lt;code&gt;noratelimit&lt;/code&gt; right or get it added to your account and create them all at once;&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;ask someone with &lt;code&gt;noratelimit&lt;/code&gt; right (if there's a specific group there's probably some process to request their intervention; otherwise just ask directly or on the general request pages), send the list, get the job done.&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: still, don't panic. Get &lt;code&gt;noratelimit&lt;/code&gt; right added to your account with an emergency request (if you don't have it) and... type furiously or let students do it as above.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you're super-wise, you may also create at least a handful of generic accounts (such as "EditLab1" etc.) so that you can lend them to the students in case everything else fails; at least they'll be able to edit as logged in users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note that, even after registration, [[m:Special:MyLanguage/Newly registered user|newly registered users]] editing from the same IP may be forced to slow down their edits.&lt;/span&gt;&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See {{ll|Manual:$wgRateLimits|nsp=0}} for details.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;On Wikimedia projects, the limit is 8 edits per minute by all newly registered users with the same IP.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, it can be circumvented by immediately adding the user to the "Confirmed" group, which gives the same rights as autoconfirmed users without waiting for the requirements to be met.&lt;/span&gt;
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Additionally, although not recommended unless you're the wiki system administrator, you can ask the configuration to be changed temporarily: for Wikimedia projects, see [[m:Special:MyLanguage/How to request lift of an IP cap]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
But if you want to do a mass account creation from existing names and passwords and you are the wiki system administrator, you can use e.g. the {{ll|Extension:ImportUsers|nsp=0}} extension to do it in a less tedious fashion.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Notes==
&lt;/div&gt;
&lt;references/&gt;

&lt;span id="See_also"&gt;&lt;/span&gt;
== См. также ==
* [[wikitech:Increasing account creation threshold]]

[[Category:Help{{#translation:}}|{{PAGENAME}}]]</text>
    <sha1>f49ae3409d563df32bc48d2b5304041f6ae990f4</sha1>
  </revision>
  <revision>
    <id>6624197</id>
    <parentid>6624195</parentid>
    <timestamp>2024-07-09T08:43:05Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "Для этого вам необходимо знать (1) лимит, установленный для вики, который вы будете использовать, (2) количество участников и (если последнее не меньше первого) (3) структуру сети, которую вы используете. буду использовать, то есть сколько машин и w:IP-адрес|IP-адрес..."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6075" xml:space="preserve">&lt;languages/&gt;
{{PD Help Page}}
[[m:Special:MyLanguage/Help:Logging in|Вход в систему]] полезен, и [[m:Special:MyLanguage/Help:Logging_in#Creating an account|создание учетной записи]] рекомендуется;  иногда необходимо создать множество учетных записей пользователей на вики одновременно в одном и том же месте, обычно для [[outreach:Special:MyLanguage/Editing workshops|мастерской редактирования]], где «студенты» должны зарегистрироваться перед редактированием.
Если вы организуете такой семинар, возможно, вы не сможете создать во время него все учетные записи, поскольку многие вики-сайты налагают некоторые ограничения.&lt;ref&gt;
В частности, они присвоили 1 доллару положительное значение.
В проектах Викимедиа лимит составляет 6 новых аккаунтов на один IP в день.
&lt;/ref&gt;
Если вы не уверены, что не достигнете предела, вам придется принять некоторые простые меры предосторожности.&lt;ref&gt;
Для этого вам необходимо знать (1) лимит, установленный для вики, который вы будете использовать, (2) количество участников и (если последнее не меньше первого) (3) структуру сети, которую вы используете. буду использовать, то есть сколько машин и [[w:IP-адрес|IP-адресов]] у вас будет.
&lt;/ref&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
*If you want them to create the account on their own:
&lt;/div&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Before the workshop: tell them to create their own accounts, if they don't have any, at home (give instructions).&lt;/span&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: don't panic! You only need to login on each machine with an account with &lt;code&gt;noratelimit&lt;/code&gt; [[Special:MyLanguage/Manual:User rights|right]];&lt;ref name=noratelimit&gt;Search it in the local [[Special:ListGroupRights]] page. In the default MediaWiki configuration, sysops and bureaucrats have such right; some wikis have specific groups for it (e.g. "Account creators" on all Wikimedia projects).&lt;/ref&gt; if you don't have one, ask yours to be added to the relevant user group. Once you/they are logged with such account, [[Special:CreateAccount]] will look almost the same, and when the users of each machine have created their account they'll just have to logout and login with their new account.&lt;/span&gt;
*&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don't:&lt;/span&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Before the workshop: first, determine (or ask) the username and email for each account, you'll need it in the form (creation "by email" with automatic password sent); then:&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;create them in advance, slowly across the days, so that you don't hit the limit;&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;use your account with &lt;code&gt;noratelimit&lt;/code&gt; right or get it added to your account and create them all at once;&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;ask someone with &lt;code&gt;noratelimit&lt;/code&gt; right (if there's a specific group there's probably some process to request their intervention; otherwise just ask directly or on the general request pages), send the list, get the job done.&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: still, don't panic. Get &lt;code&gt;noratelimit&lt;/code&gt; right added to your account with an emergency request (if you don't have it) and... type furiously or let students do it as above.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you're super-wise, you may also create at least a handful of generic accounts (such as "EditLab1" etc.) so that you can lend them to the students in case everything else fails; at least they'll be able to edit as logged in users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note that, even after registration, [[m:Special:MyLanguage/Newly registered user|newly registered users]] editing from the same IP may be forced to slow down their edits.&lt;/span&gt;&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See {{ll|Manual:$wgRateLimits|nsp=0}} for details.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;On Wikimedia projects, the limit is 8 edits per minute by all newly registered users with the same IP.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, it can be circumvented by immediately adding the user to the "Confirmed" group, which gives the same rights as autoconfirmed users without waiting for the requirements to be met.&lt;/span&gt;
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Additionally, although not recommended unless you're the wiki system administrator, you can ask the configuration to be changed temporarily: for Wikimedia projects, see [[m:Special:MyLanguage/How to request lift of an IP cap]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
But if you want to do a mass account creation from existing names and passwords and you are the wiki system administrator, you can use e.g. the {{ll|Extension:ImportUsers|nsp=0}} extension to do it in a less tedious fashion.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Notes==
&lt;/div&gt;
&lt;references/&gt;

&lt;span id="See_also"&gt;&lt;/span&gt;
== См. также ==
* [[wikitech:Increasing account creation threshold]]

[[Category:Help{{#translation:}}|{{PAGENAME}}]]</text>
    <sha1>8a56fb3d0fea04d8d1fff6091c841dd0b32a9a2b</sha1>
  </revision>
  <revision>
    <id>6624200</id>
    <parentid>6624197</parentid>
    <timestamp>2024-07-09T08:44:40Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "*Если вы хотите, чтобы они создали учетную запись самостоятельно:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6085" xml:space="preserve">&lt;languages/&gt;
{{PD Help Page}}
[[m:Special:MyLanguage/Help:Logging in|Вход в систему]] полезен, и [[m:Special:MyLanguage/Help:Logging_in#Creating an account|создание учетной записи]] рекомендуется;  иногда необходимо создать множество учетных записей пользователей на вики одновременно в одном и том же месте, обычно для [[outreach:Special:MyLanguage/Editing workshops|мастерской редактирования]], где «студенты» должны зарегистрироваться перед редактированием.
Если вы организуете такой семинар, возможно, вы не сможете создать во время него все учетные записи, поскольку многие вики-сайты налагают некоторые ограничения.&lt;ref&gt;
В частности, они присвоили 1 доллару положительное значение.
В проектах Викимедиа лимит составляет 6 новых аккаунтов на один IP в день.
&lt;/ref&gt;
Если вы не уверены, что не достигнете предела, вам придется принять некоторые простые меры предосторожности.&lt;ref&gt;
Для этого вам необходимо знать (1) лимит, установленный для вики, который вы будете использовать, (2) количество участников и (если последнее не меньше первого) (3) структуру сети, которую вы используете. буду использовать, то есть сколько машин и [[w:IP-адрес|IP-адресов]] у вас будет.
&lt;/ref&gt;
*Если вы хотите, чтобы они создали учетную запись самостоятельно:
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Before the workshop: tell them to create their own accounts, if they don't have any, at home (give instructions).&lt;/span&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: don't panic! You only need to login on each machine with an account with &lt;code&gt;noratelimit&lt;/code&gt; [[Special:MyLanguage/Manual:User rights|right]];&lt;ref name=noratelimit&gt;Search it in the local [[Special:ListGroupRights]] page. In the default MediaWiki configuration, sysops and bureaucrats have such right; some wikis have specific groups for it (e.g. "Account creators" on all Wikimedia projects).&lt;/ref&gt; if you don't have one, ask yours to be added to the relevant user group. Once you/they are logged with such account, [[Special:CreateAccount]] will look almost the same, and when the users of each machine have created their account they'll just have to logout and login with their new account.&lt;/span&gt;
*&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don't:&lt;/span&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Before the workshop: first, determine (or ask) the username and email for each account, you'll need it in the form (creation "by email" with automatic password sent); then:&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;create them in advance, slowly across the days, so that you don't hit the limit;&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;use your account with &lt;code&gt;noratelimit&lt;/code&gt; right or get it added to your account and create them all at once;&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;ask someone with &lt;code&gt;noratelimit&lt;/code&gt; right (if there's a specific group there's probably some process to request their intervention; otherwise just ask directly or on the general request pages), send the list, get the job done.&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: still, don't panic. Get &lt;code&gt;noratelimit&lt;/code&gt; right added to your account with an emergency request (if you don't have it) and... type furiously or let students do it as above.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you're super-wise, you may also create at least a handful of generic accounts (such as "EditLab1" etc.) so that you can lend them to the students in case everything else fails; at least they'll be able to edit as logged in users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note that, even after registration, [[m:Special:MyLanguage/Newly registered user|newly registered users]] editing from the same IP may be forced to slow down their edits.&lt;/span&gt;&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See {{ll|Manual:$wgRateLimits|nsp=0}} for details.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;On Wikimedia projects, the limit is 8 edits per minute by all newly registered users with the same IP.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, it can be circumvented by immediately adding the user to the "Confirmed" group, which gives the same rights as autoconfirmed users without waiting for the requirements to be met.&lt;/span&gt;
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Additionally, although not recommended unless you're the wiki system administrator, you can ask the configuration to be changed temporarily: for Wikimedia projects, see [[m:Special:MyLanguage/How to request lift of an IP cap]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
But if you want to do a mass account creation from existing names and passwords and you are the wiki system administrator, you can use e.g. the {{ll|Extension:ImportUsers|nsp=0}} extension to do it in a less tedious fashion.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Notes==
&lt;/div&gt;
&lt;references/&gt;

&lt;span id="See_also"&gt;&lt;/span&gt;
== См. также ==
* [[wikitech:Increasing account creation threshold]]

[[Category:Help{{#translation:}}|{{PAGENAME}}]]</text>
    <sha1>a82503fce346ff166fbb65efb65cf321074edb8f</sha1>
  </revision>
  <revision>
    <id>6624202</id>
    <parentid>6624200</parentid>
    <timestamp>2024-07-09T08:44:53Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "Перед семинаром: предложите им создать свои учетные записи, если у них их нет, дома (дайте инструкции)."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6101" xml:space="preserve">&lt;languages/&gt;
{{PD Help Page}}
[[m:Special:MyLanguage/Help:Logging in|Вход в систему]] полезен, и [[m:Special:MyLanguage/Help:Logging_in#Creating an account|создание учетной записи]] рекомендуется;  иногда необходимо создать множество учетных записей пользователей на вики одновременно в одном и том же месте, обычно для [[outreach:Special:MyLanguage/Editing workshops|мастерской редактирования]], где «студенты» должны зарегистрироваться перед редактированием.
Если вы организуете такой семинар, возможно, вы не сможете создать во время него все учетные записи, поскольку многие вики-сайты налагают некоторые ограничения.&lt;ref&gt;
В частности, они присвоили 1 доллару положительное значение.
В проектах Викимедиа лимит составляет 6 новых аккаунтов на один IP в день.
&lt;/ref&gt;
Если вы не уверены, что не достигнете предела, вам придется принять некоторые простые меры предосторожности.&lt;ref&gt;
Для этого вам необходимо знать (1) лимит, установленный для вики, который вы будете использовать, (2) количество участников и (если последнее не меньше первого) (3) структуру сети, которую вы используете. буду использовать, то есть сколько машин и [[w:IP-адрес|IP-адресов]] у вас будет.
&lt;/ref&gt;
*Если вы хотите, чтобы они создали учетную запись самостоятельно:
*#Перед семинаром: предложите им создать свои учетные записи, если у них их нет, дома (дайте инструкции).
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: don't panic! You only need to login on each machine with an account with &lt;code&gt;noratelimit&lt;/code&gt; [[Special:MyLanguage/Manual:User rights|right]];&lt;ref name=noratelimit&gt;Search it in the local [[Special:ListGroupRights]] page. In the default MediaWiki configuration, sysops and bureaucrats have such right; some wikis have specific groups for it (e.g. "Account creators" on all Wikimedia projects).&lt;/ref&gt; if you don't have one, ask yours to be added to the relevant user group. Once you/they are logged with such account, [[Special:CreateAccount]] will look almost the same, and when the users of each machine have created their account they'll just have to logout and login with their new account.&lt;/span&gt;
*&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don't:&lt;/span&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Before the workshop: first, determine (or ask) the username and email for each account, you'll need it in the form (creation "by email" with automatic password sent); then:&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;create them in advance, slowly across the days, so that you don't hit the limit;&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;use your account with &lt;code&gt;noratelimit&lt;/code&gt; right or get it added to your account and create them all at once;&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;ask someone with &lt;code&gt;noratelimit&lt;/code&gt; right (if there's a specific group there's probably some process to request their intervention; otherwise just ask directly or on the general request pages), send the list, get the job done.&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: still, don't panic. Get &lt;code&gt;noratelimit&lt;/code&gt; right added to your account with an emergency request (if you don't have it) and... type furiously or let students do it as above.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you're super-wise, you may also create at least a handful of generic accounts (such as "EditLab1" etc.) so that you can lend them to the students in case everything else fails; at least they'll be able to edit as logged in users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note that, even after registration, [[m:Special:MyLanguage/Newly registered user|newly registered users]] editing from the same IP may be forced to slow down their edits.&lt;/span&gt;&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See {{ll|Manual:$wgRateLimits|nsp=0}} for details.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;On Wikimedia projects, the limit is 8 edits per minute by all newly registered users with the same IP.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, it can be circumvented by immediately adding the user to the "Confirmed" group, which gives the same rights as autoconfirmed users without waiting for the requirements to be met.&lt;/span&gt;
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Additionally, although not recommended unless you're the wiki system administrator, you can ask the configuration to be changed temporarily: for Wikimedia projects, see [[m:Special:MyLanguage/How to request lift of an IP cap]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
But if you want to do a mass account creation from existing names and passwords and you are the wiki system administrator, you can use e.g. the {{ll|Extension:ImportUsers|nsp=0}} extension to do it in a less tedious fashion.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Notes==
&lt;/div&gt;
&lt;references/&gt;

&lt;span id="See_also"&gt;&lt;/span&gt;
== См. также ==
* [[wikitech:Increasing account creation threshold]]

[[Category:Help{{#translation:}}|{{PAGENAME}}]]</text>
    <sha1>e44cd71df2f42fb00f45577da6ebbcb231d10e02</sha1>
  </revision>
  <revision>
    <id>6624225</id>
    <parentid>6624202</parentid>
    <timestamp>2024-07-09T08:52:18Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "Во время семинара: не паникуйте! Вам нужно только войти на каждый компьютер с учетной записью с $1 [[$2|right]];&lt;ref name=noratelimit&gt;Выполните поиск на локальной странице [[Special:ListGroupRights]].  В конфигурации MediaWiki по умолчанию такое право имеют системные операторы и бюрократы;  в н..."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6744" xml:space="preserve">&lt;languages/&gt;
{{PD Help Page}}
[[m:Special:MyLanguage/Help:Logging in|Вход в систему]] полезен, и [[m:Special:MyLanguage/Help:Logging_in#Creating an account|создание учетной записи]] рекомендуется;  иногда необходимо создать множество учетных записей пользователей на вики одновременно в одном и том же месте, обычно для [[outreach:Special:MyLanguage/Editing workshops|мастерской редактирования]], где «студенты» должны зарегистрироваться перед редактированием.
Если вы организуете такой семинар, возможно, вы не сможете создать во время него все учетные записи, поскольку многие вики-сайты налагают некоторые ограничения.&lt;ref&gt;
В частности, они присвоили 1 доллару положительное значение.
В проектах Викимедиа лимит составляет 6 новых аккаунтов на один IP в день.
&lt;/ref&gt;
Если вы не уверены, что не достигнете предела, вам придется принять некоторые простые меры предосторожности.&lt;ref&gt;
Для этого вам необходимо знать (1) лимит, установленный для вики, который вы будете использовать, (2) количество участников и (если последнее не меньше первого) (3) структуру сети, которую вы используете. буду использовать, то есть сколько машин и [[w:IP-адрес|IP-адресов]] у вас будет.
&lt;/ref&gt;
*Если вы хотите, чтобы они создали учетную запись самостоятельно:
*#Перед семинаром: предложите им создать свои учетные записи, если у них их нет, дома (дайте инструкции).
*#Во время семинара: не паникуйте! Вам нужно только войти на каждый компьютер с учетной записью с &lt;code&gt;noratelimit&lt;/code&gt; [[Special:MyLanguage/Manual:User rights|right]];&lt;ref name=noratelimit&gt;Выполните поиск на локальной странице [[Special:ListGroupRights]].  В конфигурации MediaWiki по умолчанию такое право имеют системные операторы и бюрократы;  в некоторых вики-сайтах для этого есть специальные группы (например, «Создатели учетных записей» во всех проектах Викимедиа).&lt;/ref&gt; Если у вас ее нет, попросите добавить свою группу в соответствующую группу пользователей. Как только вы/они войдут в систему с такой учетной записью, [[Special:CreateAccount]] будет выглядеть почти одинаково, и когда пользователи каждого компьютера создадут свою учетную запись, им просто нужно будет выйти из системы и войти в систему под своей новой учетной записью.
*&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don't:&lt;/span&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Before the workshop: first, determine (or ask) the username and email for each account, you'll need it in the form (creation "by email" with automatic password sent); then:&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;create them in advance, slowly across the days, so that you don't hit the limit;&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;use your account with &lt;code&gt;noratelimit&lt;/code&gt; right or get it added to your account and create them all at once;&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;ask someone with &lt;code&gt;noratelimit&lt;/code&gt; right (if there's a specific group there's probably some process to request their intervention; otherwise just ask directly or on the general request pages), send the list, get the job done.&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: still, don't panic. Get &lt;code&gt;noratelimit&lt;/code&gt; right added to your account with an emergency request (if you don't have it) and... type furiously or let students do it as above.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you're super-wise, you may also create at least a handful of generic accounts (such as "EditLab1" etc.) so that you can lend them to the students in case everything else fails; at least they'll be able to edit as logged in users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note that, even after registration, [[m:Special:MyLanguage/Newly registered user|newly registered users]] editing from the same IP may be forced to slow down their edits.&lt;/span&gt;&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See {{ll|Manual:$wgRateLimits|nsp=0}} for details.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;On Wikimedia projects, the limit is 8 edits per minute by all newly registered users with the same IP.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, it can be circumvented by immediately adding the user to the "Confirmed" group, which gives the same rights as autoconfirmed users without waiting for the requirements to be met.&lt;/span&gt;
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Additionally, although not recommended unless you're the wiki system administrator, you can ask the configuration to be changed temporarily: for Wikimedia projects, see [[m:Special:MyLanguage/How to request lift of an IP cap]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
But if you want to do a mass account creation from existing names and passwords and you are the wiki system administrator, you can use e.g. the {{ll|Extension:ImportUsers|nsp=0}} extension to do it in a less tedious fashion.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Notes==
&lt;/div&gt;
&lt;references/&gt;

&lt;span id="See_also"&gt;&lt;/span&gt;
== См. также ==
* [[wikitech:Increasing account creation threshold]]

[[Category:Help{{#translation:}}|{{PAGENAME}}]]</text>
    <sha1>25503204a381aeb1ce1ee2f12778f32cc7138bab</sha1>
  </revision>
  <revision>
    <id>6624228</id>
    <parentid>6624225</parentid>
    <timestamp>2024-07-09T08:52:27Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "Если вы этого не сделаете:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6722" xml:space="preserve">&lt;languages/&gt;
{{PD Help Page}}
[[m:Special:MyLanguage/Help:Logging in|Вход в систему]] полезен, и [[m:Special:MyLanguage/Help:Logging_in#Creating an account|создание учетной записи]] рекомендуется;  иногда необходимо создать множество учетных записей пользователей на вики одновременно в одном и том же месте, обычно для [[outreach:Special:MyLanguage/Editing workshops|мастерской редактирования]], где «студенты» должны зарегистрироваться перед редактированием.
Если вы организуете такой семинар, возможно, вы не сможете создать во время него все учетные записи, поскольку многие вики-сайты налагают некоторые ограничения.&lt;ref&gt;
В частности, они присвоили 1 доллару положительное значение.
В проектах Викимедиа лимит составляет 6 новых аккаунтов на один IP в день.
&lt;/ref&gt;
Если вы не уверены, что не достигнете предела, вам придется принять некоторые простые меры предосторожности.&lt;ref&gt;
Для этого вам необходимо знать (1) лимит, установленный для вики, который вы будете использовать, (2) количество участников и (если последнее не меньше первого) (3) структуру сети, которую вы используете. буду использовать, то есть сколько машин и [[w:IP-адрес|IP-адресов]] у вас будет.
&lt;/ref&gt;
*Если вы хотите, чтобы они создали учетную запись самостоятельно:
*#Перед семинаром: предложите им создать свои учетные записи, если у них их нет, дома (дайте инструкции).
*#Во время семинара: не паникуйте! Вам нужно только войти на каждый компьютер с учетной записью с &lt;code&gt;noratelimit&lt;/code&gt; [[Special:MyLanguage/Manual:User rights|right]];&lt;ref name=noratelimit&gt;Выполните поиск на локальной странице [[Special:ListGroupRights]].  В конфигурации MediaWiki по умолчанию такое право имеют системные операторы и бюрократы;  в некоторых вики-сайтах для этого есть специальные группы (например, «Создатели учетных записей» во всех проектах Викимедиа).&lt;/ref&gt; Если у вас ее нет, попросите добавить свою группу в соответствующую группу пользователей. Как только вы/они войдут в систему с такой учетной записью, [[Special:CreateAccount]] будет выглядеть почти одинаково, и когда пользователи каждого компьютера создадут свою учетную запись, им просто нужно будет выйти из системы и войти в систему под своей новой учетной записью.
*Если вы этого не сделаете:
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Before the workshop: first, determine (or ask) the username and email for each account, you'll need it in the form (creation "by email" with automatic password sent); then:&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;create them in advance, slowly across the days, so that you don't hit the limit;&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;use your account with &lt;code&gt;noratelimit&lt;/code&gt; right or get it added to your account and create them all at once;&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;ask someone with &lt;code&gt;noratelimit&lt;/code&gt; right (if there's a specific group there's probably some process to request their intervention; otherwise just ask directly or on the general request pages), send the list, get the job done.&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: still, don't panic. Get &lt;code&gt;noratelimit&lt;/code&gt; right added to your account with an emergency request (if you don't have it) and... type furiously or let students do it as above.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you're super-wise, you may also create at least a handful of generic accounts (such as "EditLab1" etc.) so that you can lend them to the students in case everything else fails; at least they'll be able to edit as logged in users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note that, even after registration, [[m:Special:MyLanguage/Newly registered user|newly registered users]] editing from the same IP may be forced to slow down their edits.&lt;/span&gt;&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See {{ll|Manual:$wgRateLimits|nsp=0}} for details.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;On Wikimedia projects, the limit is 8 edits per minute by all newly registered users with the same IP.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, it can be circumvented by immediately adding the user to the "Confirmed" group, which gives the same rights as autoconfirmed users without waiting for the requirements to be met.&lt;/span&gt;
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Additionally, although not recommended unless you're the wiki system administrator, you can ask the configuration to be changed temporarily: for Wikimedia projects, see [[m:Special:MyLanguage/How to request lift of an IP cap]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
But if you want to do a mass account creation from existing names and passwords and you are the wiki system administrator, you can use e.g. the {{ll|Extension:ImportUsers|nsp=0}} extension to do it in a less tedious fashion.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Notes==
&lt;/div&gt;
&lt;references/&gt;

&lt;span id="See_also"&gt;&lt;/span&gt;
== См. также ==
* [[wikitech:Increasing account creation threshold]]

[[Category:Help{{#translation:}}|{{PAGENAME}}]]</text>
    <sha1>67e646dd9302deb71e63b7146f48ee4ac4ae4a04</sha1>
  </revision>
  <revision>
    <id>6624235</id>
    <parentid>6624228</parentid>
    <timestamp>2024-07-09T08:52:55Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "Перед мастер-классом: сначала определите (или спросите) логин и адрес электронной почты для каждого аккаунта, он понадобится вам в форме (создание «по электронной почте» с автоматической высылкой пароля); затем:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6880" xml:space="preserve">&lt;languages/&gt;
{{PD Help Page}}
[[m:Special:MyLanguage/Help:Logging in|Вход в систему]] полезен, и [[m:Special:MyLanguage/Help:Logging_in#Creating an account|создание учетной записи]] рекомендуется;  иногда необходимо создать множество учетных записей пользователей на вики одновременно в одном и том же месте, обычно для [[outreach:Special:MyLanguage/Editing workshops|мастерской редактирования]], где «студенты» должны зарегистрироваться перед редактированием.
Если вы организуете такой семинар, возможно, вы не сможете создать во время него все учетные записи, поскольку многие вики-сайты налагают некоторые ограничения.&lt;ref&gt;
В частности, они присвоили 1 доллару положительное значение.
В проектах Викимедиа лимит составляет 6 новых аккаунтов на один IP в день.
&lt;/ref&gt;
Если вы не уверены, что не достигнете предела, вам придется принять некоторые простые меры предосторожности.&lt;ref&gt;
Для этого вам необходимо знать (1) лимит, установленный для вики, который вы будете использовать, (2) количество участников и (если последнее не меньше первого) (3) структуру сети, которую вы используете. буду использовать, то есть сколько машин и [[w:IP-адрес|IP-адресов]] у вас будет.
&lt;/ref&gt;
*Если вы хотите, чтобы они создали учетную запись самостоятельно:
*#Перед семинаром: предложите им создать свои учетные записи, если у них их нет, дома (дайте инструкции).
*#Во время семинара: не паникуйте! Вам нужно только войти на каждый компьютер с учетной записью с &lt;code&gt;noratelimit&lt;/code&gt; [[Special:MyLanguage/Manual:User rights|right]];&lt;ref name=noratelimit&gt;Выполните поиск на локальной странице [[Special:ListGroupRights]].  В конфигурации MediaWiki по умолчанию такое право имеют системные операторы и бюрократы;  в некоторых вики-сайтах для этого есть специальные группы (например, «Создатели учетных записей» во всех проектах Викимедиа).&lt;/ref&gt; Если у вас ее нет, попросите добавить свою группу в соответствующую группу пользователей. Как только вы/они войдут в систему с такой учетной записью, [[Special:CreateAccount]] будет выглядеть почти одинаково, и когда пользователи каждого компьютера создадут свою учетную запись, им просто нужно будет выйти из системы и войти в систему под своей новой учетной записью.
*Если вы этого не сделаете:
*#Перед мастер-классом: сначала определите (или спросите) логин и адрес электронной почты для каждого аккаунта, он понадобится вам в форме (создание «по электронной почте» с автоматической высылкой пароля); затем:
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;create them in advance, slowly across the days, so that you don't hit the limit;&lt;/span&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;use your account with &lt;code&gt;noratelimit&lt;/code&gt; right or get it added to your account and create them all at once;&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;ask someone with &lt;code&gt;noratelimit&lt;/code&gt; right (if there's a specific group there's probably some process to request their intervention; otherwise just ask directly or on the general request pages), send the list, get the job done.&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: still, don't panic. Get &lt;code&gt;noratelimit&lt;/code&gt; right added to your account with an emergency request (if you don't have it) and... type furiously or let students do it as above.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you're super-wise, you may also create at least a handful of generic accounts (such as "EditLab1" etc.) so that you can lend them to the students in case everything else fails; at least they'll be able to edit as logged in users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note that, even after registration, [[m:Special:MyLanguage/Newly registered user|newly registered users]] editing from the same IP may be forced to slow down their edits.&lt;/span&gt;&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See {{ll|Manual:$wgRateLimits|nsp=0}} for details.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;On Wikimedia projects, the limit is 8 edits per minute by all newly registered users with the same IP.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, it can be circumvented by immediately adding the user to the "Confirmed" group, which gives the same rights as autoconfirmed users without waiting for the requirements to be met.&lt;/span&gt;
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Additionally, although not recommended unless you're the wiki system administrator, you can ask the configuration to be changed temporarily: for Wikimedia projects, see [[m:Special:MyLanguage/How to request lift of an IP cap]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
But if you want to do a mass account creation from existing names and passwords and you are the wiki system administrator, you can use e.g. the {{ll|Extension:ImportUsers|nsp=0}} extension to do it in a less tedious fashion.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Notes==
&lt;/div&gt;
&lt;references/&gt;

&lt;span id="See_also"&gt;&lt;/span&gt;
== См. также ==
* [[wikitech:Increasing account creation threshold]]

[[Category:Help{{#translation:}}|{{PAGENAME}}]]</text>
    <sha1>d6f70f727ffc2f7dcc2fc210ccea1abcc2de7ce4</sha1>
  </revision>
  <revision>
    <id>6624238</id>
    <parentid>6624235</parentid>
    <timestamp>2024-07-09T08:53:08Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "создавайте их заранее, медленно, в течение дней, чтобы не уложиться в лимит;"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6881" xml:space="preserve">&lt;languages/&gt;
{{PD Help Page}}
[[m:Special:MyLanguage/Help:Logging in|Вход в систему]] полезен, и [[m:Special:MyLanguage/Help:Logging_in#Creating an account|создание учетной записи]] рекомендуется;  иногда необходимо создать множество учетных записей пользователей на вики одновременно в одном и том же месте, обычно для [[outreach:Special:MyLanguage/Editing workshops|мастерской редактирования]], где «студенты» должны зарегистрироваться перед редактированием.
Если вы организуете такой семинар, возможно, вы не сможете создать во время него все учетные записи, поскольку многие вики-сайты налагают некоторые ограничения.&lt;ref&gt;
В частности, они присвоили 1 доллару положительное значение.
В проектах Викимедиа лимит составляет 6 новых аккаунтов на один IP в день.
&lt;/ref&gt;
Если вы не уверены, что не достигнете предела, вам придется принять некоторые простые меры предосторожности.&lt;ref&gt;
Для этого вам необходимо знать (1) лимит, установленный для вики, который вы будете использовать, (2) количество участников и (если последнее не меньше первого) (3) структуру сети, которую вы используете. буду использовать, то есть сколько машин и [[w:IP-адрес|IP-адресов]] у вас будет.
&lt;/ref&gt;
*Если вы хотите, чтобы они создали учетную запись самостоятельно:
*#Перед семинаром: предложите им создать свои учетные записи, если у них их нет, дома (дайте инструкции).
*#Во время семинара: не паникуйте! Вам нужно только войти на каждый компьютер с учетной записью с &lt;code&gt;noratelimit&lt;/code&gt; [[Special:MyLanguage/Manual:User rights|right]];&lt;ref name=noratelimit&gt;Выполните поиск на локальной странице [[Special:ListGroupRights]].  В конфигурации MediaWiki по умолчанию такое право имеют системные операторы и бюрократы;  в некоторых вики-сайтах для этого есть специальные группы (например, «Создатели учетных записей» во всех проектах Викимедиа).&lt;/ref&gt; Если у вас ее нет, попросите добавить свою группу в соответствующую группу пользователей. Как только вы/они войдут в систему с такой учетной записью, [[Special:CreateAccount]] будет выглядеть почти одинаково, и когда пользователи каждого компьютера создадут свою учетную запись, им просто нужно будет выйти из системы и войти в систему под своей новой учетной записью.
*Если вы этого не сделаете:
*#Перед мастер-классом: сначала определите (или спросите) логин и адрес электронной почты для каждого аккаунта, он понадобится вам в форме (создание «по электронной почте» с автоматической высылкой пароля); затем:
*##создавайте их заранее, медленно, в течение дней, чтобы не уложиться в лимит;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;use your account with &lt;code&gt;noratelimit&lt;/code&gt; right or get it added to your account and create them all at once;&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;ask someone with &lt;code&gt;noratelimit&lt;/code&gt; right (if there's a specific group there's probably some process to request their intervention; otherwise just ask directly or on the general request pages), send the list, get the job done.&lt;/span&gt;&lt;ref name=noratelimit/&gt;
*#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;During the workshop: still, don't panic. Get &lt;code&gt;noratelimit&lt;/code&gt; right added to your account with an emergency request (if you don't have it) and... type furiously or let students do it as above.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you're super-wise, you may also create at least a handful of generic accounts (such as "EditLab1" etc.) so that you can lend them to the students in case everything else fails; at least they'll be able to edit as logged in users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note that, even after registration, [[m:Special:MyLanguage/Newly registered user|newly registered users]] editing from the same IP may be forced to slow down their edits.&lt;/span&gt;&lt;ref&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;See {{ll|Manual:$wgRateLimits|nsp=0}} for details.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;On Wikimedia projects, the limit is 8 edits per minute by all newly registered users with the same IP.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, it can be circumvented by immediately adding the user to the "Confirmed" group, which gives the same rights as autoconfirmed users without waiting for the requirements to be met.&lt;/span&gt;
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Additionally, although not recommended unless you're the wiki system administrator, you can ask the configuration to be changed temporarily: for Wikimedia projects, see [[m:Special:MyLanguage/How to request lift of an IP cap]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
But if you want to do a mass account creation from existing names and passwords and you are the wiki system administrator, you can use e.g. the {{ll|Extension:ImportUsers|nsp=0}} extension to do it in a less tedious fashion.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==Notes==
&lt;/div&gt;
&lt;references/&gt;

&lt;span id="See_also"&gt;&lt;/span&gt;
== См. также ==
* [[wikitech:Increasing account creation threshold]]

[[Category:Help{{#translation:}}|{{PAGENAME}}]]</text>
    <sha1>44905423e31a203eb5b781cf26dfef1218fbeb14</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Help:Mass account creation/18/ru</title>
  <ns>1198</ns>
  <id>1992269</id>
  <revision>
    <id>6624196</id>
    <timestamp>2024-07-09T08:43:04Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "Для этого вам необходимо знать (1) лимит, установленный для вики, который вы будете использовать, (2) количество участников и (если последнее не меньше первого) (3) структуру сети, которую вы используете. буду использовать, то есть сколько машин и w:IP-адрес|IP-адрес..."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="502" xml:space="preserve">Для этого вам необходимо знать (1) лимит, установленный для вики, который вы будете использовать, (2) количество участников и (если последнее не меньше первого) (3) структуру сети, которую вы используете. буду использовать, то есть сколько машин и [[w:IP-адрес|IP-адресов]] у вас будет.</text>
    <sha1>941dbbc42d16f9160095221f29a1661568b8f11d</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>User:ArielGlenn</title>
  <ns>2</ns>
  <id>45186</id>
  <revision>
    <id>6624198</id>
    <parentid>6495947</parentid>
    <timestamp>2024-07-09T08:43:19Z</timestamp>
    <contributor>
      <username>ArielGlenn</username>
      <id>31925</id>
    </contributor>
    <comment>add a link for a writeup of my centralauth testing setup</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="2295" xml:space="preserve">I am a developer with some SRE sensibilities, working on the MediaWiki Platform Team.  Basically I write code, argue about design and architecture, and precariously inhabit the devops space, jack-of-all-trades-and-master-of-none.

Current areas of work: [[CentralAuth]] and authentication-related stuffs

MediaWiki topics that interest me and which I would love to spend some time on (but no idea if that will happen):
* Our page-revsion-slot-content backend, including MCR, and expanded use of secondary slots
* Decoupling components, to make it easier and less risky to make changes and add features
* The installation and configuration process, still complicated
* The many caching layers
* Third party support and our obligations to such users, if any
* The establishment of an official MediaWiki roadmap
* ...? TBD!

For questions about the [[wikitech:Dumps|XML dumps]] infrastructure, please contact the [[Data_Platform_Engineering/Data_Products|Data Products team]].

I'm very interested in anything that touches on translation of content or interfaces, and anything that impacts the multilingual reach or the Wikimedia projects or facilitates communication between the various language communities of the projects, but this is out of the scope of my WMF work.

If you want to reach me quickly, look for me on irc in #wikitech-l or #mediawiki-core with the user name apergos.  Timezone: EET.  If you want to reach me the slow way send an email to user name ariel with domain name wikimedia.org.  (Grrr, spammers!)

-----

Subpages:
* [[User:ArielGlenn/CentralAuth_walkthrough|CentralAuth wikifarm testing setup]]
* [[User:ArielGlenn/Related website sets|Notes on the Related Website Sets]] work by Google

Dev stuff:

* [[User:ArielGlenn/Emacs as a PHP IDE|Emacs as a PHP IDE]]
* [[User:ArielGlenn/Template resources|Template resources]]
Old decrepit links:

*[[Research Data Proposals]] (WikiSym 2010)
*[[Quality Assessment Tools for WP Readers]] (WikiSym 2010)

---

Personal: I'm trans, nonbinary and queer, and I'm here. If you're any or all of the above and need a friendly ear for whatever reason, come find me.

---

{{User committed identity|87e597e49a6ac3f091f72b7659baf56c16d8db46bcc6680387c90ab4e8fdaf751868517e21b1f34cf2093d1c6e7e14687cb3ecd7e8104b1a5cddeeabf5d6e11a|SHA-512}}</text>
    <sha1>279f2c99e983111390719346c94cf4d7ec05fc23</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Help:Mass account creation/3/ru</title>
  <ns>1198</ns>
  <id>1992270</id>
  <revision>
    <id>6624199</id>
    <timestamp>2024-07-09T08:44:40Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "*Если вы хотите, чтобы они создали учетную запись самостоятельно:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="119" xml:space="preserve">*Если вы хотите, чтобы они создали учетную запись самостоятельно:</text>
    <sha1>94fa6c4cf345896eaaa97b8dcceb86a2a441d0aa</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Help:Mass account creation/4/ru</title>
  <ns>1198</ns>
  <id>1992271</id>
  <revision>
    <id>6624201</id>
    <timestamp>2024-07-09T08:44:52Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "Перед семинаром: предложите им создать свои учетные записи, если у них их нет, дома (дайте инструкции)."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="185" xml:space="preserve">Перед семинаром: предложите им создать свои учетные записи, если у них их нет, дома (дайте инструкции).</text>
    <sha1>1b26bd1a850165e02ab8b301a5555cd69e1713bb</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Global templates/Proposed specification/299/cs</title>
  <ns>1198</ns>
  <id>1992272</id>
  <revision>
    <id>6624203</id>
    <timestamp>2024-07-09T08:49:16Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="285" xml:space="preserve">Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:</text>
    <sha1>3269e128a9218eeace6a57dd2daf4461e9093b93</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Global templates/Proposed specification/cs</title>
  <ns>0</ns>
  <id>1991769</id>
  <revision>
    <id>6624204</id>
    <parentid>6624181</parentid>
    <timestamp>2024-07-09T08:49:18Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="89103" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Input:
&lt;/div&gt;
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>9e4409a09edcaa91ee1afc87f6814034782589ec</sha1>
  </revision>
  <revision>
    <id>6624206</id>
    <parentid>6624204</parentid>
    <timestamp>2024-07-09T08:49:30Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Vstup:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="89047" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Output:
&lt;/div&gt;

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>05f96cb1302d23cd3691fb61953ce5e02ef1b5da</sha1>
  </revision>
  <revision>
    <id>6624208</id>
    <parentid>6624206</parentid>
    <timestamp>2024-07-09T08:49:37Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Výstup:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88992" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In Content Translation, this will be the primary way to adapt templates. Unlike the current template adaptation in Content Translation, this will be precise and complete, rather than based on guesses.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>8f8803bc07c0e672e78679a77f71ad90efd28128</sha1>
  </revision>
  <revision>
    <id>6624210</id>
    <parentid>6624208</parentid>
    <timestamp>2024-07-09T08:50:15Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88931" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In visual editing and in 2017-style wiki syntax editing, simply copying and pasting a template from wiki in another language will do the parameter translation automatically.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>af082bb7398a1081f690c57813befb08f131c174</sha1>
  </revision>
  <revision>
    <id>6624212</id>
    <parentid>6624210</parentid>
    <timestamp>2024-07-09T08:50:39Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88873" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For plain wiki syntax editing, there should be a simple way to operate this service, for example a special page or a dialog box where an editor can paste the template and the source language, and get the template with translated parameters.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>0a88d5b7e8ee6b5732957af9ff9da7b36ae26ee9</sha1>
  </revision>
  <revision>
    <id>6624214</id>
    <parentid>6624212</parentid>
    <timestamp>2024-07-09T08:51:04Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88833" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In both cases, only the names of the template and the parameters will be translated. Translating the parameter values is discussed separately.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>515c685dcde85d0a284be400116a9a9c854722ac</sha1>
  </revision>
  <revision>
    <id>6624216</id>
    <parentid>6624214</parentid>
    <timestamp>2024-07-09T08:51:22Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88761" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Nameless parameters ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>83f24fd045006e258344f93692835e375d7a80bf</sha1>
  </revision>
  <revision>
    <id>6624218</id>
    <parentid>6624216</parentid>
    <timestamp>2024-07-09T08:51:39Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "==== Bezejmenné parametry ===="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88746" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Nameless numbered parameters must continue working, of course.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>89809734f19ded13d40e2534932d0b46900b19a9</sha1>
  </revision>
  <revision>
    <id>6624220</id>
    <parentid>6624218</parentid>
    <timestamp>2024-07-09T08:51:56Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Bezejmenné očíslované parametry musí samozřejmě nadále fungovat."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88700" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
A decision is needed about how will their names be localized.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>df1d788f2c14ebf6f26af655cf3bec9328430c4e</sha1>
  </revision>
  <revision>
    <id>6624223</id>
    <parentid>6624220</parentid>
    <timestamp>2024-07-09T08:52:14Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Je třeba rozhodnout, jak budou jejich jména lokalizována."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88643" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Translating parameter values ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>fd3da3a710a9f3b90dad1b36a4c4f68d6e16a237</sha1>
  </revision>
  <revision>
    <id>6624230</id>
    <parentid>6624223</parentid>
    <timestamp>2024-07-09T08:52:31Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "==== Překlad hodnot parametrů ===="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88633" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In addition to making the templates’ functionality and design shared, some thought must be given to making the template parameter values shared, as well as ''not'' shared.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>68b4f958d5de853cb1f93eaafb6210ba51b1d0db</sha1>
  </revision>
  <revision>
    <id>6624239</id>
    <parentid>6624230</parentid>
    <timestamp>2024-07-09T08:53:09Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88556" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values are the same in all languages by their nature. Some examples include an IPA pronunciation of a place’s native name (e.g. [dɛn ˈɦaːx] for The Hague), the year of foundation of a city, the chemical formula of a compound, etc. At least some of these should probably be stored in Wikidata and easily loadable in a template.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>3d6dd28e6252c39e887b6a96ce18d4fc7b2f834d</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Global templates/Proposed specification/300/cs</title>
  <ns>1198</ns>
  <id>1992273</id>
  <revision>
    <id>6624205</id>
    <timestamp>2024-07-09T08:49:29Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Vstup:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6" xml:space="preserve">Vstup:</text>
    <sha1>09e8d90983eded003e31adef325e0e3a716bd75b</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Global templates/Proposed specification/301/cs</title>
  <ns>1198</ns>
  <id>1992274</id>
  <revision>
    <id>6624207</id>
    <timestamp>2024-07-09T08:49:36Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Výstup:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="8" xml:space="preserve">Výstup:</text>
    <sha1>dd5eb1526699616bb407694c91012239418f3c4a</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Global templates/Proposed specification/447/cs</title>
  <ns>1198</ns>
  <id>1992275</id>
  <revision>
    <id>6624209</id>
    <timestamp>2024-07-09T08:50:14Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="195" xml:space="preserve">V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.</text>
    <sha1>caa12146082020aaa21ffc19e3fae00df526748b</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Global templates/Proposed specification/302/cs</title>
  <ns>1198</ns>
  <id>1992276</id>
  <revision>
    <id>6624211</id>
    <timestamp>2024-07-09T08:50:38Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="171" xml:space="preserve">Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.</text>
    <sha1>2f88711f6ad95df4048a7c6a61e85c8ab33ed7c9</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Global templates/Proposed specification/303/cs</title>
  <ns>1198</ns>
  <id>1992277</id>
  <revision>
    <id>6624213</id>
    <timestamp>2024-07-09T08:51:03Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="256" xml:space="preserve">Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.</text>
    <sha1>d7afa463546e89fafbb765e411e7336df80160c4</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Global templates/Proposed specification/304/cs</title>
  <ns>1198</ns>
  <id>1992278</id>
  <revision>
    <id>6624215</id>
    <timestamp>2024-07-09T08:51:21Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="126" xml:space="preserve">V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.</text>
    <sha1>4b34fab6d25b1e511fd6e9464b2290b1f442f596</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Global templates/Proposed specification/95/cs</title>
  <ns>1198</ns>
  <id>1992279</id>
  <revision>
    <id>6624217</id>
    <timestamp>2024-07-09T08:51:37Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "==== Bezejmenné parametry ===="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="31" xml:space="preserve">==== Bezejmenné parametry ====</text>
    <sha1>1d1f3c2228129b95444c9c1594da922044ddfdb3</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Global templates/Proposed specification/158/cs</title>
  <ns>1198</ns>
  <id>1992280</id>
  <revision>
    <id>6624219</id>
    <timestamp>2024-07-09T08:51:55Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Bezejmenné očíslované parametry musí samozřejmě nadále fungovat."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="72" xml:space="preserve">Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.</text>
    <sha1>f52dc6c40be917a271db340785dd15561790279a</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Technical decision making/Technical Decision-Making Process Retrospective and Consultation plan/Retrospective and Consultation: Results and Analysis</title>
  <ns>0</ns>
  <id>1954312</id>
  <revision>
    <id>6624221</id>
    <parentid>6624182</parentid>
    <timestamp>2024-07-09T08:52:03Z</timestamp>
    <contributor>
      <username>Svartava</username>
      <id>17559730</id>
    </contributor>
    <minor/>
    <comment>Reverted edits by [[Special:Contributions/41.114.211.157|41.114.211.157]]; if you disagree with this rollback, please [[Special:NewSection/User talk:Svartava|leave a message]] on my talk-page.</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="27208" xml:space="preserve">'''Status:''' Published

'''Authors:''' [[Technical decision making/Technical Decision-Making Process Retrospective and Consultation plan|TDMP Retro Committee]]: Chris Danis, Daniel Kinzler, Kosta Harlan, Moriel Schottlender, Temilola Adeleye


This document presents the findings of the [[listarchive:list/wikitech-l@lists.wikimedia.org/thread/Q7DUCFA75DXG3G2KHTO7CEWMLCYTSDB2/|survey]] conducted among the Wikimedia technical community regarding their perspectives on a technical decision-making process in July 2023. 

The purpose of this document is to serve as a '''comprehensive summary''', offering insights from the retrospective collection of opinions and voices within the technical community. It is ''not'' intended to provide a new decision-making methodology or devise a fresh process.

== Process ==
The survey was built and delivered through LimeSurvey with the help of the Research team. 

* The survey was [[listarchive:list/wikitech-l@lists.wikimedia.org/message/Q7DUCFA75DXG3G2KHTO7CEWMLCYTSDB2/|announced]] on the technical mailing lists on July 18, 2023, and remained open until August 7, 2023.
* Privacy policy was provided by Legal at https://foundation.wikimedia.org/wiki/Legal:Technical_Decision-Making_Process_Retrospective 
* Analysis of the data was done by the TDMP Retro committee with the help of the Research team and the Movement Communications team.

=== Intended audience ===
The [[listarchive:list/wikitech-l@lists.wikimedia.org/thread/Q7DUCFA75DXG3G2KHTO7CEWMLCYTSDB2/|Technical Decision-Making Retrospective Survey]] requested feedback from individuals actively engaged in technical work impacting the Wikimedia environment, including those contributing code to MediaWiki and relying on production code for their tools. The audience was deliberately self-selected, engaging individuals invested in the technical decision-making process. Outreach efforts included communication through various channels such as multiple [[listarchive:list/wikitech-l@lists.wikimedia.org/message/2GNFGILAYZYHCWE24WTKMH3IIMHEG7HI/|technical mailing lists]], announcements [[metawiki:Tech/News/2023/30|in Tech News]] (and [[m:Tech/News/2023/37|later in Tech News]]), [[phab:T333235|Phabricator]], and [[Technical decision making/Technical Decision-Making Process Retrospective and Consultation plan|publication on MediaWiki]]. 

Accessibility was prioritized, allowing participants to provide input through a survey, written communication publicly or privately, and/or two live Zoom listening sessions. 

This multifaceted approach aimed to enable diverse perspectives within the intended audience and foster comprehensive insights into the technical decision-making landscape.

'''Caveat:''' The survey responses represent participants who are developers and individual contributors to the technical environment of the Wikimedia movement. It is important to note that other stakeholders in the technical ecosystem, such as users of the technical products and other impacted parties were not targeted in this research.

=== Survey Demographics ===
A total of 129 people completed the survey. Roughly the same number of surveys were begun but abandoned.

'''Affiliation [Q00]:'''

* 67% of respondents are staff (WMF or Chapter)
* 40% of respondents contribute as volunteers (developer or editor)
* 10% of respondents are 3rd party professionals (developer or editor)

(Note that the numbers add to more than 100%, because some people have multiple affiliations. For instance, 13 respondents who are WMF staff also contribute as volunteer editors.)

'''Tenure [Q01]:'''

* More than 50% the respondents have been contributing for over five years
* Only 8% of respondent have been contributing for less than a year

'''Contribution [Q02]:'''

* 40% of respondents contribute to WMF production code.
* 25% indicate that they work on code that consumes public APIs.
* 15% of respondents maintain code on-wiki or on WMF Cloud Services.
* 12% of respondents write code for 3rd party use.
* 7% (nine people) said that they do not contribute code. Most of these indicated that they have some kind of management role at WMF, while two were volunteer editors and one is a third-party employee.

(Note that the categories are not exclusive, as some people contribute in multiple ways)

'''Gender [Q03]:'''

* 67% of respondents identify as “men”
* 14% identify as “women”
* 12% did not specify any gender
* 11% identified as trans, non-binary, or other.

(Note that the numbers add to more than 100%, because some people identify as multiple genders)

'''Participation [Q15]:'''

* About 40% of respondents (50 people) indicated that they have taken part in the TDMP process in the past.
* 12% say that they were driving a decision, 25% were consulted as stakeholders, 16% were involved in the implementation.
* 22% of respondents indicated that they have observed a TDMP process as an interested party.
* 16 people were unsure whether they had participated or not.

Overally, very few significant differences were found between the different groups, such as staff, volunteers, third-party employees, long-term contributors, tool maintainers, and people who have participated in the process before. They are highlighted below when relevant.

Interestingly, sentiment from the 40 non-male respondents was less pronounced for all questions, with scores closer to neutral, while showing the same trends as other groups.

== Analysis ==

=== Feedback about Current TDMP Process ===
'''Having a process for technical decisions is considered valuable, but there are a lot of deficiencies in the current process that need to be addressed.'''

Respondents consistently disagreed with the statements that the current process ''“meets the needs”'' [Q10] (effectiveness), is ''“open and accessible”'' [Q12] (accessibility), and is ''“easy to follow”'' [Q13] (transparency), ranking them at or worse than -0.4 on a scale of -2 to +2. The proposition that the ''“decisions are relevant”'' [Q11] received a neutral score close to 0.

[[File:TDMPRetro-2024-Q10-Q13-Current-Process.png|600x600px]]

If we examine the responses of '''the 50 people who have actively participated in the process''' [Q15], '''scores are significantly worse''': ''“meets the needs”'' scores below -0.8, ''“relevant”'' below -0.5, ''“accessible”'' and ''“easy to follow”'' below -0.6 [Q10-Q13]. However, those who participated as ''drivers'' [Q15b] were neutral on ''“easy to follow”'') [Q13].

Across all groups, the current process is perceived as slow (-0.6 on a scale of -2 to +2), bureaucratic (-0.6), inefficient (-0.4), non-inclusive (-0.2), and unhelpful (-0.2). Again, ''“decisions are relevant”'' is hovering at around 0 [Q16]. 

[[File:TDMPRetro-2024-Q16-Current-Process.png|600x600px]] 

If we examine responses from different groups, we once again find that the scores are worse among people who have participated in the TDMP in the past [Q15]. Particularly, people who have been ''drivers'' in the process have found it to be ''slow'' and ''bureaucratic'' (both at a solid -1) [Q16].

Interestingly, of the 50 respondents who had participated in the TDMP, '''only 36 (72%) indicated that they have a good familiarity with the process''' [Q14]. Even of the 63 respondents who did not participate in the TDMP before [Q15], merely 4 (6%) said they had good familiarity.

In the free-form text responses [Q21], there were some aspects of the current process that were called out as worth keeping or in need of strengthening:

* Keep an initial round of communication that allows stakeholders to self-identify.
* Strengthen representation of stakeholders outside of WMF.
* Improve clarity and transparency of the process and documentation of decisions.
* Strengthen leadership and decision authority.

=== Needs for Future TDMP Process ===
'''There is a clear mandate for making significant changes to the TDMP process''' [Q17]'''.''' Only 1% of respondents want to keep the current process ''unchanged''. The plurality of respondents (36%) even suggest to re-design the process ''from scratch'', while another 27% say we should make ''minor changes'' (and 3% indicated they want ''major changes'' in the free-form comments). 14% indicate that they would like the process to be ''more like the TechCom RFC process'' we were using until 2020. The “other” option was used mostly to say ''“I don’t know”''.

[[File:TDMPRetro-2024-Q17-Change.png|600x600px]]

The results are consistent across all groups of respondents. '''Notably, the strongest wish for change comes from the group of people who have been ''driving'' decisions through the process [Q15]''': 10 of these 16 decision ''drivers'' (63%) say that they would like to see the process ''re-designed from scratch'', and another 5 (31%) say we should make ''minor changes''. Interestingly, none of them want to see the process to be more like ''TechCom RFCs'', while this idea had significant support among those who had been participating as ''stakeholders'' and ''observers'' (13% and 25%, respectively).

Across all groups, '''the strongest support for going back to the ''TechCom RFC process'' comes from ''third-party staff'' (33%) and ''maintainers of production code'' (20%)'''. Support is weakest among respondents who have been around for ''five years or less'' (7%).

'''Overall, respondents are asking for a public process that focuses on high quality decisions that are clearly documented''' [Q05]'''.''' When asked to rank which features they want in a decision making process, respondents clearly went for ''public discussion'' and ''explicit documentation'' (+1.4 and +1.6, on a scale from -2 “must not happen” to +2 “must happen”). This is also supported by the free-form answers: when we asked what people most want to change about the process [Q18], 28 of 70 responses highlighted public communication and documentation.

The remaining four options got a lot less support: the idea that decisions should be made by the person or group ''responsible for the implementation'' got only weak support (+0.3), starting the process ''without proposing solutions'' did only slightly better (+0.5), closely followed by ''active facilitation'', an ''owner-driven process'', and ''open participation'' (around +0.6). That’s still less than half of the score received by the top two items.

[[File:TDMPRetro-2024-Q05-Feature-Importance.png|600x600px]]

There is an interesting difference between ''volunteers'' respondents and ''staff'': 

* ''Volunteer contributors'' are generally in favor of the process being open to ''anyone participating at any point'' (+1.0) and are less supportive of decisions being made ''by the group in charge of implementation'' (+/-0). 
* ''Among staff contributors'' both ideas get lukewarm support, with ''open participation'' getting a lower score than among volunteers (+0.6) and ''decisions being made by implementers'' getting as higher score (+0.5) 

The trade-off ranking of process attributes shows a similar picture [Q4]: on average, '''respondents from all groups favored focussing on producing the ''highest quality of code and design'' (+1.1) and ''including all voices'' (+0.7 on a scale of -2 to +2).''' This is confirmed by 28 of 70 responses to the free-form question [Q18] asking for a more open and inclusive process.

[[File:TDMPRetro-2024-Q04-Feature-tradeoff.png|600x600px]]

It is interesting to note that here, both ''staff'' and ''volunteer'' ''contributors'' support the idea of ''including all voices'' to the same degree (+0.8)''',''' while the idea that ''anyone'' can join the discussion ''at any point'' [Q05] seems more controversial, as discussed above.

Another interesting aspect is that ''long-term contributors'' valued ''including all voices'' on-par with ''high quality code'' (at +0.9), while respondents who have been contributing for ''five years or less'' value inclusivity quite a bit lower than quality (+0.1 vs. +0.4).

Looking at all groups again, '''respondents assigned little importance to ''making decisions quickly'' (-0.6, staff at -0.8)''' and to finding solutions that can be ''implemented with little effort'' (-1.2). 

'''Respondents favor a pragmatic approach to determining at which point of decision making a formal process should be started''' [Q09]: 35% say the process would start when there is a need for ''"consultation with stakeholders”'', and 32% say when there is a need to ''“brainstorm solutions”''. Only 7% want to start immediately ''when a problem is identified'' (the status quo in the current TDMP), and only 12% want to always ''wait until a specific solution is proposed''. 

This matches the fact that respondents are generally unsure about ''when to engage'' with the process [Q08] (-0.3 on a scale of -1 to +1), while they are a little more sure of ''how to engage'' [Q07] (-0.1). 

== Interpretation of survey results ==
In this section, we distill insights from our survey on technical decision-making. Through a thorough analysis of participant responses, some key patterns and challenges emerge, offering valuable guidance for iterating on the decision processes. 

=== Design tensions ===
The survey highlights some intricate trade-offs involved in crafting a decision-making process, emphasizing the need to balance simplicity, flexibility, and broad participation in future design considerations.

'''Adjustable process vs. Simplicity:''' There is a need to make the process more flexible, and offer a light-weight option. There also arose a need to make the process less complicated and elaborate. Those two may be hard to reconcile.

'''Wide participation vs. Efficiency:''' On one hand, there’s a call to make sure discussions are public and include many voices and perspectives. On the other hand, there is the weariness that decisions take a long time and involve a complex process that depends on feedback stages that slow it down. 

=== Initiating the process ===
'''Many respondents preferred the option to include decision statements alongside proposed solutions during the initial phase of the process.''' Respondents expressed that there are cases where discussing a problem without proposed solutions is wasteful and confusing, and there needs to be room to include potential solutions if any are known.  Having a clear problem statement was seen as necessary but not sufficient to identify the group of stakeholders – since some may not be affected by the problem, but only by some of the possible solutions.

'''Several respondents also felt that the option of 'doing nothing' should be considered when making technical decisions'''. Providing insight into why a decision is necessary was seen to be as crucial as deciding what action to take. They believed that incorporating the consideration of doing nothing would ensure a thoughtful and deliberate decision-making process, aligning with the survey's emphasis on strategic and well-informed choices in technical contexts.

Explicitly considering alternative solutions early on, including the option to do nothing, was seen as likely to provide a better understanding on why the problem needs solving, and how different groups might be affected by each solution.

=== Accountability and authority ===
'''Several participants supported the idea of establishing a mechanism for addressing concerns and documenting alignment'''. They appear to be concerned that the decision owners are not held accountable for the consequences of their decisions. Respondents emphasized the importance of ensuring that  impacted parties have a voice in the decision.

'''The next shared recommendation was to Include relevant stakeholders in the decision process.''' The survey results emphasize the importance of empowering stakeholders from outside the team to flag a decision for consideration. Part of the purpose of the decision making process would be ensuring that people affected by a decision have a voice in making it.

'''Survey respondents also believed in the decision-making process until all concerns have been acknowledged, or until the decision is abandoned explicitly'''. Survey respondents expressed a desire for a clear and binding end to the decision-making process. There were concerns about instances where teams, growing impatient with the process, proceeded without consensus or a documented explicit decision. 

=== Communication and process ===
'''Survey respondents recommended establishing a steady cadence of public updates about what decisions are in progress and what their respective status is.''' This was viewed as allowing people to discover decisions that are relevant to them, and would make the process more visible, accessible, and discoverable.

'''Participants also wanted a new process to support a clear sense of progress on technical decisions.''' They wanted it to be clear what is expected at any given time, what the next steps are, and who needs to take them. This came up in the free-form responses, but can also be seen from the fact that the process is perceived as slow, but on the other hand, fast decision making is not considered very important compared to other aspects. 

'''Respondents recommended identifying stakeholders early in the process.''' This was seen as a way to allow internal and external groups and individuals to identify as stakeholders who can then collaborate to shape the decision. The survey indicates a wish for strengthening the role of the community in the process. 

'''Survey participants wanted to ensure clear documentation of proposals and decisions.''' Many respondents recommend that the [[:File:Decision Record TEMPLATE pdf.pdf|decision record]] should describe why a specific option was chosen, as well as which concerns and questions were addressed during the process. Similarly, respondents proposed that the initial proposal should be clear on why a decision is needed at all, and present possible solutions already under consideration.

= Appendix: Survey questions =

== Demographic questions ==
'''Q00. What is your affiliation with Wikimedia technical spaces? (Multiple choice allowed)'''

* WMF employee (57%)
* Chapter employee (9%)
* Volunteer developer (39%)
* Volunteer editor (40%)
* Third-Party developer (9%)
* Contribute to Wikimedia as part of my job (9%)
* Other [Free text]

'''Q01. How many years of experience do you have with the Wikimedia technical spaces?'''

* &lt; 1 year (8%)
* 1-2 years (16%)
* 2-5 years (26%)
* 5+ (53%)

'''Q02. What is your interaction with technical spaces? (Choose as many as apply)''' 

* I contribute to code deployed by WMF (39%)
* I maintain on-wiki code (such as gadgets) (15%)
* I maintain bots/tools that run on toolforge or Wikimedia Cloud (16%)
* I develop mediawiki extensions for use outside of Wikimedia (12%)
* I write code that relies on the Wikimedia APIs (25%)
* Other (0%)

'''Q03. Which of these categories describes your gender identity?'''

(Multiple choices allowed)

* Male / Man (67%)
* Female / Woman (14%)
* Transgender (2%)
* Non-binary (7%)
* Genderqueer (2%)
* I would prefer not to say (12%)
* Other (0%)

== General decision-making process ==
'''Q04. All decision-making processes have tradeoffs. How would you prioritize these attributes?'''

(The stack rank was converted to a -2 to +2 scale for evaluation, to be consistent with other questions. The option ranked lowest  by a respondent was assigned a score of -2 while the one ranked highest got a scope of +2)

* Decisions are made quickly (-0.6)
* Decisions are focused on the producing the highest quality of the design and code (+0.1)
* The process involves all concerned voices (+0.7)
* Solutions can be done by the least amount of effort and expense (-1.2)

'''Q05. Rank the importance of the following elements of a technical decision process  (1- must not happen; 5- must happen)''' 

(Note that the 1 to 5 scale was shifted to a -2 to +2 scale for evaluation, to be consistent with other questions)

* Decision owners are responsible for driving the process (+0.6)
* There is a dedicated facilitator who ensures that the process is followed and helps to set up conversations. (+0.6)
* Decisions start with a statement of purpose explaining a problem or opportunity, without proposing solutions (+0.5)
* The decision is made by the person or group responsible for the implementation. (+0.3)
* Discussions about the decision are public (+1.4)
* Anyone can participate in the discussion at any point (+0.7)
* The rationale for the decision is clearly documented (+1.6)

'''Q06. Is there anything missing from the list above that you would like to mention, either positively or negatively?'''

== Technical Decision-Making Process (TDMP) ==
'''Q07. If I needed to, I know how to approach the Tech Decision Forum for a decision about something'''

(Conversion to scores of -1 to +1 gives an average of -0.1)

* Yes (score+1)
* No (score -1)
* Unsure (score 0)

'''Q08. I know when (and in what types of decisions) to approach the Tech Decision Decision Making for a decision about something'''

(Conversion to scores of -1 to +1 gives an average of -0.3)

* Yes (score +1)
* No (score -1)
* Unsure (score 0)

'''Q09. At what stage would you want a decision to go through the Technical Decision-Making Process?'''

* Immediately when a problem is raised (7%)
* When there is a need for brainstorming about how to approach solutions (32%)
* When there’s a need for a consultation with stakeholders (35%)
* When solutions are being considered (13%)
* Other (free text) (14%)

'''Q10. The TDMP meets the needs of the Wikimedia technical community'''

(Conversion to scores of -2 to +2 gives an average of -0.44)

* Strongly Disagree (score -2)
* Disagree (score -1)
* Neutral (score 0)
* Agree (score +1)
* Strongly agree (score +2)
* I'm not sure (score 0)

'''Q11. The decisions that result from the TDMP are relevant to my contributions'''

(Conversion to scores of -2 to +2 gives an average of 0.0)

* Strongly Disagree (score -2)
* Disagree (score -1)
* Neutral (score 0)
* Agree (score +1)
* Strongly agree (score +2)
* I'm not sure (score 0)

'''Q12. Tech decision processes are open and accessible to affected stakeholders.'''

(Conversion to scores of -2 to +2 gives an average of -0.4)

* Strongly Disagree (score -2)
* Disagree (score -1)
* Neutral (score 0)
* Agree (score +1)
* Strongly agree (score +2)
* I'm not sure (score 0)

'''Q13. It is easy to stay informed about ongoing technical decisions.'''

(Conversion to scores of -1 to +1 gives an average of -0.5)

* Yes (score +1)
* No (score -1)
* I’m not sure (score 0)

'''Q14. How familiar/comfortable are you with our current tech decision-making process?'''

(Conversion to scores of -2 to +2 gives an average of -0.1)

* I have no knowledge of the process (score -2)
* I’ve heard of it, but don’t know what’s involved (score -1)
* I know a few parts of it, or the rough outline (score 0)
* I could roughly explain it to a friend (score +1)
* I could confidently describe it to a room full of people (score +2)

'''Q15. Have you ever participated in the Technical Decision-Making Process?'''

* Yes (39%)
* No (49%)
* I’m not sure (12%)

Q15b. If your answer to the previous question was a yes, what was your role in the process?

(Percentage of those who answered “Yes” above, multiple choices allowed)

* Decision driver (32%)
* Stakeholder (60%)
* Involved in the implementation of the solution (42%)
* An interested party, not directly involved (56%)

'''Q16. Based on what you have observed, where do you see the Technical Decision-Making Process on the following scale?'''

(Evaluated as a score between +2 down to -2)

* Streamline | Bureaucratic (-0.6)
* Inclusive | Not participatory / open (-0.2)
* Fast | Slow (-0.6)
* Efficient | Inefficient (-0.4)
* Helpful | Not Helpful (-0.2)
* Relevant | Irrelevant (0.0)

'''Q17. In my opinion, the Wikimedia community should:'''

* Keep the decision-making process (Technical Decision-Making Process) exactly as it is (1%)
* Make minor improvements to the existing decision-making process based on feedback in this retro (27%)
* Start over from scratch and design a new decision-making process (36%)
* Change our decision-making to look more like the previous process (TechCom RFCs) (14%)
* Something else [Free text] (23%)

== Open questions ==
'''Q18. If I could change one thing about the existing tech decision process, it would be:'''
{| class="wikitable"
|1: Encouraging an open process with involvement from volunteers and the wider community.
|'''28'''
|-
|2: Less bureaucratic, more efficient, and clear decision-making process.
|'''15'''
|-
|3: Clear communication and well-maintained documentation.
|'''28'''
|-
|4: Clear leadership and decision authority.
|12
|-
|5: Using more open platforms like Wiki and phab to facilitate the decision-making process.
|8
|-
|6: Improved feedback mechanisms and tracking of decision outcomes.
|11
|-
|7: No input/Unsure.
|197
|-
|
|
|-
|Total question respondents:
|70
|}
'''Q19. Is there a type of technical decision that lacks a process but needs one, please state it below.'''
{| class="wikitable"
|1: Desire for increased involvement or participation and communication.
|7
|-
|2: Technical Process and prioritization concerns.
|'''22'''
|-
|3: Technical infrastructure and resources concerns.
|'''8'''
|-
|4: concerns related to technical policies, procedures, and decision management.
|'''11'''
|-
|5: General Concerns, Lack of Knowledge, or Experience (Including responses of "NO").
|18
|-
|6: No input/Unsure.
|216
|-
|
|
|-
|Total question respondents:
|49
|}
'''Q20. (If answered yes to the previous question) What would that process look like for the decision above?'''
{| class="wikitable"
|1: Specific suggestions or recommendations for processes.
|10
|-
|2: Desire for increased involvement or participation and communication.
|'''5'''
|-
|3: Defining roles, responsibilities, or oversight in decision-making.
|'''11'''
|-
|4: Reflecting satisfaction or dissatisfaction with current.
|3
|-
|5: Reflecting satisfaction or dissatisfaction with previous.
|1
|-
|6: No input/Unsure.
|243
|-
|
|
|-
|Total question respondents:
|41
|}
'''Q21. One important thing to keep from the existing tech decision process is:'''
{| class="wikitable"
|1: Responses favoring certain aspects of the current process.
|'''13'''
|-
|2: Expressions of dissatisfaction or disapproval with the current process.
|8
|-
|3: Suggestions related to maintaining or improving stakeholder engagement.
|'''16'''
|-
|4: Emphasis on documentation, transparency, and clear problem definitions.
|8
|-
|5: Suggestions for process modifications for better outcomes.
|'''5'''
|-
|6: No input/Unsure.
|223
|-
|
|
|-
|Total question respondents:
|47
|}
'''Q22. One thing that I think is missing from this survey is'''
{| class="wikitable"
|1: Suggestions on how questions could be worded or framed differently.
|2
|-
|2: Proposals for new questions or topics.
|'''13'''
|-
|3: Feedback on the design, formatting, or structure of the survey.
|3
|-
|4: Unrelated Responses / No input / Unsure.
|247
|-
|
|
|-
|Total question respondents:
|27
|}</text>
    <sha1>91e9b080c209d2bc72b3ff1847993a17f3c22de7</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Global templates/Proposed specification/96/cs</title>
  <ns>1198</ns>
  <id>1992281</id>
  <revision>
    <id>6624222</id>
    <timestamp>2024-07-09T08:52:13Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Je třeba rozhodnout, jak budou jejich jména lokalizována."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="60" xml:space="preserve">Je třeba rozhodnout, jak budou jejich jména lokalizována.</text>
    <sha1>13572894f6558021055698c452562e88c4d12f22</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Help:Mass account creation/22/ru</title>
  <ns>1198</ns>
  <id>1992282</id>
  <revision>
    <id>6624224</id>
    <timestamp>2024-07-09T08:52:17Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "Во время семинара: не паникуйте! Вам нужно только войти на каждый компьютер с учетной записью с $1 [[$2|right]];&lt;ref name=noratelimit&gt;Выполните поиск на локальной странице [[Special:ListGroupRights]].  В конфигурации MediaWiki по умолчанию такое право имеют системные операторы и бюрократы;  в н..."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="1359" xml:space="preserve">Во время семинара: не паникуйте! Вам нужно только войти на каждый компьютер с учетной записью с $1 [[$2|right]];&lt;ref name=noratelimit&gt;Выполните поиск на локальной странице [[Special:ListGroupRights]].  В конфигурации MediaWiki по умолчанию такое право имеют системные операторы и бюрократы;  в некоторых вики-сайтах для этого есть специальные группы (например, «Создатели учетных записей» во всех проектах Викимедиа).&lt;/ref&gt; Если у вас ее нет, попросите добавить свою группу в соответствующую группу пользователей. Как только вы/они войдут в систему с такой учетной записью, [[Special:CreateAccount]] будет выглядеть почти одинаково, и когда пользователи каждого компьютера создадут свою учетную запись, им просто нужно будет выйти из системы и войти в систему под своей новой учетной записью.</text>
    <sha1>3b9af58e0c874edb36dd283ce5c688fdabf6c288</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Wikimedia Commons on WordPress</title>
  <ns>0</ns>
  <id>159319</id>
  <revision>
    <id>6624226</id>
    <parentid>6624095</parentid>
    <timestamp>2024-07-09T08:52:22Z</timestamp>
    <contributor>
      <username>Svartava</username>
      <id>17559730</id>
    </contributor>
    <minor/>
    <comment>Reverted edits by [[Special:Contributions/175.100.59.53|175.100.59.53]]; if you disagree with this rollback, please [[Special:NewSection/User talk:Svartava|leave a message]] on my talk-page.</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="758" xml:space="preserve">&lt;languages /&gt;
{{Tool
|status = experimental
|type1 = plugin
|type2 = wordpress
|username =
|author =
|description =
|image =
|imagesize =
|version =
|update =
|language = PHP
|mediawiki =
|php =
|license =
|download = {{GithubDownload|JeanFred|CommonsOnCMS}}
|readme =
|changelog =
|parameters =
|tags =
|example =
|compatibility =
}}
&lt;translate&gt;
&lt;!--T:1--&gt;
Prototype of a plugin to embed Wikimedia Commons files in WordPress.

== History == &lt;!--T:2--&gt;

&lt;!--T:3--&gt;
Developed in 2011 as part of a &lt;tvar|project&gt;{{ll|Wikimedia Commons on WordPress/Student project}}&lt;/&gt; at the Lille 1 University.

== Code == &lt;!--T:4--&gt;

&lt;!--T:5--&gt;
* [&lt;tvar|github&gt;https://github.com/JeanFred/CommonsOnCMS&lt;/&gt; GitHub]

== See also == &lt;!--T:6--&gt;
&lt;/translate&gt;
* {{ll|PhotoCommons}}</text>
    <sha1>1993433ca2a549eeb4e392e718dc64205bacd99c</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Help:Mass account creation/5/ru</title>
  <ns>1198</ns>
  <id>1992283</id>
  <revision>
    <id>6624227</id>
    <timestamp>2024-07-09T08:52:27Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "Если вы этого не сделаете:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="47" xml:space="preserve">Если вы этого не сделаете:</text>
    <sha1>02a42fd0dd726ec352f1d1a17933ab03e4af91cc</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Global templates/Proposed specification/97/cs</title>
  <ns>1198</ns>
  <id>1992284</id>
  <revision>
    <id>6624229</id>
    <timestamp>2024-07-09T08:52:30Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "==== Překlad hodnot parametrů ===="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="36" xml:space="preserve">==== Překlad hodnot parametrů ====</text>
    <sha1>437c601c14437d9216f6003a1d54f907afca7378</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Discourse/Help</title>
  <ns>0</ns>
  <id>750851</id>
  <revision>
    <id>6624231</id>
    <parentid>6624094</parentid>
    <timestamp>2024-07-09T08:52:33Z</timestamp>
    <contributor>
      <username>Svartava</username>
      <id>17559730</id>
    </contributor>
    <minor/>
    <comment>Reverted edits by [[Special:Contributions/117.20.117.67|117.20.117.67]]; if you disagree with this rollback, please [[Special:NewSection/User talk:Svartava|leave a message]] on my talk-page.</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6564" xml:space="preserve">{{historical|'''The experimental Discourse prototype was shut down in September 2020.&lt;br&gt;See [[phab:T247010]].'''}}

If you have questions about how to use [http://discourse-mediawiki.wmflabs.org/ discourse-mediawiki.wmflabs.org], just ask in the [https://discourse-mediawiki.wmflabs.org/c/site-feedback Site Feedback category] {{Webarchive|url=https://web.archive.org/web/20180207204744/https://discourse-mediawiki.wmflabs.org/c/site-feedback |date=2018-02-07 }} or here in the [[Talk:Discourse/Help|Discussion]] page. We improve our documentation based on the feedback received.

If you want to learn more about the project to use Discourse as a developer support channel, check [[Discourse]].

== Is Wikimedia Developer Support for you? ==
"Wikimedia Developer Support" is just a name, don't take it too literal. What matters is that the questions are related to software development, no matter how basic or slightly related they might look like. In case of doubt, post your question anyway.

The following cases are just as welcomed:
* I am a developer but not for Wikimedia.
* I ''just'' tinker with... (bots, gadgets, templates...)
* I am a... (designer, tester, sysadmin...)
* I want to learn.

== Creating your account ==
The current pilot in wmflabs.org does not support Wikimedia single user login (SUL). You can sign up via Wikimedia Phabricator or GitHub logins. 

Although the migration of users and content to the production server is theoretically possible and we count on it, at this point it is not guaranteed ([[phab:T184461|T184461]]).

== Following topics and handling notifications ==
Discourse has a collection of features to help users follow the content that is interesting to them. Web and email notifications adapt to regular actions of the users (reading, replying, being mentioned, watching, muting...). For those willing to fine tune their setup to the extreme, Discourse offers many possibilities. Do you want to be notified only when someone mentions you? Do you want to receive an email for every action happening everywhere? Something in between?

=== Five levels for tracking content ===
Discourse offers five levels for tracking topics, tags, and categories. Reading a topic entirely or during a certain time will set it to a higher level, and of course replying in a topic too. Users can refine these actions in their Notification preferences. These levels can be set manually through an icon at the right of topic, tag and category pages. The default options depend on the configuration of the site, and they can be changed via user preferences. From less to more:
* Muted: The user will not be notified about changes, and the topic(s) will not appear in their "Latest".
* Normal: The user will be notified when someone mentions them or replies to their post/comment.
* Watching first post (in tags and categories): Normal + the user will be notified about new topics created.
* Tracking: Normal + in tags and categories the user will track all topics + a count of new replies will be shown in lists.
* Watching: Tracking + the user will receive a notification for every comment.

=== Email and web notifications ===
Users will get email or web notifications depending on the defaults of the system and their user preferences. In addition to the notifications for new topics and replies mentioned above, they can receive other notifications, configurable:
* Notifications when someone likes their posts or comments.
* A periodical digest featuring the most relevant topics or activity, which will be sent only when the user is not active in the site.
* A "mailing list mode" can be set in user preferences, which will generate emails for every action respecting muted topics, tags, and categories.

== RSS feeds ==
Discourse has RSS feeds all over. If you find a page that looks interesting to track, just add &lt;code&gt;.rss&lt;/code&gt; to the URL and chances are that a feed will be available.

Examples:
* [https://discourse-mediawiki.wmflabs.org/latest Latest] {{Webarchive|url=https://web.archive.org/web/20200908085103/https://discourse-mediawiki.wmflabs.org/latest |date=2020-09-08 }}: https://discourse-mediawiki.wmflabs.org/latest.rss {{Webarchive|url=https://web.archive.org/web/20180210074945/https://discourse-mediawiki.wmflabs.org/latest.rss |date=2018-02-10 }}
* [https://discourse-mediawiki.wmflabs.org/top Top] {{Webarchive|url=https://web.archive.org/web/20200908085007/https://discourse-mediawiki.wmflabs.org/top |date=2020-09-08 }} (and the parameters of Top can be defined in the Top page): https://discourse-mediawiki.wmflabs.org/top.rss {{Webarchive|url=https://web.archive.org/web/20201128141419/https://discourse-mediawiki.wmflabs.org/top.rss |date=2020-11-28 }}
* A category: https://discourse-mediawiki.wmflabs.org/c/ask-here.rss {{Webarchive|url=https://web.archive.org/web/20180213173423/https://discourse-mediawiki.wmflabs.org/c/ask-here.rss |date=2018-02-13 }}
* A tag: https://discourse-mediawiki.wmflabs.org/tags/authentication.rss{{Dead link|date=August 2022 |bot=InternetArchiveBot |fix-attempted=yes }}
* Public activity by a user: https://discourse-mediawiki.wmflabs.org/u/samwilson/activity.rss{{Dead link|date=August 2022 |bot=InternetArchiveBot |fix-attempted=yes }}
* Only new topics created by a user: https://discourse-mediawiki.wmflabs.org/u/samwilson/activity/topics.rss{{Dead link|date=August 2022 |bot=InternetArchiveBot |fix-attempted=yes }}

== Missing a feature that others seem to have (aka user trust levels) ==
Discourse offers more features to users as they hit milestones using the site. This mechanism called [https://meta.discourse.org/t/what-do-user-trust-levels-do/4924 user trust levels] helps preventing spam as well as overwhelming new users with features that they might not need.

These are the default user trust levels and the basic features they can use:
* New (0): Basic posts.
* Basic (1): Upload images and attachments, edit wiki posts, flag posts, send private messages, add links to user profile.
* Members (2): "Invite others to this topic", private group messages.
* Regular (3): Make own posts wikis, recategorize and rename topics, create tags, flagging posts from TL0 users as spam will hide the post and even silence them if enough regulars flag them.
* Leader (4, must be assigned manually): pin/unpin, close, archive, split/merge any topics, and edit all posts.
Disclaimer: User trust levels can be customized by administrators of a site, and therefore the Wikimedia developer Support site trust levels might differ from the defaults in the future.</text>
    <sha1>62f4eb41bf4935fc33bc4353103ff0f012d2a2ac</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Communication/2/ar</title>
  <ns>1198</ns>
  <id>167917</id>
  <revision>
    <id>6624232</id>
    <parentid>6623996</parentid>
    <timestamp>2024-07-09T08:52:50Z</timestamp>
    <contributor>
      <username>Svartava</username>
      <id>17559730</id>
    </contributor>
    <minor/>
    <comment>Reverted edits by [[Special:Contributions/134.35.5.229|134.35.5.229]]; if you disagree with this rollback, please [[Special:NewSection/User talk:Svartava|leave a message]] on my talk-page.</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="191" xml:space="preserve">تواصل مع مستخدمي ميدياويكي ومطوريها الآخرين، أو تابع الأخبار المتعلقة بكلا من [[$1|ويكيميديا وميدياويكي]].</text>
    <sha1>c1f2b932860024d3ac8d2de841c336d967634e60</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Communication/ar</title>
  <ns>0</ns>
  <id>167916</id>
  <revision>
    <id>6624233</id>
    <parentid>6623997</parentid>
    <timestamp>2024-07-09T08:52:51Z</timestamp>
    <contributor>
      <username>Svartava</username>
      <id>17559730</id>
    </contributor>
    <minor/>
    <comment>Reverted edits by [[Special:Contributions/134.35.5.229|134.35.5.229]]; if you disagree with this rollback, please [[Special:NewSection/User talk:Svartava|leave a message]] on my talk-page.</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11531" xml:space="preserve">&lt;languages /&gt;
{{InstallationNav}}
تواصل مع مستخدمي ميدياويكي ومطوريها الآخرين، أو تابع الأخبار المتعلقة بكلا من [[Special:MyLanguage/Differences between Wikipedia, Wikimedia, MediaWiki, and wiki|ويكيميديا وميدياويكي]].

{{anchor|com-forums}}
__TOC__

&lt;span id="Get_help_or_support"&gt;&lt;/span&gt;
== احصل على المساعدة أو الدعم ==

&lt;span id="Forums"&gt;&lt;/span&gt;
=== المنتديات ===

احصل على المساعدة فيما يخص استخدام برمجيات ميدياويكي وضبطها:
{{ContentGrid
|content=
{{Colored box
|title = [[Project:Support desk|مشروع:طاولة المساعدة]]
|content = اطرح أية أسئلة تتناول تنصيبات برمجيات ميدياويكي خارج ويكيميديا.
}}
{{Colored box
|title = [[meta:Tech]]
|content = احصل على المساعدة بصفتك عضو في مجتمع ويكيميديا فيما يخص مسائل فنية متعلقة بموقعك الويكي المستند إلى ويكيميديا.
}}
{{Colored box
|title = [https://mwusers.org mwusers.org]
|content = منتدى مستخدمي ميدياويكي. (غير رسمي)
}}
{{Colored box
|title = [https://stackexchange.com/filters/116580/mediawiki StackExchange] 
|content = منشورات على ‎Stackexchange.com موسومة بوسم #mediawiki. (غير رسمي)
}}
{{Colored box
|title = [https://www.reddit.com/r/mediawiki/ مجموعة ميدياويكي الفرعية على ريديت]
|content = مجموعة ميدياويكي على Reddit. (غير رسمي)
}}
}}

{{anchor|com-chat}}
&lt;span id="Chat"&gt;&lt;/span&gt;
=== دردشات ===
ابحث عن المساعدة فورًا على خوادم الدردشة:
يتم فرزها حسب نشاطها

{{ContentGrid
|content=
{{Colored box
|title = [https://discord.gg/ZrV2Ex9 MediaWiki Discord server]
|content = ناقش تنصيبات الويكي وتشغيلها وإضافة السمات إليها وأعمال التطوير المخصصة. (غير رسمي)
{{ll|MediaWiki on Discord|2=أكتشف المزيد.}}
}}
{{Colored box
|title = [https://t.me/wmhack Hackathon Telegram group]
|content = اطرح أسئلة متعلقة بفعاليات [[Special:MyLanguage/Hackathons|هاكاثون]] على [https://t.me/wmhack مجموعة ‎@wmhack على تيليغرام]. {{ll|Hackathons/Handbook/Communicate with participants#Telegram Group Chat|2=أكتشف المزيد.}}
}}
{{Colored box
|title = قنوات IRC
|content = * اطرح أسئلة فنية تتناول برمجيات ميدياويكي على قناة {{irc|mediawiki}} على [https://libera.chat/ ‎libera.chat].
* للأسئلة التي تتناول تصميم وتطوير برمجيات ميدياويكي، اطرحها على ‎{{irc|wikimedia-dev}}.
* للأسئلة الفنية والأسئلة الخاصة بتصميم وتطوير البرمجيات الخاصة بمواقع ويكيميديا الشبكية، اطرحها على ‎{{irc|wikimedia-tech}}.
{{ll|MediaWiki on IRC|2=أكتشف المزيد.}}
}}
{{Colored box
|title = [https://wikimedia.zulipchat.com/ Outreach Programs Zulip chat]
|content = احصل على المساعدة وناقش الأمور بصفتك مقدم طلب أو مشارك في {{ll|Outreach programs}} التي تقدمها ويكيميديا.
{{ll|Outreach programs/Zulip|2=أكتشف المزيد.}}
}}
}}
يوجد المزيد من دردشات [[m:Special:MyLanguage/Telegram#MediaWiki and technical|تليغرام]] متوفرة.

&lt;span id="Mailing_lists"&gt;&lt;/span&gt;
=== القوائم البريدية ===

النشر على القوائم البريدية:
{{ContentGrid
|content=
{{Colored box
|title = [[mail:mediawiki-l|mediawiki-l]]
|content = اطلب المساعدة في استخدام برمجيات ميدياويكي وإعدادها على هذه القائمة البريدية المكتظة [[mail:mediawiki-l|mediawiki-l]].
}}
{{Colored box
|title = [[mail:wikitech-l|wikitech-l]]
|content = ناقش أعمال تصميم وتطوير برمجيات ميدياويكي وبرمجيات ويكيميديا على هذه القائمة البريدية متوسطة الاستخدام [[mail:wikitech-l|wikitech-l]].
}}
}}
هنالك عدة {{ll|mailing lists}} متاحة.

&lt;span id="Report_software_bugs_and_feature_requests"&gt;&lt;/span&gt;
== الإبلاغ عن عطل فني أو طلب سمة برمجية ==

{{ll|How to report a bug|أبلغ عن الأعطال البرمجية والسمات وابحث عنها}} لأغلب برمجيات ويكيميديا على {{ll|Phabricator}}.

&lt;span id="Contact_software_maintainers"&gt;&lt;/span&gt;
== الاتصال بمن يتولون صيانة البرمجيات ==
توجد قائمة تحتوي على من يتولون صيانة برمجيات ويكيميديا على الصفحة {{ll|Developers/Maintainers}}.
يمكنك ترك رسالة على صفحات نقاشهم أو إرسال رسالة بريد إلكتروني إلى أي منهم إن أردت الاتصال بهم.

لو لم تتمكن من إيجاد صائنين لمشروع تبحث عنه على {{ll|Developers/Maintainers}}، حاول البحث عنهم على صفحة المشروع المخصصة للبرمجيات على mediawiki.org أو ملاك المشروع على {{ll|Phabricator}} أو المساهمين في المشروع على {{ll|Gerrit}}.

&lt;span id="Learn,_explore,_and_follow"&gt;&lt;/span&gt;
== تعلم واستكشف وتابع ==

ظل على اطلاع وتابع الأخبار والتغييرات.

&lt;span id="Mailing_lists"&gt;&lt;/span&gt;
=== القوائم البريدية ===

اشترك في القوائم البريدية:
{{ContentGrid
|content=
{{Colored box
|title = [[mail:mediawiki-announce|mediawiki-announce]]
|content = [[[[mail:mediawiki-announce|mediawiki-announce]]]] هي قائمة بريدية غير مكتظة مخصصة للإعلان عن إصدارات ميدياويكي الجديدة والتحديثات الأمنية (تذهب كافة الرسائل أيضا إلى [[mail:mediawiki-l|mediawiki-l]]).
}}
{{Colored box
|title = [[mail:wikitech-ambassadors|wikitech-ambassadors]]
|content = ‎[[mail:wikitech-ambassadors|wikitech-ambassadors]] تعلن عن أهم التغييرات الفنية التي ستجري على مواقع ويكيميديا الشبكية. تستهدف هذه القائمة المستخدمين النهائيين لمواقع ويكي ويكيميديا، لا برمجيات ويكيميديا بوجه عام. يمكنك أيضًا متابعة هذه الإعلانات على مواقع ويكي ويكيميديا عن طريق [[meta:Special:MyLanguage/Tech/News|الأخبار التقنية]].
}}
}}

{{anchor|com-sites}}
&lt;span id="Join_groups_with_shared_interests"&gt;&lt;/span&gt;
=== انضم إلى مجموعات ذات اهتمام مشترك ===
{{ContentGrid
|content=
{{Colored box
|title = {{ll|MediaWiki Stakeholders' Group}}
|content = تستهدف {{ll|MediaWiki Stakeholders' Group}} مناصرة احتياجات مستخدمي برمجيات ميدياويكي.
}}
{{Colored box
|title = {{ll|Project:MediaWiki Farmers user group|2=مجموعة مستخدمي مزارع ميدياويكي}}
|content = إن [[Special:MyLanguage/Project:MediaWiki Farmers user group|مجموعة مستخدمي مزارع ميدياويكي]] هي مجموعة مطورين يعملون في مزارع الويكي.
}}
{{Colored box
|title = [[m:Special:MyLanguage/Wikimedia user groups|مجموعات مستخدمي ويكيميديا]]
|content = [[meta:Special:MyLanguage/Wikimedia user groups|مجموعات المستخدمين]] هي مجموعات مفتوحة منظمة حسب موضوع واحد أو مجال اهتمام معين.
}}
{{Colored box
|title = {{ll|Special Interest Groups}}
|content = {{ll|Special Interest Groups}} هي مجموعات منظمة صغيرة الحجم تركز على بواعث قلق فنية مشتركة.
}}
}}

{{anchor|com-twitter|Twitter/Facebook}}
&lt;span id="Social_Media"&gt;&lt;/span&gt;
=== وسائل التواصل الاجتماعي ===

تابع حساباتنا:

{{ContentGrid
|content=
{{Colored box
|title = [https://wikis.world/@mediawiki @mediawiki@wikis.world] على ماستودون
|content = أخبار من أعضاء مجتمع ميدياويكي ([[Special:MyLanguage/Project:Mastodon|تفاصيل]]).
}}
{{Colored box
|title = [https://x.com/MediaWiki @MediaWiki] على إكس (يعرف سابقًا باسم تويتر)
|content = أخبار من مشروع ميدياويكي.
}}
{{Colored box
|title = [https://www.facebook.com/MediaWikiProject MediaWiki] على فيسبوك
|content = أخبار من مشروع ميدياويكي.
}}
{{Colored box
|title = [https://x.com/wikimediatech @WikimediaTech] على إكس
|content = أخبار من حركة ميدياويكي الفنية.
}}
{{Colored box
|title = [https://www.youtube.com/channel/UCg4wlhlN8RjP6_e_vMC4CTA @watchmediawiki] على يوتيوب
|content = تدفقات الفيديو والفعاليات المتعلقة ببرمجيات ميدياويكي وتقنية ويكيميديا.
}}
}}
{{anchor|com-blog}}

&lt;span id="Blogs"&gt;&lt;/span&gt;
=== المدونات ===

طالع الأخبار:
{{ContentGrid
|content=
{{Colored box
|title = &lt;span class="plainlinks"&gt;[https://techblog.wikimedia.org Wikimedia Tech Blog]&lt;/span&gt;
|content = &lt;span class="plainlinks"&gt;تشارك [https://techblog.wikimedia.org مدونة ويكيميديا التقنية] أخبار من مجتمع ويكيميديا الفني سواء داخل تقنيات ويكيميديا وما يتخطاها.&lt;/span&gt;
}}
{{Colored box
|title = [[phab:phame/blog/|المدونات على فبريكاتور.]]
|content = طالع [[phab:phame/blog/|المدونات الفنية]] التي يستضيفها {{ll|Phabricator|Wikimedia Phabricator}}.
}}
{{Colored box
|title = &lt;span class="plainlinks"&gt;[https://en.planet.wikimedia.org/ Planet Wikimedia]&lt;/span&gt;
|content = &lt;span class="plainlinks"&gt;يحوي [https://en.planet.wikimedia.org/ مجمِّع مدونة كوكب ويكيميديا الانجليزية] منشورات فنية مختلطة مع منشورات عن نواحي غير فنية من مشاريع ويكيميديا.&lt;/span&gt;
}}
}}

{{anchor|com-news}}
&lt;span id="Newsletters"&gt;&lt;/span&gt;
=== النشرات الإخبارية ===
اشترك في [[Special:Newsletters|النشرات ويكيميديا الإخبارية]] التي تتناول مجالات محددة ذات اهتمام من الناحية الفنية.
ربما ترغب أولًا مطالعة محفوظات هذه النشرات الإخبارية كي تطلع على مستوى نشاط النشرة الإخبارية.

&lt;span id="Share_your_knowledge"&gt;&lt;/span&gt;
== شارك معارفك ==
{{ContentGrid
|content=
{{Colored box
|title = Wikimedia Tech Blog
|content = &lt;span class="plainlinks"&gt;[[Special:MyLanguage/Wikimedia technical blog editorial guidelines|انشر أخبارك الفنية]] على [https://techblog.wikimedia.org مدونة تقنية ويكيميديا].&lt;/span&gt;
}}
{{Colored box
|title = Wikimedia Technical Talks
|content = قدّم [[Special:MyLanguage/Wikimedia Technical Talks|نقاش فني]] عن طريق عرض تقديمي بالفيديو. ''(معلق مؤقتًا)''
}}
}}

[[Category:MediaWiki Introduction{{#translation:}}]]
[[Category:MediaWiki Communication{{#translation:}}| ]]
[[Category:New contributors{{#translation:}}]]</text>
    <sha1>2c1879c464718c38c1eeaddf47fd97ea04ed60db</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Help:Mass account creation/6/ru</title>
  <ns>1198</ns>
  <id>1992285</id>
  <revision>
    <id>6624234</id>
    <timestamp>2024-07-09T08:52:54Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "Перед мастер-классом: сначала определите (или спросите) логин и адрес электронной почты для каждого аккаунта, он понадобится вам в форме (создание «по электронной почте» с автоматической высылкой пароля); затем:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="386" xml:space="preserve">Перед мастер-классом: сначала определите (или спросите) логин и адрес электронной почты для каждого аккаунта, он понадобится вам в форме (создание «по электронной почте» с автоматической высылкой пароля); затем:</text>
    <sha1>bf5b3738966ccaf619fa1e8f5fe380f25b842c9c</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Help:Mass account creation/7/ru</title>
  <ns>1198</ns>
  <id>1992286</id>
  <revision>
    <id>6624236</id>
    <timestamp>2024-07-09T08:53:07Z</timestamp>
    <contributor>
      <username>Umarxon III</username>
      <id>1881771</id>
    </contributor>
    <comment>Created page with "создавайте их заранее, медленно, в течение дней, чтобы не уложиться в лимит;"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="137" xml:space="preserve">создавайте их заранее, медленно, в течение дней, чтобы не уложиться в лимит;</text>
    <sha1>3f324efedc011a0372d8ab1dd22a5b9d08842cba</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Global templates/Proposed specification/159/cs</title>
  <ns>1198</ns>
  <id>1992287</id>
  <revision>
    <id>6624237</id>
    <timestamp>2024-07-09T08:53:08Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="152" xml:space="preserve">Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.</text>
    <sha1>5615a5904ccdea02bc8e0072cad48ba13ceb13de</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Communication/Page display title/ar</title>
  <ns>1198</ns>
  <id>167915</id>
  <revision>
    <id>6624240</id>
    <parentid>6623995</parentid>
    <timestamp>2024-07-09T08:53:22Z</timestamp>
    <contributor>
      <username>Svartava</username>
      <id>17559730</id>
    </contributor>
    <minor/>
    <comment>Reverted edits by [[Special:Contributions/134.35.5.229|134.35.5.229]]; if you disagree with this rollback, please [[Special:NewSection/User talk:Svartava|leave a message]] on my talk-page.</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="14" xml:space="preserve">التواصل</text>
    <sha1>b9dc844d86d75f46a20efe484bf6c20716e64b3f</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>MediaWiki 1.43/Roadmap</title>
  <ns>0</ns>
  <id>1937705</id>
  <revision>
    <id>6624241</id>
    <parentid>6590335</parentid>
    <timestamp>2024-07-09T08:58:56Z</timestamp>
    <contributor>
      <username>AKlapper (WMF)</username>
      <id>790805</id>
    </contributor>
    <comment>1.43.0-wmf.13 deployed to group0</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="2202" xml:space="preserve">{{Wikimedia engineering project information
| name = MediaWiki 1.43
| description = Deployment of MediaWiki 1.43.0-wmf.XX versions and release of [[MediaWiki 1.43]]
| start = 2024-04-13
| end = 
| group = [[Wikimedia Release Engineering Team|Release Engineering]]
| previous = [[MediaWiki 1.42/Roadmap|MediaWiki 1.42]]
| next = [[MediaWiki 1.44/Roadmap|MediaWiki 1.44]]
| projectpage = MediaWiki 1.43
| display = {{{display|}}}
}}

== Timeline ==
Wikimedia deployments of MediaWiki 1.43 alpha versions will happen on weekly intervals, within a longer stretch (approximately 6 months) between publishing releases of the installer for third-party users.

'''Current status:''' {{Doing}}

{{-}}

== Schedule for the deployments ==
See [[wikitech:Deployments]] for current schedule, dates, and times. See [https://versions.toolforge.org/ status board] for current status. For more details about progress and problems see [https://train-blockers.toolforge.org/ Current MediaWiki Train blocker task]. The changes that are part of a given deployment branch can be found on the corresponding [[:Category:WMF_Releases|change log page]].

Jump to [[#release-next|Next release row]].

{{WMFReleaseTableHead}}
{{WMFReleaseTableRow|26|2024-10-08}}
{{WMFReleaseTableRow|25|2024-10-01}}
{{WMFReleaseTableRow|24|2024-09-24}}
{{WMFReleaseTableRow|23|2024-09-17}}
{{WMFReleaseTableRow|22|2024-09-10}}
{{WMFReleaseTableRow|21|2024-09-03}}
{{WMFReleaseTableRow|20|2024-08-27}}
{{WMFReleaseTableRow|19|2024-08-20}}
{{WMFReleaseTableRow|18|2024-08-13}}
{{WMFReleaseTableRow|17|2024-08-06}}
{{WMFReleaseTableRow|16|2024-07-30}}
{{WMFReleaseTableRow|15|2024-07-23}}
{{WMFReleaseTableRow|14|2024-07-16}}
{{WMFReleaseTableRow|13|2024-07-09|0}}
{{WMFReleaseTableRow|12|2024-07-02|2}}
{{WMFReleaseTableRow|11|2024-06-25|2}}
{{WMFReleaseTableRow|10|2024-06-18|2}}
{{WMFReleaseTableRow|9|2024-06-11|2}}
{{WMFReleaseTableRow|8|2024-06-04|2}}
{{WMFReleaseTableRow|7|2024-05-28|2}}
{{WMFReleaseTableRow|6|2024-05-21|2}}
{{WMFReleaseTableRow|5|2024-05-14|2}}
{{WMFReleaseTableRow|4|2024-05-07|2}}
{{WMFReleaseTableRow|3|2024-04-30|2}}
{{WMFReleaseTableRow|2|2024-04-23|2}}
{{WMFReleaseTableRow|1|2024-04-16|2}}
{{WMFReleaseTableFooter}}</text>
    <sha1>f18efe02c158a9892c22545c329194cd5d675d04</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>User:ArielGlenn/CentralAuth walkthrough</title>
  <ns>2</ns>
  <id>1992288</id>
  <revision>
    <id>6624242</id>
    <timestamp>2024-07-09T09:05:04Z</timestamp>
    <contributor>
      <username>ArielGlenn</username>
      <id>31925</id>
    </contributor>
    <comment>get an outline down so the material can be shoved in there in some reasonable order</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="1402" xml:space="preserve">==Setup of the [[Extension:CentralAuth|CentralAuth]] extension==

'''DRAFT IN PROGRESS'''

This documents my setup for testing login, session and cookie behavior in a small wikifarm environment. It is current as of July 9, 2024.

I do not use docker images for this setup; if you do, then you will want to manage hostnames and networking accordingly, as well as volume mounts for MediaWiki source and for databases.

I do everything on linux. The specific distribution should not matter, but for that reason I do not specify package manager details, since they may vary. I do provide information for dealing with selinux, in case you run a distribution with selinux enabled.

I run PHP 8.3 locally; that is not a requirement. You should make sure that the version of PHP you have available is the minimum required for MediaWiki and a minimal group of extensions; see the [[Compatibility#PHP|compatibility notes]] for details. 

=== Installation of a wiki farm ===

==== Prerequisites ====
==== MediaWiki source ====
==== Databases ====
==== Installation on each wiki ====
==== MediaWiki Configuration ====

=== Setup of CentralAuth ===
==== Getting the source ====
==== Configuration ====
==== Migration of existing accounts ====
==== Setting up a global steward account ====

=== Testing ===
==== Back up your databases ====
==== Running unit tests ====
==== Manual testing ====

=== Further notes ===</text>
    <sha1>0029243a592741ed5c95d34b06eb29314c1b0e2b</sha1>
  </revision>
</page>
<page arvcontinue="20240709084146|6624194">
  <title>Translations:Extension:Translate/6/pl</title>
  <ns>1198</ns>
  <id>186700</id>
  <revision>
    <id>6624243</id>
    <parentid>3779279</parentid>
    <timestamp>2024-07-09T09:24:10Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="213" xml:space="preserve">Rozszerzenie $1 sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.</text>
    <sha1>21af545914f20fc760dd08a0132fcf5169774235</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Extension:Translate/pl</title>
  <ns>102</ns>
  <id>170399</id>
  <revision>
    <id>6624244</id>
    <parentid>6594417</parentid>
    <timestamp>2024-07-09T09:24:11Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="12384" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Enables in-wiki translation and proofreading&lt;/span&gt;
|example   = &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[translatewiki:Special:Translate|Translatewiki.net]] – or [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view try how to translate a page now]&lt;/span&gt;
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Features include:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''Structured wiki content page translation''', from various languages at the same wiki.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''In-wiki localisation and exporting of software interface messages (or just about anything).'''
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''Web-based translation and proofreading [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interface]], as well as gettext based export and import for off-line translation.'''
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''Various aids to make the job of translators easier:'''
&lt;/div&gt;
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** display of the latest change in the source message;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** warnings about common mistakes like parameters that are not used.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Pre-made modules for various open source products you can use as an example.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** Support for various formats including: PHP, Java properties, Gettext, YAML and AndroidXml (see {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} and [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* A versatile plug-in system to make it easy to add new projects as a message group.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Various statistics:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages for all message groups in all supported languages;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages in all supported languages for any supported message group;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** tool for making activity graphs for spans of time.
&lt;/div&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Can display either number of edits or active users daily or hourly and includes many filters;&lt;/span&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** cloud overview of active languages and translators.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Translate extension, due to its large user base, is confirmed to be compatible with all reasonably recent browsers, except some minor (style) glitches which are quickly fixed.
&lt;/div&gt;

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>e169d407c26f256bdb1ced4095caf459ed0c7d0a</sha1>
  </revision>
  <revision>
    <id>6624246</id>
    <parentid>6624244</parentid>
    <timestamp>2024-07-09T09:25:52Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Wykorzystuje tłumaczenie i korekty w wiki"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="12326" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[translatewiki:Special:Translate|Translatewiki.net]] – or [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view try how to translate a page now]&lt;/span&gt;
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Features include:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''Structured wiki content page translation''', from various languages at the same wiki.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''In-wiki localisation and exporting of software interface messages (or just about anything).'''
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''Web-based translation and proofreading [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interface]], as well as gettext based export and import for off-line translation.'''
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''Various aids to make the job of translators easier:'''
&lt;/div&gt;
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** display of the latest change in the source message;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** warnings about common mistakes like parameters that are not used.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Pre-made modules for various open source products you can use as an example.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** Support for various formats including: PHP, Java properties, Gettext, YAML and AndroidXml (see {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} and [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* A versatile plug-in system to make it easy to add new projects as a message group.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Various statistics:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages for all message groups in all supported languages;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages in all supported languages for any supported message group;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** tool for making activity graphs for spans of time.
&lt;/div&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Can display either number of edits or active users daily or hourly and includes many filters;&lt;/span&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** cloud overview of active languages and translators.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Translate extension, due to its large user base, is confirmed to be compatible with all reasonably recent browsers, except some minor (style) glitches which are quickly fixed.
&lt;/div&gt;

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>63f23f2fa43cef87f994bdf36a02ef9b0cb785a0</sha1>
  </revision>
  <revision>
    <id>6624248</id>
    <parentid>6624246</parentid>
    <timestamp>2024-07-09T09:26:15Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "[[$twn|Translatewiki.net]] - lub [$meta spróbuj jak przetłumaczyć stronę teraz]."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="12281" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Features include:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''Structured wiki content page translation''', from various languages at the same wiki.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''In-wiki localisation and exporting of software interface messages (or just about anything).'''
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''Web-based translation and proofreading [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interface]], as well as gettext based export and import for off-line translation.'''
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''Various aids to make the job of translators easier:'''
&lt;/div&gt;
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** display of the latest change in the source message;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** warnings about common mistakes like parameters that are not used.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Pre-made modules for various open source products you can use as an example.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** Support for various formats including: PHP, Java properties, Gettext, YAML and AndroidXml (see {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} and [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* A versatile plug-in system to make it easy to add new projects as a message group.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Various statistics:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages for all message groups in all supported languages;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages in all supported languages for any supported message group;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** tool for making activity graphs for spans of time.
&lt;/div&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Can display either number of edits or active users daily or hourly and includes many filters;&lt;/span&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** cloud overview of active languages and translators.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Translate extension, due to its large user base, is confirmed to be compatible with all reasonably recent browsers, except some minor (style) glitches which are quickly fixed.
&lt;/div&gt;

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>8b886393b1263f5d4cd588141bdf0b1ef90097a2</sha1>
  </revision>
  <revision>
    <id>6624250</id>
    <parentid>6624248</parentid>
    <timestamp>2024-07-09T09:26:31Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Wśród cech:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="12221" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''Structured wiki content page translation''', from various languages at the same wiki.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''In-wiki localisation and exporting of software interface messages (or just about anything).'''
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''Web-based translation and proofreading [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interface]], as well as gettext based export and import for off-line translation.'''
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''Various aids to make the job of translators easier:'''
&lt;/div&gt;
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** display of the latest change in the source message;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** warnings about common mistakes like parameters that are not used.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Pre-made modules for various open source products you can use as an example.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** Support for various formats including: PHP, Java properties, Gettext, YAML and AndroidXml (see {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} and [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* A versatile plug-in system to make it easy to add new projects as a message group.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Various statistics:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages for all message groups in all supported languages;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages in all supported languages for any supported message group;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** tool for making activity graphs for spans of time.
&lt;/div&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Can display either number of edits or active users daily or hourly and includes many filters;&lt;/span&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** cloud overview of active languages and translators.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Translate extension, due to its large user base, is confirmed to be compatible with all reasonably recent browsers, except some minor (style) glitches which are quickly fixed.
&lt;/div&gt;

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>df80f9d7946e5e917d276b6c867799b0a4aa02b0</sha1>
  </revision>
  <revision>
    <id>6624252</id>
    <parentid>6624250</parentid>
    <timestamp>2024-07-09T09:26:52Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="12161" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''In-wiki localisation and exporting of software interface messages (or just about anything).'''
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''Web-based translation and proofreading [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interface]], as well as gettext based export and import for off-line translation.'''
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''Various aids to make the job of translators easier:'''
&lt;/div&gt;
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** display of the latest change in the source message;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** warnings about common mistakes like parameters that are not used.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Pre-made modules for various open source products you can use as an example.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** Support for various formats including: PHP, Java properties, Gettext, YAML and AndroidXml (see {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} and [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* A versatile plug-in system to make it easy to add new projects as a message group.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Various statistics:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages for all message groups in all supported languages;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages in all supported languages for any supported message group;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** tool for making activity graphs for spans of time.
&lt;/div&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Can display either number of edits or active users daily or hourly and includes many filters;&lt;/span&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** cloud overview of active languages and translators.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Translate extension, due to its large user base, is confirmed to be compatible with all reasonably recent browsers, except some minor (style) glitches which are quickly fixed.
&lt;/div&gt;

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>a101bc47ae588ff8d0411259e1e0800f7d8b539a</sha1>
  </revision>
  <revision>
    <id>6624254</id>
    <parentid>6624252</parentid>
    <timestamp>2024-07-09T09:27:37Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="12113" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''Web-based translation and proofreading [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interface]], as well as gettext based export and import for off-line translation.'''
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''Various aids to make the job of translators easier:'''
&lt;/div&gt;
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** display of the latest change in the source message;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** warnings about common mistakes like parameters that are not used.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Pre-made modules for various open source products you can use as an example.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** Support for various formats including: PHP, Java properties, Gettext, YAML and AndroidXml (see {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} and [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* A versatile plug-in system to make it easy to add new projects as a message group.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Various statistics:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages for all message groups in all supported languages;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages in all supported languages for any supported message group;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** tool for making activity graphs for spans of time.
&lt;/div&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Can display either number of edits or active users daily or hourly and includes many filters;&lt;/span&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** cloud overview of active languages and translators.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Translate extension, due to its large user base, is confirmed to be compatible with all reasonably recent browsers, except some minor (style) glitches which are quickly fixed.
&lt;/div&gt;

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>a6ce9f9fd1e010dcb2385b2dde1010ddfd57cdd9</sha1>
  </revision>
  <revision>
    <id>6624256</id>
    <parentid>6624254</parentid>
    <timestamp>2024-07-09T09:27:51Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* '''Internetowe tłumaczenie i korekta [[$1|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="12055" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* '''Various aids to make the job of translators easier:'''
&lt;/div&gt;
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** display of the latest change in the source message;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** warnings about common mistakes like parameters that are not used.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Pre-made modules for various open source products you can use as an example.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** Support for various formats including: PHP, Java properties, Gettext, YAML and AndroidXml (see {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} and [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* A versatile plug-in system to make it easy to add new projects as a message group.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Various statistics:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages for all message groups in all supported languages;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages in all supported languages for any supported message group;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** tool for making activity graphs for spans of time.
&lt;/div&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Can display either number of edits or active users daily or hourly and includes many filters;&lt;/span&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** cloud overview of active languages and translators.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Translate extension, due to its large user base, is confirmed to be compatible with all reasonably recent browsers, except some minor (style) glitches which are quickly fixed.
&lt;/div&gt;

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>67f3048993ce9516252695511044d37233b1c771</sha1>
  </revision>
  <revision>
    <id>6624258</id>
    <parentid>6624256</parentid>
    <timestamp>2024-07-09T09:28:03Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* '''Różne pomoce ułatwiające pracę tłumaczom:'''"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11995" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** display of the latest change in the source message;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** warnings about common mistakes like parameters that are not used.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Pre-made modules for various open source products you can use as an example.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** Support for various formats including: PHP, Java properties, Gettext, YAML and AndroidXml (see {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} and [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* A versatile plug-in system to make it easy to add new projects as a message group.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Various statistics:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages for all message groups in all supported languages;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages in all supported languages for any supported message group;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** tool for making activity graphs for spans of time.
&lt;/div&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Can display either number of edits or active users daily or hourly and includes many filters;&lt;/span&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** cloud overview of active languages and translators.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Translate extension, due to its large user base, is confirmed to be compatible with all reasonably recent browsers, except some minor (style) glitches which are quickly fixed.
&lt;/div&gt;

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>411bf47dd5e524ec9767e418b38ad770ae55b24c</sha1>
  </revision>
  <revision>
    <id>6624263</id>
    <parentid>6624258</parentid>
    <timestamp>2024-07-09T09:32:27Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "** wyświetlanie najnowszej zmiany w wiadomości źródłowej;"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11947" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** warnings about common mistakes like parameters that are not used.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Pre-made modules for various open source products you can use as an example.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** Support for various formats including: PHP, Java properties, Gettext, YAML and AndroidXml (see {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} and [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* A versatile plug-in system to make it easy to add new projects as a message group.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Various statistics:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages for all message groups in all supported languages;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages in all supported languages for any supported message group;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** tool for making activity graphs for spans of time.
&lt;/div&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Can display either number of edits or active users daily or hourly and includes many filters;&lt;/span&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** cloud overview of active languages and translators.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Translate extension, due to its large user base, is confirmed to be compatible with all reasonably recent browsers, except some minor (style) glitches which are quickly fixed.
&lt;/div&gt;

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>436d35b7c2a56addebc6efbcd7ccc8667510e68a</sha1>
  </revision>
  <revision>
    <id>6624265</id>
    <parentid>6624263</parentid>
    <timestamp>2024-07-09T09:32:32Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11901" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Pre-made modules for various open source products you can use as an example.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** Support for various formats including: PHP, Java properties, Gettext, YAML and AndroidXml (see {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} and [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* A versatile plug-in system to make it easy to add new projects as a message group.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Various statistics:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages for all message groups in all supported languages;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages in all supported languages for any supported message group;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** tool for making activity graphs for spans of time.
&lt;/div&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Can display either number of edits or active users daily or hourly and includes many filters;&lt;/span&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** cloud overview of active languages and translators.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Translate extension, due to its large user base, is confirmed to be compatible with all reasonably recent browsers, except some minor (style) glitches which are quickly fixed.
&lt;/div&gt;

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>96f1a340c36b2b808de3b0f01530727f27893fbd</sha1>
  </revision>
  <revision>
    <id>6624267</id>
    <parentid>6624265</parentid>
    <timestamp>2024-07-09T09:32:41Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11864" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** Support for various formats including: PHP, Java properties, Gettext, YAML and AndroidXml (see {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} and [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* A versatile plug-in system to make it easy to add new projects as a message group.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Various statistics:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages for all message groups in all supported languages;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages in all supported languages for any supported message group;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** tool for making activity graphs for spans of time.
&lt;/div&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Can display either number of edits or active users daily or hourly and includes many filters;&lt;/span&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** cloud overview of active languages and translators.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Translate extension, due to its large user base, is confirmed to be compatible with all reasonably recent browsers, except some minor (style) glitches which are quickly fixed.
&lt;/div&gt;

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>03c2030e7aec48d9ea867f47b7e74c453a728209</sha1>
  </revision>
  <revision>
    <id>6624269</id>
    <parentid>6624267</parentid>
    <timestamp>2024-07-09T09:32:54Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz $git-file i [[$format|File format support]])."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11805" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* A versatile plug-in system to make it easy to add new projects as a message group.
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Various statistics:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages for all message groups in all supported languages;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages in all supported languages for any supported message group;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** tool for making activity graphs for spans of time.
&lt;/div&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Can display either number of edits or active users daily or hourly and includes many filters;&lt;/span&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** cloud overview of active languages and translators.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Translate extension, due to its large user base, is confirmed to be compatible with all reasonably recent browsers, except some minor (style) glitches which are quickly fixed.
&lt;/div&gt;

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>2311f235508a7810f4f299d86ebf723ac680816a</sha1>
  </revision>
  <revision>
    <id>6624272</id>
    <parentid>6624269</parentid>
    <timestamp>2024-07-09T09:33:32Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11765" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Various statistics:
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages for all message groups in all supported languages;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages in all supported languages for any supported message group;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** tool for making activity graphs for spans of time.
&lt;/div&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Can display either number of edits or active users daily or hourly and includes many filters;&lt;/span&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** cloud overview of active languages and translators.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Translate extension, due to its large user base, is confirmed to be compatible with all reasonably recent browsers, except some minor (style) glitches which are quickly fixed.
&lt;/div&gt;

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>d23e4553ecb6c6b00a685f2c652a30a0b285a6fc</sha1>
  </revision>
  <revision>
    <id>6624274</id>
    <parentid>6624272</parentid>
    <timestamp>2024-07-09T09:33:44Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11674" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** translation completion percentages in all supported languages for any supported message group;
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** tool for making activity graphs for spans of time.
&lt;/div&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Can display either number of edits or active users daily or hourly and includes many filters;&lt;/span&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** cloud overview of active languages and translators.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Translate extension, due to its large user base, is confirmed to be compatible with all reasonably recent browsers, except some minor (style) glitches which are quickly fixed.
&lt;/div&gt;

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>fcb1ecd75d65bb206b59865d92b218cf79592399</sha1>
  </revision>
  <revision>
    <id>6624277</id>
    <parentid>6624274</parentid>
    <timestamp>2024-07-09T09:34:00Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11643" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** tool for making activity graphs for spans of time.
&lt;/div&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Can display either number of edits or active users daily or hourly and includes many filters;&lt;/span&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** cloud overview of active languages and translators.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Translate extension, due to its large user base, is confirmed to be compatible with all reasonably recent browsers, except some minor (style) glitches which are quickly fixed.
&lt;/div&gt;

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>566268ae2de85a206e3610d801cf3ff0a5dd844b</sha1>
  </revision>
  <revision>
    <id>6624279</id>
    <parentid>6624277</parentid>
    <timestamp>2024-07-09T09:34:33Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11607" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** tool for making activity graphs for spans of time.
&lt;/div&gt; Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** cloud overview of active languages and translators.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Translate extension, due to its large user base, is confirmed to be compatible with all reasonably recent browsers, except some minor (style) glitches which are quickly fixed.
&lt;/div&gt;

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>9be57e69bf62a8d34b01b575ce60a986ee7b3a1a</sha1>
  </revision>
  <revision>
    <id>6624281</id>
    <parentid>6624279</parentid>
    <timestamp>2024-07-09T09:34:37Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "** przegląd w chmurze aktywnych języków i tłumaczy."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11552" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
** tool for making activity graphs for spans of time.
&lt;/div&gt; Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Translate extension, due to its large user base, is confirmed to be compatible with all reasonably recent browsers, except some minor (style) glitches which are quickly fixed.
&lt;/div&gt;

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>fb9119d2e8d4611c808d4502185585971b0ddfe2</sha1>
  </revision>
  <revision>
    <id>6624283</id>
    <parentid>6624281</parentid>
    <timestamp>2024-07-09T09:34:45Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "** narzędzie do tworzenia wykresów aktywności w czasie."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11501" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Translate extension, due to its large user base, is confirmed to be compatible with all reasonably recent browsers, except some minor (style) glitches which are quickly fixed.
&lt;/div&gt;

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>af9a079cb1bd55aa4bd6fb9299c72d3509f47753</sha1>
  </revision>
  <revision>
    <id>6624285</id>
    <parentid>6624283</parentid>
    <timestamp>2024-07-09T09:35:05Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11509" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;''Making Multilingual Wikis a Reality'': this presentation shows how the Translate extension can make a wiki truly multilingual, based on the experience of KDE UserBase wiki.&lt;/span&gt;
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>26075c45ecc0ef58bbfb60bc095967676a30feca</sha1>
  </revision>
  <revision>
    <id>6624287</id>
    <parentid>6624285</parentid>
    <timestamp>2024-07-09T09:35:44Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11471" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slides available).&lt;/span&gt;
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>c29710ab16d21b1f53b26fe64a9b7bf895594658</sha1>
  </revision>
  <revision>
    <id>6624289</id>
    <parentid>6624287</parentid>
    <timestamp>2024-07-09T09:35:55Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne)."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11415" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* See [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Getting started with Translate extension development]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>fbb3e0859f7a008d3c87e34e13cd8b1009add438</sha1>
  </revision>
  <revision>
    <id>6624291</id>
    <parentid>6624289</parentid>
    <timestamp>2024-07-09T09:36:17Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* Zobacz [[$1|Rozpoczęcie pracy z rozszerzeniem Translate]]."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11355" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Live support at #translatewiki IRC channel at Libera Chat (best times are at European days and evenings)
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>c371967ed155a1c1cef46ae64330f3504182abb1</sha1>
  </revision>
  <revision>
    <id>6624293</id>
    <parentid>6624291</parentid>
    <timestamp>2024-07-09T09:36:24Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* Podsparcie na żywo na kanale IRC $1 w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11310" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Please report all issues and feature requests in the [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate issue tracker]
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>0f03b48293f1082af352cc26760f28a14cc17c13</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/54/pl</title>
  <ns>1198</ns>
  <id>1992289</id>
  <revision>
    <id>6624245</id>
    <timestamp>2024-07-09T09:25:51Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Wykorzystuje tłumaczenie i korekty w wiki"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="42" xml:space="preserve">Wykorzystuje tłumaczenie i korekty w wiki</text>
    <sha1>738204afc736375a66905be74f4734412bc69c8a</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/5/pl</title>
  <ns>1198</ns>
  <id>1992290</id>
  <revision>
    <id>6624247</id>
    <timestamp>2024-07-09T09:26:14Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "[[$twn|Translatewiki.net]] - lub [$meta spróbuj jak przetłumaczyć stronę teraz]."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="84" xml:space="preserve">[[$twn|Translatewiki.net]] - lub [$meta spróbuj jak przetłumaczyć stronę teraz].</text>
    <sha1>6f330d2a9948071ea1ebd05ac051fa0b0d585e26</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/9/pl</title>
  <ns>1198</ns>
  <id>1992291</id>
  <revision>
    <id>6624249</id>
    <timestamp>2024-07-09T09:26:30Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Wśród cech:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="13" xml:space="preserve">Wśród cech:</text>
    <sha1>3bcb870e4fc93f8eeb66b91a6e7fa3e4fd411da5</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/10/pl</title>
  <ns>1198</ns>
  <id>1992292</id>
  <revision>
    <id>6624251</id>
    <timestamp>2024-07-09T09:26:51Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="86" xml:space="preserve">* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.</text>
    <sha1>a1fa8d2123857c258307dc806367c5b543512756</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/11/pl</title>
  <ns>1198</ns>
  <id>1992293</id>
  <revision>
    <id>6624253</id>
    <timestamp>2024-07-09T09:27:36Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="107" xml:space="preserve">* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.</text>
    <sha1>fd3ee89ffc34dc4ad64e342aa0d6cb721b398de4</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/12/pl</title>
  <ns>1198</ns>
  <id>1992294</id>
  <revision>
    <id>6624255</id>
    <timestamp>2024-07-09T09:27:51Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* '''Internetowe tłumaczenie i korekta [[$1|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="131" xml:space="preserve">* '''Internetowe tłumaczenie i korekta [[$1|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.</text>
    <sha1>bf95a739aeb78e6e70b756e2f45fc20d2c0af82a</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/13/pl</title>
  <ns>1198</ns>
  <id>1992295</id>
  <revision>
    <id>6624257</id>
    <timestamp>2024-07-09T09:28:02Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* '''Różne pomoce ułatwiające pracę tłumaczom:'''"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="55" xml:space="preserve">* '''Różne pomoce ułatwiające pracę tłumaczom:'''</text>
    <sha1>22893009f0f796b6dc97e3a22ae2c5bd4c14130b</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Talk:Elite driving school</title>
  <ns>1</ns>
  <id>1992296</id>
  <revision>
    <id>6624259</id>
    <timestamp>2024-07-09T09:31:09Z</timestamp>
    <contributor>
      <username>203.175.75.75</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Introduction:  Elite Driving School stands out as a premier choice for those seeking top-tier driving instruction. Known for its commitment to excellence and specialized programs, Elite Driving School offers a comprehensive approach to driver education that goes beyond basic skills.  Pros and Cons:  Pros:  1. Elite Driving School prides itself on offering high-quality instruction tailored to individual learning styles. This personalized approach can accelerate learning a..."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="1390" xml:space="preserve">Introduction:

Elite Driving School stands out as a premier choice for those seeking top-tier driving instruction. Known for its commitment to excellence and specialized programs, Elite Driving School offers a comprehensive approach to driver education that goes beyond basic skills.

Pros and Cons: 
Pros: 
1. Elite Driving School prides itself on offering high-quality instruction tailored to individual learning styles. This personalized approach can accelerate learning and improve driving skills.
2. They often offer specialized programs such as defensive driving, advanced maneuvering, and preparation for professional driving careers.
3. Instructors at Elite Driving School are typically highly experienced and certified, ensuring students.

Cons:
1. Elite Driving School's high-quality instruction may come with a higher price tag compared to standard driving schools. 
2. Elite Driving School may be more challenging due to high demand for their specialized services
 
Why Elite Driving School is Easy for People:

1. Tailored Instruction:

 They offer tailored instruction that suits individual learning styles, making it easier for students to grasp concepts and improve their driving skills efficiently.

2. Advanced Techniques:
 By teaching advanced driving techniques and focusing on safety, Elite Driving School prepares drivers to handle various road conditions confidently.</text>
    <sha1>00a815605714247d066a43cc5c8ea3cd28c4b060</sha1>
  </revision>
  <revision>
    <id>6624260</id>
    <parentid>6624259</parentid>
    <timestamp>2024-07-09T09:31:45Z</timestamp>
    <contributor>
      <username>MathXplore</username>
      <id>11001828</id>
    </contributor>
    <comment>Requesting [[Project:Deletion|speedy deletion]]</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="1418" xml:space="preserve">{{speedy|Spam or promotion}}Introduction:

Elite Driving School stands out as a premier choice for those seeking top-tier driving instruction. Known for its commitment to excellence and specialized programs, Elite Driving School offers a comprehensive approach to driver education that goes beyond basic skills.

Pros and Cons: 
Pros: 
1. Elite Driving School prides itself on offering high-quality instruction tailored to individual learning styles. This personalized approach can accelerate learning and improve driving skills.
2. They often offer specialized programs such as defensive driving, advanced maneuvering, and preparation for professional driving careers.
3. Instructors at Elite Driving School are typically highly experienced and certified, ensuring students.

Cons:
1. Elite Driving School's high-quality instruction may come with a higher price tag compared to standard driving schools. 
2. Elite Driving School may be more challenging due to high demand for their specialized services
 
Why Elite Driving School is Easy for People:

1. Tailored Instruction:

 They offer tailored instruction that suits individual learning styles, making it easier for students to grasp concepts and improve their driving skills efficiently.

2. Advanced Techniques:
 By teaching advanced driving techniques and focusing on safety, Elite Driving School prepares drivers to handle various road conditions confidently.</text>
    <sha1>6d01fdccc52870676b6fe949317e057df3ae4c30</sha1>
  </revision>
  <revision>
    <id>6624275</id>
    <parentid>6624260</parentid>
    <timestamp>2024-07-09T09:33:59Z</timestamp>
    <contributor>
      <username>203.175.75.75</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="1466" xml:space="preserve">{{speedy|Spam or promotion}}Introduction:

&lt;a href="https://elitedrivingschool.co.uk/"&gt;Elite Driving School&lt;/a&gt; stands out as a premier choice for those seeking top-tier driving instruction. Known for its commitment to excellence and specialized programs, Elite Driving School offers a comprehensive approach to driver education that goes beyond basic skills.

Pros and Cons: 
Pros: 
1. Elite Driving School prides itself on offering high-quality instruction tailored to individual learning styles. This personalized approach can accelerate learning and improve driving skills.
2. They often offer specialized programs such as defensive driving, advanced maneuvering, and preparation for professional driving careers.
3. Instructors at Elite Driving School are typically highly experienced and certified, ensuring students.

Cons:
1. Elite Driving School's high-quality instruction may come with a higher price tag compared to standard driving schools. 
2. Elite Driving School may be more challenging due to high demand for their specialized services
 
Why Elite Driving School is Easy for People:

1. Tailored Instruction:

 They offer tailored instruction that suits individual learning styles, making it easier for students to grasp concepts and improve their driving skills efficiently.

2. Advanced Techniques:
 By teaching advanced driving techniques and focusing on safety, Elite Driving School prepares drivers to handle various road conditions confidently.</text>
    <sha1>906bbb16df578eb5d0549e72e7e8debe343eb044</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>User:ArielGlenn/CentralAuth walkthrough</title>
  <ns>2</ns>
  <id>1992288</id>
  <revision>
    <id>6624261</id>
    <parentid>6624242</parentid>
    <timestamp>2024-07-09T09:31:50Z</timestamp>
    <contributor>
      <username>ArielGlenn</username>
      <id>31925</id>
    </contributor>
    <comment>/* Prerequisites */ start.</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="2547" xml:space="preserve">==Setup of the [[Extension:CentralAuth|CentralAuth]] extension==

'''DRAFT IN PROGRESS'''

This documents my setup for testing login, session and cookie behavior in a small wikifarm environment. It is current as of July 9, 2024.

I do not use docker images for this setup; if you do, then you will want to manage hostnames and networking accordingly, as well as volume mounts for MediaWiki source and for databases.

I do everything on linux. The specific distribution should not matter, but for that reason I do not specify package manager details, since they may vary. I do provide information for dealing with selinux, in case you run a distribution with selinux enabled.

I run PHP 8.3 locally; that is not a requirement. You should make sure that the version of PHP you have available is the minimum required for MediaWiki and a minimal group of extensions; see the [[Compatibility#PHP|compatibility notes]] for details. 

=== Installation of a wiki farm ===

==== Prerequisites ====

You'll need an appropriate version of '''PHP''' installed, along with the following php modules:
* php-mysqlnd (mariadb bindings)
* php-fpm
* php-gmp
* php-intl
* php-mbstring
* php-xml

You'll need to adjust the PHP configuration settings to '''FIXME''' (memory settings, enabling modules, and other)

You'll also need '''mariadb''' installed, preferably the latest version supported by your linux distribution. The default settings should generally be ok. You'll only need one server instance for this setup; all wiki databases will be hosted on the one database server.

For session caching Wikimedia production servers currently use a custom-written extension that writes to kafka. Although I prefer in most cases to keep our setup relatively close to that of production, I don't feel that the cost of installation and maintenance of such a setup is worth it in this case. So I recommend that you install memcached and use the default config for it (port 11211, listening address 127.0.0.1, memory limit of 64 MB). See [[Manual:Memcached#Setup]] for details, but ignore the MediaWiki configuration settings; we'll come back to that later.

==== MediaWiki source ====
==== Databases ====
==== Installation on each wiki ====
==== MediaWiki Configuration ====

=== Setup of CentralAuth ===
==== Getting the source ====
==== Configuration ====
==== Migration of existing accounts ====
==== Setting up a global steward account ====

=== Testing ===
==== Back up your databases ====
==== Running unit tests ====
==== Manual testing ====

=== Further notes ===</text>
    <sha1>3c3a44332632b6b9daebb40bf6f137f452d930e1</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/17/pl</title>
  <ns>1198</ns>
  <id>1992297</id>
  <revision>
    <id>6624262</id>
    <timestamp>2024-07-09T09:32:26Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "** wyświetlanie najnowszej zmiany w wiadomości źródłowej;"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="62" xml:space="preserve">** wyświetlanie najnowszej zmiany w wiadomości źródłowej;</text>
    <sha1>09de4881823b7d29a5bedbf7e3d9cab5bd4ac09f</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/18/pl</title>
  <ns>1198</ns>
  <id>1992298</id>
  <revision>
    <id>6624264</id>
    <timestamp>2024-07-09T09:32:31Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="78" xml:space="preserve">** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.</text>
    <sha1>b6f6ac3d682c4575e1d3cfd8e1e3a39f535fc693</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/19/pl</title>
  <ns>1198</ns>
  <id>1992299</id>
  <revision>
    <id>6624266</id>
    <timestamp>2024-07-09T09:32:40Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="97" xml:space="preserve">* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.</text>
    <sha1>00baba75278b35d04d1a951519c2bfe39b0cfddb</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/20/pl</title>
  <ns>1198</ns>
  <id>1992300</id>
  <revision>
    <id>6624268</id>
    <timestamp>2024-07-09T09:32:53Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz $git-file i [[$format|File format support]])."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="142" xml:space="preserve">** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz $git-file i [[$format|File format support]]).</text>
    <sha1>da56d9bd1bd85e76852a27c1bd6a1a8fc636bdca</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/21/pl</title>
  <ns>1198</ns>
  <id>1992301</id>
  <revision>
    <id>6624270</id>
    <timestamp>2024-07-09T09:33:31Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="100" xml:space="preserve">* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.</text>
    <sha1>2e7a84b99a7695456c6d0a19d8d9cdda76e4d906</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/22/pl</title>
  <ns>1198</ns>
  <id>1992302</id>
  <revision>
    <id>6624271</id>
    <timestamp>2024-07-09T09:33:33Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* Różne statystyki:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="21" xml:space="preserve">* Różne statystyki:</text>
    <sha1>fd97a6a3883e4ed5eba4db03462692d6dff7e236</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/23/pl</title>
  <ns>1198</ns>
  <id>1992303</id>
  <revision>
    <id>6624273</id>
    <timestamp>2024-07-09T09:33:43Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="109" xml:space="preserve">** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;</text>
    <sha1>20f55dbb85a8a7e5490f967dce97fefacb04feed</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/24/pl</title>
  <ns>1198</ns>
  <id>1992304</id>
  <revision>
    <id>6624276</id>
    <timestamp>2024-07-09T09:33:59Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="122" xml:space="preserve">** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;</text>
    <sha1>9f3f2b6eabcf05f9c005da21946b547becc6e8a6</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/63/pl</title>
  <ns>1198</ns>
  <id>1992305</id>
  <revision>
    <id>6624278</id>
    <timestamp>2024-07-09T09:34:32Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="113" xml:space="preserve">Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;</text>
    <sha1>3c028b7eac0db755d3c761c10bccfd67b23b683e</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/26/pl</title>
  <ns>1198</ns>
  <id>1992306</id>
  <revision>
    <id>6624280</id>
    <timestamp>2024-07-09T09:34:36Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "** przegląd w chmurze aktywnych języków i tłumaczy."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="55" xml:space="preserve">** przegląd w chmurze aktywnych języków i tłumaczy.</text>
    <sha1>011768c5d1246c9c55179c64332a7e96a40b70fc</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/25/pl</title>
  <ns>1198</ns>
  <id>1992307</id>
  <revision>
    <id>6624282</id>
    <timestamp>2024-07-09T09:34:45Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "** narzędzie do tworzenia wykresów aktywności w czasie."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="58" xml:space="preserve">** narzędzie do tworzenia wykresów aktywności w czasie.</text>
    <sha1>59a3e287b5cf81ac77b31b30a5b2ed08339cf5ef</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/29/pl</title>
  <ns>1198</ns>
  <id>1992308</id>
  <revision>
    <id>6624284</id>
    <timestamp>2024-07-09T09:35:04Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="239" xml:space="preserve">Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.</text>
    <sha1>30f86f4fe9c86459e51a2d477be14cb3d729fcd0</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/27/pl</title>
  <ns>1198</ns>
  <id>1992309</id>
  <revision>
    <id>6624286</id>
    <timestamp>2024-07-09T09:35:43Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="192" xml:space="preserve">''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.</text>
    <sha1>e39600f3331fdcd26f131df0ade5c2b702a3a3a0</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/28/pl</title>
  <ns>1198</ns>
  <id>1992310</id>
  <revision>
    <id>6624288</id>
    <timestamp>2024-07-09T09:35:54Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne)."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="101" xml:space="preserve">Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).</text>
    <sha1>14fe8d28920d157d179191f24e3b8ae0500e367b</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/81/pl</title>
  <ns>1198</ns>
  <id>1992311</id>
  <revision>
    <id>6624290</id>
    <timestamp>2024-07-09T09:36:16Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* Zobacz [[$1|Rozpoczęcie pracy z rozszerzeniem Translate]]."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="61" xml:space="preserve">* Zobacz [[$1|Rozpoczęcie pracy z rozszerzeniem Translate]].</text>
    <sha1>99be7937aaa0fad834382d68ab6d510ef445085c</sha1>
  </revision>
</page>
<page arvcontinue="20240709092411|6624244">
  <title>Translations:Extension:Translate/35/pl</title>
  <ns>1198</ns>
  <id>1992312</id>
  <revision>
    <id>6624292</id>
    <timestamp>2024-07-09T09:36:23Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* Podsparcie na żywo na kanale IRC $1 w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="105" xml:space="preserve">* Podsparcie na żywo na kanale IRC $1 w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)</text>
    <sha1>accf075285b0a081519ad381e51d77aa34ab93ca</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Extension:Translate/37/pl</title>
  <ns>1198</ns>
  <id>1992313</id>
  <revision>
    <id>6624294</id>
    <timestamp>2024-07-09T09:36:45Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* Proszę zgłosić wszystkie problemy i żądania funkcji w [$url problem trackera]"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="84" xml:space="preserve">* Proszę zgłosić wszystkie problemy i żądania funkcji w [$url problem trackera]</text>
    <sha1>7a42e7a1044acd3bcb9d2ae48c631030993d2c8e</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Extension:Translate/pl</title>
  <ns>102</ns>
  <id>170399</id>
  <revision>
    <id>6624295</id>
    <parentid>6624293</parentid>
    <timestamp>2024-07-09T09:36:46Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* Proszę zgłosić wszystkie problemy i żądania funkcji w [$url problem trackera]"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11263" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Prominent users of the Translate extension ==
&lt;/div&gt;
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>9fda50108079cac1f0245752423919a3bea2bbcf</sha1>
  </revision>
  <revision>
    <id>6624297</id>
    <parentid>6624295</parentid>
    <timestamp>2024-07-09T09:37:24Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "== Wybitni użytkownicy rozszerzenia Translate =="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11270" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate extension was originally developed by [[User:Nikerabbit]]; many other users, like [[User:Raymond]], [[User:SPQRobin]] and the Wikimedia Language team, have contributed to its code and documentation.&lt;/span&gt;


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>d52415782a2688843c5086511d4b3f423458e48b</sha1>
  </revision>
  <revision>
    <id>6624299</id>
    <parentid>6624297</parentid>
    <timestamp>2024-07-09T09:37:32Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11264" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The biggest wiki-based site and community for translation of the interface of open source software.&lt;/span&gt;
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>1460dad201e45d0467865ab21c5d37855adc2621</sha1>
  </revision>
  <revision>
    <id>6624301</id>
    <parentid>6624299</parentid>
    <timestamp>2024-07-09T09:38:03Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11216" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[Wikipedia:translatewiki.net#Notable uses]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>c40742d616b0e0ba4fddec2f4388a9323c6ab4d3</sha1>
  </revision>
  <revision>
    <id>6624303</id>
    <parentid>6624301</parentid>
    <timestamp>2024-07-09T09:38:34Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11252" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Documentation wiki for the KDE project which uses the page translation feature extensively.&lt;/span&gt;
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>a0b147ff6a0342f70e96417eebbbdac57d278370</sha1>
  </revision>
  <revision>
    <id>6624305</id>
    <parentid>6624303</parentid>
    <timestamp>2024-07-09T09:38:38Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11206" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The Translate extension allows for connection to a translation service and can auto fill the translation for you. At the same time a translator can make adjustments so you're not creating lots of pages with inaccurate translations.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>0625ea3eee67214c4ec3c3677d9b39301ba9f63d</sha1>
  </revision>
  <revision>
    <id>6624308</id>
    <parentid>6624305</parentid>
    <timestamp>2024-07-09T09:39:06Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11139" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translates wiki content and uses the group states feature. Translation and translation review is enabled almost for all users of the wiki.&lt;/span&gt;
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>8321b9daaaaba38f9accef9a397573d1382b90ec</sha1>
  </revision>
  <revision>
    <id>6624312</id>
    <parentid>6624308</parentid>
    <timestamp>2024-07-09T09:39:35Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11092" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Tom Hutchison of Joomla:
&lt;/div&gt;
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>c20c93335b43e2d62e2c603ee1492ec05b07fdce</sha1>
  </revision>
  <revision>
    <id>6624316</id>
    <parentid>6624312</parentid>
    <timestamp>2024-07-09T09:39:43Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Tom Hutchison z Joomli:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="11035" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That's ok if they are on different continents.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>9bbce602d721a1a3f59530b926095068bf0e71a7</sha1>
  </revision>
  <revision>
    <id>6624318</id>
    <parentid>6624316</parentid>
    <timestamp>2024-07-09T09:40:10Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "To ok, jeśli są na różnych kontynentach."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10977" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;That is actually a plus because work is getting done 24 hours a day.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>e9cf17aa8938a1f69a36185cedf2d177fbdcb6ed</sha1>
  </revision>
  <revision>
    <id>6624320</id>
    <parentid>6624318</parentid>
    <timestamp>2024-07-09T09:41:17Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10930" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;What they need is a support group chat for each other.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>06a7c9a1247212d41fdcd4a0da1e8f9ab318d91a</sha1>
  </revision>
  <revision>
    <id>6624336</id>
    <parentid>6624320</parentid>
    <timestamp>2024-07-09T09:44:33Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Potrzebują grupy wsparcia."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10847" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They would all be able to read English if they are translating right? Teach a few simple wiki markup such as links and what to do with categories.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>5af52983b7daf3cd916b030f681ceaa37fb9115b</sha1>
  </revision>
  <revision>
    <id>6624338</id>
    <parentid>6624336</parentid>
    <timestamp>2024-07-09T09:44:36Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10796" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Then they help others who in turn help others.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>d2e39c7f0e1b1991e4787f08ba4be18ca60ba6d0</sha1>
  </revision>
  <revision>
    <id>6624340</id>
    <parentid>6624338</parentid>
    <timestamp>2024-07-09T09:44:40Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Następnie pomagają innym, którzy z kolei pomagają innym."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10754" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We have over 40 in a chat who help each other and have fun at the same time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>287272b1595455fad6b3449d061a3f183d5a6f75</sha1>
  </revision>
  <revision>
    <id>6624342</id>
    <parentid>6624340</parentid>
    <timestamp>2024-07-09T09:44:45Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10714" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;And they were all scared of the wiki but couldn't believe how easy it was once they started.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>a0631619f3ff5a2230d0f06ae849f935e1dfc096</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Extension:Translate/39/pl</title>
  <ns>1198</ns>
  <id>1992314</id>
  <revision>
    <id>6624296</id>
    <timestamp>2024-07-09T09:37:23Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "== Wybitni użytkownicy rozszerzenia Translate =="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="49" xml:space="preserve">== Wybitni użytkownicy rozszerzenia Translate ==</text>
    <sha1>7b3c87508b87ba806e89507a52168f780c58f331</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Extension:Translate/38/pl</title>
  <ns>1198</ns>
  <id>1992315</id>
  <revision>
    <id>6624298</id>
    <timestamp>2024-07-09T09:37:31Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="258" xml:space="preserve">Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.</text>
    <sha1>a4e4cbb75eda9ce5e6b0ab65867df4b61fc0f63a</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Extension:Translate/40/pl</title>
  <ns>1198</ns>
  <id>1992316</id>
  <revision>
    <id>6624300</id>
    <timestamp>2024-07-09T09:38:02Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="107" xml:space="preserve">Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.</text>
    <sha1>71f21a56ade8c24e2a7ce311a3b83fb5343d0c90</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Extension:Translate/55/pl</title>
  <ns>1198</ns>
  <id>1059397</id>
  <revision>
    <id>6624302</id>
    <parentid>3669334</parentid>
    <timestamp>2024-07-09T09:38:33Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="69" xml:space="preserve">Zobacz więcej na [[$1|znane użycia translatewiki.net w Wikipedii]].</text>
    <sha1>90eb4fc4c5120e1390c8a0e56965e6d3301f1531</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Extension:Translate/41/pl</title>
  <ns>1198</ns>
  <id>1992317</id>
  <revision>
    <id>6624304</id>
    <timestamp>2024-07-09T09:38:37Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="101" xml:space="preserve">Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.</text>
    <sha1>190a9f201a22b680549e25487bc8ef154bcce8c0</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Apache configuration/Page display title/it</title>
  <ns>1198</ns>
  <id>1992318</id>
  <revision>
    <id>6624306</id>
    <timestamp>2024-07-09T09:38:41Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "Configurazione di Apache"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="24" xml:space="preserve">Configurazione di Apache</text>
    <sha1>820f5e809e84ba3a9cd5cc8f36afb6195f23aef1</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Extension:Translate/58/pl</title>
  <ns>1198</ns>
  <id>1992319</id>
  <revision>
    <id>6624307</id>
    <timestamp>2024-07-09T09:39:05Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="220" xml:space="preserve">Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.</text>
    <sha1>d7ba93a905baba491433d8730a06f9bf3d258a7d</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Apache configuration/1/it</title>
  <ns>1198</ns>
  <id>1992320</id>
  <revision>
    <id>6624309</id>
    <timestamp>2024-07-09T09:39:23Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "'''[$link Apache HTTP Server (httpd)]''' è il server web più utilizzato per MediaWiki."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88" xml:space="preserve">'''[$link Apache HTTP Server (httpd)]''' è il server web più utilizzato per MediaWiki.</text>
    <sha1>dacb1d16dd6ac9adf2be890b7839d0fb7c6f8331</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Apache configuration/it</title>
  <ns>0</ns>
  <id>1658113</id>
  <revision>
    <id>6624310</id>
    <parentid>6603999</parentid>
    <timestamp>2024-07-09T09:39:24Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "'''[$link Apache HTTP Server (httpd)]''' è il server web più utilizzato per MediaWiki."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6923" xml:space="preserve">&lt;languages/&gt;
'''[https://httpd.apache.org/ Apache HTTP Server (httpd)]''' è il server web più utilizzato per MediaWiki.

&lt;span id="Modules"&gt;&lt;/span&gt;
== Moduli ==

=== PHP ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== PHP as Apache Module ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
MediaWiki is written to use [[Special:MyLanguage/PHP config|PHP]] as an Apache module. Your PHP is probably configured as a module if you start with URLs like this:
&lt;/div&gt;

&lt;pre&gt;
example.com/index.php/Main_Page
&lt;/pre&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
You can check which configuration and version of PHP you have by viewing your wiki's [[Special:Version]] page, or with [https://php.net/phpinfo phpinfo()].
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Install PHP, Apache, and the PHP module for Apache.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Afterwards, make sure that the Apache service is running.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For specific commands, refer to the documentation of your operating system or distribution.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== PHP as CGI ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If PHP is running as a CGI, you will have "ugly" URLs by default, but you can still implement [[Special:MyLanguage/Manual:Short URL|short URLs]].
&lt;/div&gt;

===== CGIWrap =====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you have your own server running Apache and are running [[#PHP as CGI|PHP as CGI]], you can install [https://github.com/cgiwrap/cgiwrap CGIWrap]. This tool enables you to run the Apache server as a different user for CGIs.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That way, you can create a new user for your MediaWiki pages. Installing CGIWrap is beyond the scope of this document, especially since you must compile it accordingly to your own server. However, as a quick guideline, you can follow these rules:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Create a Wikimedia user
&lt;/div&gt;
 useradd -M -s /sbin/nologin wikiuser
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Have a cgi-bin folder, containing CGIWrap (example in /home/myuser/cgi-bin). Once everything is configured, keep only cgiwrap, move the debug versions to another folder if you ever need it. Your cgiwrap file should be accessible only to Apache (chown and chmod accordingly).
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
chown apache:apache cgiwrap
chmod 500 cgiwrap
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Inside the cgi-bin folder, create a symbolic link to the Wikimedia root.
&lt;/div&gt;
 ln -s /home/myuser/public_html/wiki /home/myuser/cgi-bin/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* In your wiki's .htaccess file, add the following definitions:
&lt;/div&gt;
 AddHandler php-wrapper .php
 Action php-wrapper /cgi-bin/cgiwrap/wikiuser/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Finally, chown and chmod all the .php files of your Wikimedia folder to be accessible solely by wikiuser.
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
find . -name \*.php -exec chown wikiuser:wikiuser {} \;
find . -name \*.php -exec chmod 500 {} \;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The files will be accessible as usual. You do not need to specify in your path any cgi-bin, as this is transparently taken care of for you.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
I strongly suggest you start out with /cgi-bin/cgiwrapd/... as your php-wrapper, as it will precisely show what is currently working. I also strongly suggest you do not delete your CGIWrap source folder until everything works perfectly as this is a real trial and error process, taking a long time. However, it's all worth your time as your MediaWiki will be run in its own separate process, in its own uid, without being able to interfere any other uid. Inverse is also true, except for root, that can read anything anywhere.
&lt;/div&gt;

=== mod_alias / mod_rewrite ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The recommended method of [[Special:MyLanguage/Manual:Short URL|beautifying URLs]] involves [https://httpd.apache.org/docs/current/mod/mod_alias.html mod_alias]. Other methods use [https://httpd.apache.org/docs/current/mod/mod_rewrite.html mod_rewrite] instead.
&lt;/div&gt;

=== mod_security ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
{{ll|ModSecurity}} has been known to cause problems with MediaWiki. If you get errors seemingly at random, check your error log to see whether it is causing problems.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== VisualEditor and Subpages ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In order to prevent [[Special:MyLanguage/Extension:VisualEditor#Troubleshooting|errors contacting the Parsoid server]], &lt;code&gt;AllowEncodedSlashes NoDecode&lt;/code&gt; must be added to the wiki's VirtualHost config block (or to the general server config if VirtualHosts are not used).&lt;/span&gt;&lt;ref&gt;
[[phab:T261921]]
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Thread stack size ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The stack size for each Apache thread is [https://httpd.apache.org/docs/current/mod/mpm_common.html#ThreadStackSize configurable] and the default varies on different operating systems. To run MediaWiki on Windows environments it may be necessary to increase the stack size (if there are problems), as the 1MB default is small and can [https://bugs.php.net/bug.php?id=47689 cause stack overflows] during PHP script execution. The following httpd.conf setting will set the stack size to about 8MB (about a typical Linux default):
&lt;/div&gt;

&lt;syntaxhighlight lang="apache"&gt;
&lt;IfModule mpm_winnt_module&gt;
ThreadStackSize 8388608
&lt;/IfModule&gt;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Spiders and bots ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You really should use a {{ll|Manual:robots.txt|robots.txt}} file to tell well-behaved spiders not to download dynamically generated pages (edit pages, for instance).&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This can reduce the load on your webserver, preserve your bandwidth, and prevent duplicate content issues with search engines.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, malicious bots could tie up your webserver and waste your bandwidth by downloading a large volume of pages extremely quickly.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Request throttling can help protect against this.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== See also ==
&lt;/div&gt;
* {{ll|Manual:Short URL/Apache}}
* {{ll|Manual:Thumb.php}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== References ==
&lt;/div&gt;
&lt;references/&gt;
[[Category:Installation{{#translation:}}]]</text>
    <sha1>0e5e10d67947553a5aa9753d553c396e304ecaf7</sha1>
  </revision>
  <revision>
    <id>6624314</id>
    <parentid>6624310</parentid>
    <timestamp>2024-07-09T09:39:40Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "==== PHP come modulo di Apache ===="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6912" xml:space="preserve">&lt;languages/&gt;
'''[https://httpd.apache.org/ Apache HTTP Server (httpd)]''' è il server web più utilizzato per MediaWiki.

&lt;span id="Modules"&gt;&lt;/span&gt;
== Moduli ==

=== PHP ===

&lt;span id="PHP_as_Apache_Module"&gt;&lt;/span&gt;
==== PHP come modulo di Apache ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
MediaWiki is written to use [[Special:MyLanguage/PHP config|PHP]] as an Apache module. Your PHP is probably configured as a module if you start with URLs like this:
&lt;/div&gt;

&lt;pre&gt;
example.com/index.php/Main_Page
&lt;/pre&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
You can check which configuration and version of PHP you have by viewing your wiki's [[Special:Version]] page, or with [https://php.net/phpinfo phpinfo()].
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Install PHP, Apache, and the PHP module for Apache.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Afterwards, make sure that the Apache service is running.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For specific commands, refer to the documentation of your operating system or distribution.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== PHP as CGI ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If PHP is running as a CGI, you will have "ugly" URLs by default, but you can still implement [[Special:MyLanguage/Manual:Short URL|short URLs]].
&lt;/div&gt;

===== CGIWrap =====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you have your own server running Apache and are running [[#PHP as CGI|PHP as CGI]], you can install [https://github.com/cgiwrap/cgiwrap CGIWrap]. This tool enables you to run the Apache server as a different user for CGIs.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That way, you can create a new user for your MediaWiki pages. Installing CGIWrap is beyond the scope of this document, especially since you must compile it accordingly to your own server. However, as a quick guideline, you can follow these rules:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Create a Wikimedia user
&lt;/div&gt;
 useradd -M -s /sbin/nologin wikiuser
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Have a cgi-bin folder, containing CGIWrap (example in /home/myuser/cgi-bin). Once everything is configured, keep only cgiwrap, move the debug versions to another folder if you ever need it. Your cgiwrap file should be accessible only to Apache (chown and chmod accordingly).
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
chown apache:apache cgiwrap
chmod 500 cgiwrap
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Inside the cgi-bin folder, create a symbolic link to the Wikimedia root.
&lt;/div&gt;
 ln -s /home/myuser/public_html/wiki /home/myuser/cgi-bin/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* In your wiki's .htaccess file, add the following definitions:
&lt;/div&gt;
 AddHandler php-wrapper .php
 Action php-wrapper /cgi-bin/cgiwrap/wikiuser/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Finally, chown and chmod all the .php files of your Wikimedia folder to be accessible solely by wikiuser.
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
find . -name \*.php -exec chown wikiuser:wikiuser {} \;
find . -name \*.php -exec chmod 500 {} \;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The files will be accessible as usual. You do not need to specify in your path any cgi-bin, as this is transparently taken care of for you.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
I strongly suggest you start out with /cgi-bin/cgiwrapd/... as your php-wrapper, as it will precisely show what is currently working. I also strongly suggest you do not delete your CGIWrap source folder until everything works perfectly as this is a real trial and error process, taking a long time. However, it's all worth your time as your MediaWiki will be run in its own separate process, in its own uid, without being able to interfere any other uid. Inverse is also true, except for root, that can read anything anywhere.
&lt;/div&gt;

=== mod_alias / mod_rewrite ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The recommended method of [[Special:MyLanguage/Manual:Short URL|beautifying URLs]] involves [https://httpd.apache.org/docs/current/mod/mod_alias.html mod_alias]. Other methods use [https://httpd.apache.org/docs/current/mod/mod_rewrite.html mod_rewrite] instead.
&lt;/div&gt;

=== mod_security ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
{{ll|ModSecurity}} has been known to cause problems with MediaWiki. If you get errors seemingly at random, check your error log to see whether it is causing problems.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== VisualEditor and Subpages ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In order to prevent [[Special:MyLanguage/Extension:VisualEditor#Troubleshooting|errors contacting the Parsoid server]], &lt;code&gt;AllowEncodedSlashes NoDecode&lt;/code&gt; must be added to the wiki's VirtualHost config block (or to the general server config if VirtualHosts are not used).&lt;/span&gt;&lt;ref&gt;
[[phab:T261921]]
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Thread stack size ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The stack size for each Apache thread is [https://httpd.apache.org/docs/current/mod/mpm_common.html#ThreadStackSize configurable] and the default varies on different operating systems. To run MediaWiki on Windows environments it may be necessary to increase the stack size (if there are problems), as the 1MB default is small and can [https://bugs.php.net/bug.php?id=47689 cause stack overflows] during PHP script execution. The following httpd.conf setting will set the stack size to about 8MB (about a typical Linux default):
&lt;/div&gt;

&lt;syntaxhighlight lang="apache"&gt;
&lt;IfModule mpm_winnt_module&gt;
ThreadStackSize 8388608
&lt;/IfModule&gt;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Spiders and bots ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You really should use a {{ll|Manual:robots.txt|robots.txt}} file to tell well-behaved spiders not to download dynamically generated pages (edit pages, for instance).&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This can reduce the load on your webserver, preserve your bandwidth, and prevent duplicate content issues with search engines.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, malicious bots could tie up your webserver and waste your bandwidth by downloading a large volume of pages extremely quickly.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Request throttling can help protect against this.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== See also ==
&lt;/div&gt;
* {{ll|Manual:Short URL/Apache}}
* {{ll|Manual:Thumb.php}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== References ==
&lt;/div&gt;
&lt;references/&gt;
[[Category:Installation{{#translation:}}]]</text>
    <sha1>ce44051f64372da9168a534b48a5164764dbc1d7</sha1>
  </revision>
  <revision>
    <id>6624323</id>
    <parentid>6624314</parentid>
    <timestamp>2024-07-09T09:41:32Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "MediaWiki è scritto per utilizzare il [[$1|PHP]] come modulo di Apache. La tua installazione di PHP probabilmente è configurata come modulo se le tue URLs iniziano così:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6891" xml:space="preserve">&lt;languages/&gt;
'''[https://httpd.apache.org/ Apache HTTP Server (httpd)]''' è il server web più utilizzato per MediaWiki.

&lt;span id="Modules"&gt;&lt;/span&gt;
== Moduli ==

=== PHP ===

&lt;span id="PHP_as_Apache_Module"&gt;&lt;/span&gt;
==== PHP come modulo di Apache ====

MediaWiki è scritto per utilizzare il [[Special:MyLanguage/PHP config|PHP]] come modulo di Apache. La tua installazione di PHP probabilmente è configurata come modulo se le tue URLs iniziano così:

&lt;pre&gt;
example.com/index.php/Main_Page
&lt;/pre&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
You can check which configuration and version of PHP you have by viewing your wiki's [[Special:Version]] page, or with [https://php.net/phpinfo phpinfo()].
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Install PHP, Apache, and the PHP module for Apache.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Afterwards, make sure that the Apache service is running.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For specific commands, refer to the documentation of your operating system or distribution.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== PHP as CGI ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If PHP is running as a CGI, you will have "ugly" URLs by default, but you can still implement [[Special:MyLanguage/Manual:Short URL|short URLs]].
&lt;/div&gt;

===== CGIWrap =====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you have your own server running Apache and are running [[#PHP as CGI|PHP as CGI]], you can install [https://github.com/cgiwrap/cgiwrap CGIWrap]. This tool enables you to run the Apache server as a different user for CGIs.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That way, you can create a new user for your MediaWiki pages. Installing CGIWrap is beyond the scope of this document, especially since you must compile it accordingly to your own server. However, as a quick guideline, you can follow these rules:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Create a Wikimedia user
&lt;/div&gt;
 useradd -M -s /sbin/nologin wikiuser
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Have a cgi-bin folder, containing CGIWrap (example in /home/myuser/cgi-bin). Once everything is configured, keep only cgiwrap, move the debug versions to another folder if you ever need it. Your cgiwrap file should be accessible only to Apache (chown and chmod accordingly).
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
chown apache:apache cgiwrap
chmod 500 cgiwrap
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Inside the cgi-bin folder, create a symbolic link to the Wikimedia root.
&lt;/div&gt;
 ln -s /home/myuser/public_html/wiki /home/myuser/cgi-bin/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* In your wiki's .htaccess file, add the following definitions:
&lt;/div&gt;
 AddHandler php-wrapper .php
 Action php-wrapper /cgi-bin/cgiwrap/wikiuser/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Finally, chown and chmod all the .php files of your Wikimedia folder to be accessible solely by wikiuser.
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
find . -name \*.php -exec chown wikiuser:wikiuser {} \;
find . -name \*.php -exec chmod 500 {} \;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The files will be accessible as usual. You do not need to specify in your path any cgi-bin, as this is transparently taken care of for you.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
I strongly suggest you start out with /cgi-bin/cgiwrapd/... as your php-wrapper, as it will precisely show what is currently working. I also strongly suggest you do not delete your CGIWrap source folder until everything works perfectly as this is a real trial and error process, taking a long time. However, it's all worth your time as your MediaWiki will be run in its own separate process, in its own uid, without being able to interfere any other uid. Inverse is also true, except for root, that can read anything anywhere.
&lt;/div&gt;

=== mod_alias / mod_rewrite ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The recommended method of [[Special:MyLanguage/Manual:Short URL|beautifying URLs]] involves [https://httpd.apache.org/docs/current/mod/mod_alias.html mod_alias]. Other methods use [https://httpd.apache.org/docs/current/mod/mod_rewrite.html mod_rewrite] instead.
&lt;/div&gt;

=== mod_security ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
{{ll|ModSecurity}} has been known to cause problems with MediaWiki. If you get errors seemingly at random, check your error log to see whether it is causing problems.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== VisualEditor and Subpages ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In order to prevent [[Special:MyLanguage/Extension:VisualEditor#Troubleshooting|errors contacting the Parsoid server]], &lt;code&gt;AllowEncodedSlashes NoDecode&lt;/code&gt; must be added to the wiki's VirtualHost config block (or to the general server config if VirtualHosts are not used).&lt;/span&gt;&lt;ref&gt;
[[phab:T261921]]
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Thread stack size ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The stack size for each Apache thread is [https://httpd.apache.org/docs/current/mod/mpm_common.html#ThreadStackSize configurable] and the default varies on different operating systems. To run MediaWiki on Windows environments it may be necessary to increase the stack size (if there are problems), as the 1MB default is small and can [https://bugs.php.net/bug.php?id=47689 cause stack overflows] during PHP script execution. The following httpd.conf setting will set the stack size to about 8MB (about a typical Linux default):
&lt;/div&gt;

&lt;syntaxhighlight lang="apache"&gt;
&lt;IfModule mpm_winnt_module&gt;
ThreadStackSize 8388608
&lt;/IfModule&gt;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Spiders and bots ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You really should use a {{ll|Manual:robots.txt|robots.txt}} file to tell well-behaved spiders not to download dynamically generated pages (edit pages, for instance).&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This can reduce the load on your webserver, preserve your bandwidth, and prevent duplicate content issues with search engines.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, malicious bots could tie up your webserver and waste your bandwidth by downloading a large volume of pages extremely quickly.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Request throttling can help protect against this.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== See also ==
&lt;/div&gt;
* {{ll|Manual:Short URL/Apache}}
* {{ll|Manual:Thumb.php}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== References ==
&lt;/div&gt;
&lt;references/&gt;
[[Category:Installation{{#translation:}}]]</text>
    <sha1>99189cdcabd1930706abb505fdfcd7630202e276</sha1>
  </revision>
  <revision>
    <id>6624325</id>
    <parentid>6624323</parentid>
    <timestamp>2024-07-09T09:42:26Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "Puoi controllare qual è la configurazione e la versione di PHP visualizzando la pagina $1 della tua wiki, o con $2."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6846" xml:space="preserve">&lt;languages/&gt;
'''[https://httpd.apache.org/ Apache HTTP Server (httpd)]''' è il server web più utilizzato per MediaWiki.

&lt;span id="Modules"&gt;&lt;/span&gt;
== Moduli ==

=== PHP ===

&lt;span id="PHP_as_Apache_Module"&gt;&lt;/span&gt;
==== PHP come modulo di Apache ====

MediaWiki è scritto per utilizzare il [[Special:MyLanguage/PHP config|PHP]] come modulo di Apache. La tua installazione di PHP probabilmente è configurata come modulo se le tue URLs iniziano così:

&lt;pre&gt;
example.com/index.php/Main_Page
&lt;/pre&gt;

Puoi controllare qual è la configurazione e la versione di PHP visualizzando la pagina [[Special:Version]] della tua wiki, o con [https://php.net/phpinfo phpinfo()].

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Install PHP, Apache, and the PHP module for Apache.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Afterwards, make sure that the Apache service is running.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For specific commands, refer to the documentation of your operating system or distribution.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== PHP as CGI ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If PHP is running as a CGI, you will have "ugly" URLs by default, but you can still implement [[Special:MyLanguage/Manual:Short URL|short URLs]].
&lt;/div&gt;

===== CGIWrap =====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you have your own server running Apache and are running [[#PHP as CGI|PHP as CGI]], you can install [https://github.com/cgiwrap/cgiwrap CGIWrap]. This tool enables you to run the Apache server as a different user for CGIs.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That way, you can create a new user for your MediaWiki pages. Installing CGIWrap is beyond the scope of this document, especially since you must compile it accordingly to your own server. However, as a quick guideline, you can follow these rules:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Create a Wikimedia user
&lt;/div&gt;
 useradd -M -s /sbin/nologin wikiuser
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Have a cgi-bin folder, containing CGIWrap (example in /home/myuser/cgi-bin). Once everything is configured, keep only cgiwrap, move the debug versions to another folder if you ever need it. Your cgiwrap file should be accessible only to Apache (chown and chmod accordingly).
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
chown apache:apache cgiwrap
chmod 500 cgiwrap
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Inside the cgi-bin folder, create a symbolic link to the Wikimedia root.
&lt;/div&gt;
 ln -s /home/myuser/public_html/wiki /home/myuser/cgi-bin/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* In your wiki's .htaccess file, add the following definitions:
&lt;/div&gt;
 AddHandler php-wrapper .php
 Action php-wrapper /cgi-bin/cgiwrap/wikiuser/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Finally, chown and chmod all the .php files of your Wikimedia folder to be accessible solely by wikiuser.
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
find . -name \*.php -exec chown wikiuser:wikiuser {} \;
find . -name \*.php -exec chmod 500 {} \;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The files will be accessible as usual. You do not need to specify in your path any cgi-bin, as this is transparently taken care of for you.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
I strongly suggest you start out with /cgi-bin/cgiwrapd/... as your php-wrapper, as it will precisely show what is currently working. I also strongly suggest you do not delete your CGIWrap source folder until everything works perfectly as this is a real trial and error process, taking a long time. However, it's all worth your time as your MediaWiki will be run in its own separate process, in its own uid, without being able to interfere any other uid. Inverse is also true, except for root, that can read anything anywhere.
&lt;/div&gt;

=== mod_alias / mod_rewrite ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The recommended method of [[Special:MyLanguage/Manual:Short URL|beautifying URLs]] involves [https://httpd.apache.org/docs/current/mod/mod_alias.html mod_alias]. Other methods use [https://httpd.apache.org/docs/current/mod/mod_rewrite.html mod_rewrite] instead.
&lt;/div&gt;

=== mod_security ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
{{ll|ModSecurity}} has been known to cause problems with MediaWiki. If you get errors seemingly at random, check your error log to see whether it is causing problems.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== VisualEditor and Subpages ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In order to prevent [[Special:MyLanguage/Extension:VisualEditor#Troubleshooting|errors contacting the Parsoid server]], &lt;code&gt;AllowEncodedSlashes NoDecode&lt;/code&gt; must be added to the wiki's VirtualHost config block (or to the general server config if VirtualHosts are not used).&lt;/span&gt;&lt;ref&gt;
[[phab:T261921]]
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Thread stack size ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The stack size for each Apache thread is [https://httpd.apache.org/docs/current/mod/mpm_common.html#ThreadStackSize configurable] and the default varies on different operating systems. To run MediaWiki on Windows environments it may be necessary to increase the stack size (if there are problems), as the 1MB default is small and can [https://bugs.php.net/bug.php?id=47689 cause stack overflows] during PHP script execution. The following httpd.conf setting will set the stack size to about 8MB (about a typical Linux default):
&lt;/div&gt;

&lt;syntaxhighlight lang="apache"&gt;
&lt;IfModule mpm_winnt_module&gt;
ThreadStackSize 8388608
&lt;/IfModule&gt;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Spiders and bots ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You really should use a {{ll|Manual:robots.txt|robots.txt}} file to tell well-behaved spiders not to download dynamically generated pages (edit pages, for instance).&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This can reduce the load on your webserver, preserve your bandwidth, and prevent duplicate content issues with search engines.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, malicious bots could tie up your webserver and waste your bandwidth by downloading a large volume of pages extremely quickly.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Request throttling can help protect against this.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== See also ==
&lt;/div&gt;
* {{ll|Manual:Short URL/Apache}}
* {{ll|Manual:Thumb.php}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== References ==
&lt;/div&gt;
&lt;references/&gt;
[[Category:Installation{{#translation:}}]]</text>
    <sha1>454023affadc64a478475fb7879a3aa68e2c15bc</sha1>
  </revision>
  <revision>
    <id>6624327</id>
    <parentid>6624325</parentid>
    <timestamp>2024-07-09T09:42:42Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "Installa PHP, Apache e il modulo PHP per Apache."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6787" xml:space="preserve">&lt;languages/&gt;
'''[https://httpd.apache.org/ Apache HTTP Server (httpd)]''' è il server web più utilizzato per MediaWiki.

&lt;span id="Modules"&gt;&lt;/span&gt;
== Moduli ==

=== PHP ===

&lt;span id="PHP_as_Apache_Module"&gt;&lt;/span&gt;
==== PHP come modulo di Apache ====

MediaWiki è scritto per utilizzare il [[Special:MyLanguage/PHP config|PHP]] come modulo di Apache. La tua installazione di PHP probabilmente è configurata come modulo se le tue URLs iniziano così:

&lt;pre&gt;
example.com/index.php/Main_Page
&lt;/pre&gt;

Puoi controllare qual è la configurazione e la versione di PHP visualizzando la pagina [[Special:Version]] della tua wiki, o con [https://php.net/phpinfo phpinfo()].

Installa PHP, Apache e il modulo PHP per Apache.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Afterwards, make sure that the Apache service is running.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For specific commands, refer to the documentation of your operating system or distribution.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== PHP as CGI ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If PHP is running as a CGI, you will have "ugly" URLs by default, but you can still implement [[Special:MyLanguage/Manual:Short URL|short URLs]].
&lt;/div&gt;

===== CGIWrap =====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you have your own server running Apache and are running [[#PHP as CGI|PHP as CGI]], you can install [https://github.com/cgiwrap/cgiwrap CGIWrap]. This tool enables you to run the Apache server as a different user for CGIs.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That way, you can create a new user for your MediaWiki pages. Installing CGIWrap is beyond the scope of this document, especially since you must compile it accordingly to your own server. However, as a quick guideline, you can follow these rules:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Create a Wikimedia user
&lt;/div&gt;
 useradd -M -s /sbin/nologin wikiuser
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Have a cgi-bin folder, containing CGIWrap (example in /home/myuser/cgi-bin). Once everything is configured, keep only cgiwrap, move the debug versions to another folder if you ever need it. Your cgiwrap file should be accessible only to Apache (chown and chmod accordingly).
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
chown apache:apache cgiwrap
chmod 500 cgiwrap
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Inside the cgi-bin folder, create a symbolic link to the Wikimedia root.
&lt;/div&gt;
 ln -s /home/myuser/public_html/wiki /home/myuser/cgi-bin/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* In your wiki's .htaccess file, add the following definitions:
&lt;/div&gt;
 AddHandler php-wrapper .php
 Action php-wrapper /cgi-bin/cgiwrap/wikiuser/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Finally, chown and chmod all the .php files of your Wikimedia folder to be accessible solely by wikiuser.
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
find . -name \*.php -exec chown wikiuser:wikiuser {} \;
find . -name \*.php -exec chmod 500 {} \;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The files will be accessible as usual. You do not need to specify in your path any cgi-bin, as this is transparently taken care of for you.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
I strongly suggest you start out with /cgi-bin/cgiwrapd/... as your php-wrapper, as it will precisely show what is currently working. I also strongly suggest you do not delete your CGIWrap source folder until everything works perfectly as this is a real trial and error process, taking a long time. However, it's all worth your time as your MediaWiki will be run in its own separate process, in its own uid, without being able to interfere any other uid. Inverse is also true, except for root, that can read anything anywhere.
&lt;/div&gt;

=== mod_alias / mod_rewrite ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The recommended method of [[Special:MyLanguage/Manual:Short URL|beautifying URLs]] involves [https://httpd.apache.org/docs/current/mod/mod_alias.html mod_alias]. Other methods use [https://httpd.apache.org/docs/current/mod/mod_rewrite.html mod_rewrite] instead.
&lt;/div&gt;

=== mod_security ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
{{ll|ModSecurity}} has been known to cause problems with MediaWiki. If you get errors seemingly at random, check your error log to see whether it is causing problems.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== VisualEditor and Subpages ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In order to prevent [[Special:MyLanguage/Extension:VisualEditor#Troubleshooting|errors contacting the Parsoid server]], &lt;code&gt;AllowEncodedSlashes NoDecode&lt;/code&gt; must be added to the wiki's VirtualHost config block (or to the general server config if VirtualHosts are not used).&lt;/span&gt;&lt;ref&gt;
[[phab:T261921]]
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Thread stack size ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The stack size for each Apache thread is [https://httpd.apache.org/docs/current/mod/mpm_common.html#ThreadStackSize configurable] and the default varies on different operating systems. To run MediaWiki on Windows environments it may be necessary to increase the stack size (if there are problems), as the 1MB default is small and can [https://bugs.php.net/bug.php?id=47689 cause stack overflows] during PHP script execution. The following httpd.conf setting will set the stack size to about 8MB (about a typical Linux default):
&lt;/div&gt;

&lt;syntaxhighlight lang="apache"&gt;
&lt;IfModule mpm_winnt_module&gt;
ThreadStackSize 8388608
&lt;/IfModule&gt;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Spiders and bots ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You really should use a {{ll|Manual:robots.txt|robots.txt}} file to tell well-behaved spiders not to download dynamically generated pages (edit pages, for instance).&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This can reduce the load on your webserver, preserve your bandwidth, and prevent duplicate content issues with search engines.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, malicious bots could tie up your webserver and waste your bandwidth by downloading a large volume of pages extremely quickly.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Request throttling can help protect against this.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== See also ==
&lt;/div&gt;
* {{ll|Manual:Short URL/Apache}}
* {{ll|Manual:Thumb.php}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== References ==
&lt;/div&gt;
&lt;references/&gt;
[[Category:Installation{{#translation:}}]]</text>
    <sha1>7c5076bd0e22324d43d9c3aa43cf73704f03549d</sha1>
  </revision>
  <revision>
    <id>6624329</id>
    <parentid>6624327</parentid>
    <timestamp>2024-07-09T09:42:54Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "Dopo, assicurati che il servizio Apache sia in esecuzione."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6732" xml:space="preserve">&lt;languages/&gt;
'''[https://httpd.apache.org/ Apache HTTP Server (httpd)]''' è il server web più utilizzato per MediaWiki.

&lt;span id="Modules"&gt;&lt;/span&gt;
== Moduli ==

=== PHP ===

&lt;span id="PHP_as_Apache_Module"&gt;&lt;/span&gt;
==== PHP come modulo di Apache ====

MediaWiki è scritto per utilizzare il [[Special:MyLanguage/PHP config|PHP]] come modulo di Apache. La tua installazione di PHP probabilmente è configurata come modulo se le tue URLs iniziano così:

&lt;pre&gt;
example.com/index.php/Main_Page
&lt;/pre&gt;

Puoi controllare qual è la configurazione e la versione di PHP visualizzando la pagina [[Special:Version]] della tua wiki, o con [https://php.net/phpinfo phpinfo()].

Installa PHP, Apache e il modulo PHP per Apache.
Dopo, assicurati che il servizio Apache sia in esecuzione.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For specific commands, refer to the documentation of your operating system or distribution.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== PHP as CGI ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If PHP is running as a CGI, you will have "ugly" URLs by default, but you can still implement [[Special:MyLanguage/Manual:Short URL|short URLs]].
&lt;/div&gt;

===== CGIWrap =====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you have your own server running Apache and are running [[#PHP as CGI|PHP as CGI]], you can install [https://github.com/cgiwrap/cgiwrap CGIWrap]. This tool enables you to run the Apache server as a different user for CGIs.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That way, you can create a new user for your MediaWiki pages. Installing CGIWrap is beyond the scope of this document, especially since you must compile it accordingly to your own server. However, as a quick guideline, you can follow these rules:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Create a Wikimedia user
&lt;/div&gt;
 useradd -M -s /sbin/nologin wikiuser
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Have a cgi-bin folder, containing CGIWrap (example in /home/myuser/cgi-bin). Once everything is configured, keep only cgiwrap, move the debug versions to another folder if you ever need it. Your cgiwrap file should be accessible only to Apache (chown and chmod accordingly).
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
chown apache:apache cgiwrap
chmod 500 cgiwrap
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Inside the cgi-bin folder, create a symbolic link to the Wikimedia root.
&lt;/div&gt;
 ln -s /home/myuser/public_html/wiki /home/myuser/cgi-bin/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* In your wiki's .htaccess file, add the following definitions:
&lt;/div&gt;
 AddHandler php-wrapper .php
 Action php-wrapper /cgi-bin/cgiwrap/wikiuser/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Finally, chown and chmod all the .php files of your Wikimedia folder to be accessible solely by wikiuser.
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
find . -name \*.php -exec chown wikiuser:wikiuser {} \;
find . -name \*.php -exec chmod 500 {} \;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The files will be accessible as usual. You do not need to specify in your path any cgi-bin, as this is transparently taken care of for you.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
I strongly suggest you start out with /cgi-bin/cgiwrapd/... as your php-wrapper, as it will precisely show what is currently working. I also strongly suggest you do not delete your CGIWrap source folder until everything works perfectly as this is a real trial and error process, taking a long time. However, it's all worth your time as your MediaWiki will be run in its own separate process, in its own uid, without being able to interfere any other uid. Inverse is also true, except for root, that can read anything anywhere.
&lt;/div&gt;

=== mod_alias / mod_rewrite ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The recommended method of [[Special:MyLanguage/Manual:Short URL|beautifying URLs]] involves [https://httpd.apache.org/docs/current/mod/mod_alias.html mod_alias]. Other methods use [https://httpd.apache.org/docs/current/mod/mod_rewrite.html mod_rewrite] instead.
&lt;/div&gt;

=== mod_security ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
{{ll|ModSecurity}} has been known to cause problems with MediaWiki. If you get errors seemingly at random, check your error log to see whether it is causing problems.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== VisualEditor and Subpages ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In order to prevent [[Special:MyLanguage/Extension:VisualEditor#Troubleshooting|errors contacting the Parsoid server]], &lt;code&gt;AllowEncodedSlashes NoDecode&lt;/code&gt; must be added to the wiki's VirtualHost config block (or to the general server config if VirtualHosts are not used).&lt;/span&gt;&lt;ref&gt;
[[phab:T261921]]
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Thread stack size ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The stack size for each Apache thread is [https://httpd.apache.org/docs/current/mod/mpm_common.html#ThreadStackSize configurable] and the default varies on different operating systems. To run MediaWiki on Windows environments it may be necessary to increase the stack size (if there are problems), as the 1MB default is small and can [https://bugs.php.net/bug.php?id=47689 cause stack overflows] during PHP script execution. The following httpd.conf setting will set the stack size to about 8MB (about a typical Linux default):
&lt;/div&gt;

&lt;syntaxhighlight lang="apache"&gt;
&lt;IfModule mpm_winnt_module&gt;
ThreadStackSize 8388608
&lt;/IfModule&gt;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Spiders and bots ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You really should use a {{ll|Manual:robots.txt|robots.txt}} file to tell well-behaved spiders not to download dynamically generated pages (edit pages, for instance).&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This can reduce the load on your webserver, preserve your bandwidth, and prevent duplicate content issues with search engines.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, malicious bots could tie up your webserver and waste your bandwidth by downloading a large volume of pages extremely quickly.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Request throttling can help protect against this.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== See also ==
&lt;/div&gt;
* {{ll|Manual:Short URL/Apache}}
* {{ll|Manual:Thumb.php}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== References ==
&lt;/div&gt;
&lt;references/&gt;
[[Category:Installation{{#translation:}}]]</text>
    <sha1>7ab170bc27026ea1e6b0c74758a4f51e28267b8d</sha1>
  </revision>
  <revision>
    <id>6624331</id>
    <parentid>6624329</parentid>
    <timestamp>2024-07-09T09:43:14Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "Per i comandi specifici, fai riferimento alla documentazione del sistema operativo o della distribuzione."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6690" xml:space="preserve">&lt;languages/&gt;
'''[https://httpd.apache.org/ Apache HTTP Server (httpd)]''' è il server web più utilizzato per MediaWiki.

&lt;span id="Modules"&gt;&lt;/span&gt;
== Moduli ==

=== PHP ===

&lt;span id="PHP_as_Apache_Module"&gt;&lt;/span&gt;
==== PHP come modulo di Apache ====

MediaWiki è scritto per utilizzare il [[Special:MyLanguage/PHP config|PHP]] come modulo di Apache. La tua installazione di PHP probabilmente è configurata come modulo se le tue URLs iniziano così:

&lt;pre&gt;
example.com/index.php/Main_Page
&lt;/pre&gt;

Puoi controllare qual è la configurazione e la versione di PHP visualizzando la pagina [[Special:Version]] della tua wiki, o con [https://php.net/phpinfo phpinfo()].

Installa PHP, Apache e il modulo PHP per Apache.
Dopo, assicurati che il servizio Apache sia in esecuzione.
Per i comandi specifici, fai riferimento alla documentazione del sistema operativo o della distribuzione.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== PHP as CGI ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If PHP is running as a CGI, you will have "ugly" URLs by default, but you can still implement [[Special:MyLanguage/Manual:Short URL|short URLs]].
&lt;/div&gt;

===== CGIWrap =====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you have your own server running Apache and are running [[#PHP as CGI|PHP as CGI]], you can install [https://github.com/cgiwrap/cgiwrap CGIWrap]. This tool enables you to run the Apache server as a different user for CGIs.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That way, you can create a new user for your MediaWiki pages. Installing CGIWrap is beyond the scope of this document, especially since you must compile it accordingly to your own server. However, as a quick guideline, you can follow these rules:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Create a Wikimedia user
&lt;/div&gt;
 useradd -M -s /sbin/nologin wikiuser
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Have a cgi-bin folder, containing CGIWrap (example in /home/myuser/cgi-bin). Once everything is configured, keep only cgiwrap, move the debug versions to another folder if you ever need it. Your cgiwrap file should be accessible only to Apache (chown and chmod accordingly).
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
chown apache:apache cgiwrap
chmod 500 cgiwrap
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Inside the cgi-bin folder, create a symbolic link to the Wikimedia root.
&lt;/div&gt;
 ln -s /home/myuser/public_html/wiki /home/myuser/cgi-bin/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* In your wiki's .htaccess file, add the following definitions:
&lt;/div&gt;
 AddHandler php-wrapper .php
 Action php-wrapper /cgi-bin/cgiwrap/wikiuser/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Finally, chown and chmod all the .php files of your Wikimedia folder to be accessible solely by wikiuser.
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
find . -name \*.php -exec chown wikiuser:wikiuser {} \;
find . -name \*.php -exec chmod 500 {} \;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The files will be accessible as usual. You do not need to specify in your path any cgi-bin, as this is transparently taken care of for you.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
I strongly suggest you start out with /cgi-bin/cgiwrapd/... as your php-wrapper, as it will precisely show what is currently working. I also strongly suggest you do not delete your CGIWrap source folder until everything works perfectly as this is a real trial and error process, taking a long time. However, it's all worth your time as your MediaWiki will be run in its own separate process, in its own uid, without being able to interfere any other uid. Inverse is also true, except for root, that can read anything anywhere.
&lt;/div&gt;

=== mod_alias / mod_rewrite ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The recommended method of [[Special:MyLanguage/Manual:Short URL|beautifying URLs]] involves [https://httpd.apache.org/docs/current/mod/mod_alias.html mod_alias]. Other methods use [https://httpd.apache.org/docs/current/mod/mod_rewrite.html mod_rewrite] instead.
&lt;/div&gt;

=== mod_security ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
{{ll|ModSecurity}} has been known to cause problems with MediaWiki. If you get errors seemingly at random, check your error log to see whether it is causing problems.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== VisualEditor and Subpages ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In order to prevent [[Special:MyLanguage/Extension:VisualEditor#Troubleshooting|errors contacting the Parsoid server]], &lt;code&gt;AllowEncodedSlashes NoDecode&lt;/code&gt; must be added to the wiki's VirtualHost config block (or to the general server config if VirtualHosts are not used).&lt;/span&gt;&lt;ref&gt;
[[phab:T261921]]
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Thread stack size ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The stack size for each Apache thread is [https://httpd.apache.org/docs/current/mod/mpm_common.html#ThreadStackSize configurable] and the default varies on different operating systems. To run MediaWiki on Windows environments it may be necessary to increase the stack size (if there are problems), as the 1MB default is small and can [https://bugs.php.net/bug.php?id=47689 cause stack overflows] during PHP script execution. The following httpd.conf setting will set the stack size to about 8MB (about a typical Linux default):
&lt;/div&gt;

&lt;syntaxhighlight lang="apache"&gt;
&lt;IfModule mpm_winnt_module&gt;
ThreadStackSize 8388608
&lt;/IfModule&gt;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Spiders and bots ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You really should use a {{ll|Manual:robots.txt|robots.txt}} file to tell well-behaved spiders not to download dynamically generated pages (edit pages, for instance).&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This can reduce the load on your webserver, preserve your bandwidth, and prevent duplicate content issues with search engines.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, malicious bots could tie up your webserver and waste your bandwidth by downloading a large volume of pages extremely quickly.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Request throttling can help protect against this.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== See also ==
&lt;/div&gt;
* {{ll|Manual:Short URL/Apache}}
* {{ll|Manual:Thumb.php}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== References ==
&lt;/div&gt;
&lt;references/&gt;
[[Category:Installation{{#translation:}}]]</text>
    <sha1>a9ed8ecf9c46c2be3fe1494bbd7acad919e9c5bf</sha1>
  </revision>
  <revision>
    <id>6624333</id>
    <parentid>6624331</parentid>
    <timestamp>2024-07-09T09:43:28Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "==== PHP come CGI ===="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6666" xml:space="preserve">&lt;languages/&gt;
'''[https://httpd.apache.org/ Apache HTTP Server (httpd)]''' è il server web più utilizzato per MediaWiki.

&lt;span id="Modules"&gt;&lt;/span&gt;
== Moduli ==

=== PHP ===

&lt;span id="PHP_as_Apache_Module"&gt;&lt;/span&gt;
==== PHP come modulo di Apache ====

MediaWiki è scritto per utilizzare il [[Special:MyLanguage/PHP config|PHP]] come modulo di Apache. La tua installazione di PHP probabilmente è configurata come modulo se le tue URLs iniziano così:

&lt;pre&gt;
example.com/index.php/Main_Page
&lt;/pre&gt;

Puoi controllare qual è la configurazione e la versione di PHP visualizzando la pagina [[Special:Version]] della tua wiki, o con [https://php.net/phpinfo phpinfo()].

Installa PHP, Apache e il modulo PHP per Apache.
Dopo, assicurati che il servizio Apache sia in esecuzione.
Per i comandi specifici, fai riferimento alla documentazione del sistema operativo o della distribuzione.

&lt;span id="PHP_as_CGI"&gt;&lt;/span&gt;
==== PHP come CGI ====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If PHP is running as a CGI, you will have "ugly" URLs by default, but you can still implement [[Special:MyLanguage/Manual:Short URL|short URLs]].
&lt;/div&gt;

===== CGIWrap =====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you have your own server running Apache and are running [[#PHP as CGI|PHP as CGI]], you can install [https://github.com/cgiwrap/cgiwrap CGIWrap]. This tool enables you to run the Apache server as a different user for CGIs.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That way, you can create a new user for your MediaWiki pages. Installing CGIWrap is beyond the scope of this document, especially since you must compile it accordingly to your own server. However, as a quick guideline, you can follow these rules:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Create a Wikimedia user
&lt;/div&gt;
 useradd -M -s /sbin/nologin wikiuser
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Have a cgi-bin folder, containing CGIWrap (example in /home/myuser/cgi-bin). Once everything is configured, keep only cgiwrap, move the debug versions to another folder if you ever need it. Your cgiwrap file should be accessible only to Apache (chown and chmod accordingly).
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
chown apache:apache cgiwrap
chmod 500 cgiwrap
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Inside the cgi-bin folder, create a symbolic link to the Wikimedia root.
&lt;/div&gt;
 ln -s /home/myuser/public_html/wiki /home/myuser/cgi-bin/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* In your wiki's .htaccess file, add the following definitions:
&lt;/div&gt;
 AddHandler php-wrapper .php
 Action php-wrapper /cgi-bin/cgiwrap/wikiuser/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Finally, chown and chmod all the .php files of your Wikimedia folder to be accessible solely by wikiuser.
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
find . -name \*.php -exec chown wikiuser:wikiuser {} \;
find . -name \*.php -exec chmod 500 {} \;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The files will be accessible as usual. You do not need to specify in your path any cgi-bin, as this is transparently taken care of for you.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
I strongly suggest you start out with /cgi-bin/cgiwrapd/... as your php-wrapper, as it will precisely show what is currently working. I also strongly suggest you do not delete your CGIWrap source folder until everything works perfectly as this is a real trial and error process, taking a long time. However, it's all worth your time as your MediaWiki will be run in its own separate process, in its own uid, without being able to interfere any other uid. Inverse is also true, except for root, that can read anything anywhere.
&lt;/div&gt;

=== mod_alias / mod_rewrite ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The recommended method of [[Special:MyLanguage/Manual:Short URL|beautifying URLs]] involves [https://httpd.apache.org/docs/current/mod/mod_alias.html mod_alias]. Other methods use [https://httpd.apache.org/docs/current/mod/mod_rewrite.html mod_rewrite] instead.
&lt;/div&gt;

=== mod_security ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
{{ll|ModSecurity}} has been known to cause problems with MediaWiki. If you get errors seemingly at random, check your error log to see whether it is causing problems.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== VisualEditor and Subpages ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In order to prevent [[Special:MyLanguage/Extension:VisualEditor#Troubleshooting|errors contacting the Parsoid server]], &lt;code&gt;AllowEncodedSlashes NoDecode&lt;/code&gt; must be added to the wiki's VirtualHost config block (or to the general server config if VirtualHosts are not used).&lt;/span&gt;&lt;ref&gt;
[[phab:T261921]]
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Thread stack size ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The stack size for each Apache thread is [https://httpd.apache.org/docs/current/mod/mpm_common.html#ThreadStackSize configurable] and the default varies on different operating systems. To run MediaWiki on Windows environments it may be necessary to increase the stack size (if there are problems), as the 1MB default is small and can [https://bugs.php.net/bug.php?id=47689 cause stack overflows] during PHP script execution. The following httpd.conf setting will set the stack size to about 8MB (about a typical Linux default):
&lt;/div&gt;

&lt;syntaxhighlight lang="apache"&gt;
&lt;IfModule mpm_winnt_module&gt;
ThreadStackSize 8388608
&lt;/IfModule&gt;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Spiders and bots ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You really should use a {{ll|Manual:robots.txt|robots.txt}} file to tell well-behaved spiders not to download dynamically generated pages (edit pages, for instance).&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This can reduce the load on your webserver, preserve your bandwidth, and prevent duplicate content issues with search engines.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, malicious bots could tie up your webserver and waste your bandwidth by downloading a large volume of pages extremely quickly.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Request throttling can help protect against this.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== See also ==
&lt;/div&gt;
* {{ll|Manual:Short URL/Apache}}
* {{ll|Manual:Thumb.php}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== References ==
&lt;/div&gt;
&lt;references/&gt;
[[Category:Installation{{#translation:}}]]</text>
    <sha1>67be4919d9dd0456fa5d34d24dbb04808e777aaf</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Extension:Translate/42/pl</title>
  <ns>1198</ns>
  <id>1992321</id>
  <revision>
    <id>6624311</id>
    <timestamp>2024-07-09T09:39:34Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="147" xml:space="preserve">Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.</text>
    <sha1>209884e057bfcc012f03012a373754e2fe7a5d68</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Apache configuration/4/it</title>
  <ns>1198</ns>
  <id>1992322</id>
  <revision>
    <id>6624313</id>
    <timestamp>2024-07-09T09:39:39Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "==== PHP come modulo di Apache ===="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="35" xml:space="preserve">==== PHP come modulo di Apache ====</text>
    <sha1>364b9462a038889d67c79a97399276e1903e0b22</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Extension:Translate/57/pl</title>
  <ns>1198</ns>
  <id>1992323</id>
  <revision>
    <id>6624315</id>
    <timestamp>2024-07-09T09:39:42Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Tom Hutchison z Joomli:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="23" xml:space="preserve">Tom Hutchison z Joomli:</text>
    <sha1>9563b2924928d037401d392e2d327c23e46be0cd</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Extension:Translate/59/pl</title>
  <ns>1198</ns>
  <id>1992324</id>
  <revision>
    <id>6624317</id>
    <timestamp>2024-07-09T09:40:09Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "To ok, jeśli są na różnych kontynentach."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="44" xml:space="preserve">To ok, jeśli są na różnych kontynentach.</text>
    <sha1>5eea816a59d354d5f30746a73122be3e0696fae1</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Extension:Translate/64/pl</title>
  <ns>1198</ns>
  <id>1992325</id>
  <revision>
    <id>6624319</id>
    <timestamp>2024-07-09T09:41:16Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="77" xml:space="preserve">To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.</text>
    <sha1>a452540241083525e27fee9e2edcaa5a9b091a8b</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>User:ArielGlenn/CentralAuth walkthrough</title>
  <ns>2</ns>
  <id>1992288</id>
  <revision>
    <id>6624321</id>
    <parentid>6624261</parentid>
    <timestamp>2024-07-09T09:41:26Z</timestamp>
    <contributor>
      <username>ArielGlenn</username>
      <id>31925</id>
    </contributor>
    <comment>/* Prerequisites */ web server info, a start</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="3099" xml:space="preserve">==Setup of the [[Extension:CentralAuth|CentralAuth]] extension==

'''DRAFT IN PROGRESS'''

This documents my setup for testing login, session and cookie behavior in a small wikifarm environment. It is current as of July 9, 2024.

I do not use docker images for this setup; if you do, then you will want to manage hostnames and networking accordingly, as well as volume mounts for MediaWiki source and for databases.

I do everything on linux. The specific distribution should not matter, but for that reason I do not specify package manager details, since they may vary. I do provide information for dealing with selinux, in case you run a distribution with selinux enabled.

I run PHP 8.3 locally; that is not a requirement. You should make sure that the version of PHP you have available is the minimum required for MediaWiki and a minimal group of extensions; see the [[Compatibility#PHP|compatibility notes]] for details. 

=== Installation of a wiki farm ===

==== Prerequisites ====

You'll need an appropriate version of '''PHP''' installed, along with the following php modules:
* php-mysqlnd (mariadb bindings)
* php-fpm
* php-gmp
* php-intl
* php-mbstring
* php-xml

You'll need to adjust the PHP configuration settings to '''FIXME''' (memory settings, enabling modules, and other)

You'll also need '''mariadb''' installed, preferably the latest version supported by your linux distribution. The default settings should generally be ok. You'll only need one server instance for this setup; all wiki databases will be hosted on the one database server.

For session caching Wikimedia production servers currently use a custom-written extension that writes to kafka. Although I prefer in most cases to keep our setup relatively close to that of production, I don't feel that the cost of installation and maintenance of such a setup is worth it in this case. So I recommend that you install memcached and use the default config for it (port 11211, listening address 127.0.0.1, memory limit of 64 MB). See [[Manual:Memcached#Setup]] for details, but ignore the MediaWiki configuration settings; we'll come back to that later.

You'll want a web server. Wikimedia uses apache in production and so that's what I use. You do not need to enable SSL for CentralAuth testing, so the setup of a pki and SSL-enabled virtual hosts will not be discussed here. You will want apache 2.4. The apache rewrite module is not required, but I find it convenient and I recommend you install it as well.

You will need php-fpm installed and configured. Strictly speaking, you could do without, but Wikimedia production uses it, and it's not hard to manage. Configuration: (max/min servers, etc...)

==== MediaWiki source ====
==== Databases ====
==== Installation on each wiki ====
==== MediaWiki Configuration ====

=== Setup of CentralAuth ===
==== Getting the source ====
==== Configuration ====
==== Migration of existing accounts ====
==== Setting up a global steward account ====

=== Testing ===
==== Back up your databases ====
==== Running unit tests ====
==== Manual testing ====

=== Further notes ===</text>
    <sha1>6f96739b7e2a8d6e219e901baa4cc07a84a9e5f5</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Apache configuration/5/it</title>
  <ns>1198</ns>
  <id>1992326</id>
  <revision>
    <id>6624322</id>
    <timestamp>2024-07-09T09:41:31Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "MediaWiki è scritto per utilizzare il [[$1|PHP]] come modulo di Apache. La tua installazione di PHP probabilmente è configurata come modulo se le tue URLs iniziano così:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="172" xml:space="preserve">MediaWiki è scritto per utilizzare il [[$1|PHP]] come modulo di Apache. La tua installazione di PHP probabilmente è configurata come modulo se le tue URLs iniziano così:</text>
    <sha1>7271ad08ffd4a4092f765a865a1a0067b619bee3</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Apache configuration/6/it</title>
  <ns>1198</ns>
  <id>1992327</id>
  <revision>
    <id>6624324</id>
    <timestamp>2024-07-09T09:42:25Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "Puoi controllare qual è la configurazione e la versione di PHP visualizzando la pagina $1 della tua wiki, o con $2."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="116" xml:space="preserve">Puoi controllare qual è la configurazione e la versione di PHP visualizzando la pagina $1 della tua wiki, o con $2.</text>
    <sha1>1ddd20374affcfbb27fc59febdd990612baa0f5c</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Apache configuration/42/it</title>
  <ns>1198</ns>
  <id>1992328</id>
  <revision>
    <id>6624326</id>
    <timestamp>2024-07-09T09:42:41Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "Installa PHP, Apache e il modulo PHP per Apache."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="48" xml:space="preserve">Installa PHP, Apache e il modulo PHP per Apache.</text>
    <sha1>9840c06e4cac69f3ef7f950ba48e6c70894ce309</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Apache configuration/43/it</title>
  <ns>1198</ns>
  <id>1992329</id>
  <revision>
    <id>6624328</id>
    <timestamp>2024-07-09T09:42:53Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "Dopo, assicurati che il servizio Apache sia in esecuzione."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="58" xml:space="preserve">Dopo, assicurati che il servizio Apache sia in esecuzione.</text>
    <sha1>bef487a9b74bb40efbe08e1837c638f9c94cde90</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Apache configuration/44/it</title>
  <ns>1198</ns>
  <id>1992330</id>
  <revision>
    <id>6624330</id>
    <timestamp>2024-07-09T09:43:13Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "Per i comandi specifici, fai riferimento alla documentazione del sistema operativo o della distribuzione."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="105" xml:space="preserve">Per i comandi specifici, fai riferimento alla documentazione del sistema operativo o della distribuzione.</text>
    <sha1>95b3b66bd1569ea7e81cdf0d2fec7253b35e2aa9</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Apache configuration/15/it</title>
  <ns>1198</ns>
  <id>1992331</id>
  <revision>
    <id>6624332</id>
    <timestamp>2024-07-09T09:43:27Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "==== PHP come CGI ===="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="22" xml:space="preserve">==== PHP come CGI ====</text>
    <sha1>9550ba0acfe0196cbc5fb8089a7933d6a38ee5a9</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Extension:Translate/65/pl</title>
  <ns>1198</ns>
  <id>1992332</id>
  <revision>
    <id>6624334</id>
    <timestamp>2024-07-09T09:44:32Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Potrzebują grupy wsparcia."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="27" xml:space="preserve">Potrzebują grupy wsparcia.</text>
    <sha1>158db01dc0b325315476645f30dba2e0e3a6f2f5</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Extension:Translate/66/pl</title>
  <ns>1198</ns>
  <id>1992333</id>
  <revision>
    <id>6624335</id>
    <timestamp>2024-07-09T09:44:35Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="151" xml:space="preserve">Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.</text>
    <sha1>5fffd78f362b294375cdf51ca4e9c9f67252d7fb</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Topic:Y87hu45p3sr9ap3e</title>
  <ns>2600</ns>
  <id>1992334</id>
  <revision>
    <id>6624337</id>
    <timestamp>2024-07-09T09:44:36Z</timestamp>
    <contributor>
      <username>Flow talk page manager</username>
      <id>1946968</id>
    </contributor>
    <comment>/* This page has been converted into a Structured Discussions board */</comment>
    <model>flow-board</model>
    <format>application/json</format>
    <text bytes="1" xml:space="preserve">{"flow-workflow":"y87hu45p3sr9ap3e"}</text>
    <sha1>834785615e282e44590e8d627448b465a60779bc</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Extension:Translate/67/pl</title>
  <ns>1198</ns>
  <id>1992335</id>
  <revision>
    <id>6624339</id>
    <timestamp>2024-07-09T09:44:39Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Następnie pomagają innym, którzy z kolei pomagają innym."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="60" xml:space="preserve">Następnie pomagają innym, którzy z kolei pomagają innym.</text>
    <sha1>fdbb48632ce788d4f8b486444ba3e950cb06eb3c</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Extension:Translate/68/pl</title>
  <ns>1198</ns>
  <id>1992336</id>
  <revision>
    <id>6624341</id>
    <timestamp>2024-07-09T09:44:44Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="92" xml:space="preserve">Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.</text>
    <sha1>3698885f9463316a46560b479dfbf4128c7867ea</sha1>
  </revision>
</page>
<page arvcontinue="20240709093645|6624294">
  <title>Translations:Extension:Translate/69/pl</title>
  <ns>1198</ns>
  <id>1992337</id>
  <revision>
    <id>6624343</id>
    <timestamp>2024-07-09T09:45:44Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="77" xml:space="preserve">Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić.</text>
    <sha1>c25b4d7e2590ec0f9527872fa2997a2daf96aefe</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Extension:Translate/pl</title>
  <ns>102</ns>
  <id>170399</id>
  <revision>
    <id>6624344</id>
    <parentid>6624342</parentid>
    <timestamp>2024-07-09T09:45:45Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10643" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.
Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They are actually waiting on me for more translations to do because I can't keep up with them.&lt;/span&gt;
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>1c77c2fed74773bbdc13137afdced6da266d8f21</sha1>
  </revision>
  <revision>
    <id>6624346</id>
    <parentid>6624344</parentid>
    <timestamp>2024-07-09T09:45:48Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10581" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.
Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić.
Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód.
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;One person is doing Swahili while another one is working on Japanese.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>0e2898a7e4e7c7443af582f7132611d2aded69c5</sha1>
  </revision>
  <revision>
    <id>6624352</id>
    <parentid>6624346</parentid>
    <timestamp>2024-07-09T09:46:03Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Jedna osoba mówi na szwahili, a druga pracuje na japońsku."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10516" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.
Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić.
Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód.
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
Jedna osoba mówi na szwahili, a druga pracuje na japońsku.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Also, you mark pages for translation.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>a6fe681569354c517612293c9f0205dcaefa16b4</sha1>
  </revision>
  <revision>
    <id>6624354</id>
    <parentid>6624352</parentid>
    <timestamp>2024-07-09T09:46:07Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Ponadto, znaczysz strony do tłumaczenia."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10464" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.
Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić.
Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód.
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
Jedna osoba mówi na szwahili, a druga pracuje na japońsku.
Ponadto, znaczysz strony do tłumaczenia.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an extension to facilitate communication with translators.&lt;/span&gt;
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>a40d79da737b565003cb3abad6b178addb275bad</sha1>
  </revision>
  <revision>
    <id>6624358</id>
    <parentid>6624354</parentid>
    <timestamp>2024-07-09T09:46:47Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "rozszerzenie, aby ułatwić komunikację z tłumaczami."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10405" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.
Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić.
Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód.
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
Jedna osoba mówi na szwahili, a druga pracuje na japońsku.
Ponadto, znaczysz strony do tłumaczenia.
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You control whether to include templates or exclude variables in template calls.&lt;/span&gt;
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – rozszerzenie, aby ułatwić komunikację z tłumaczami.
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>6d6ccb37b3f75620dd98ab9f297e3c1ab0f1c3f0</sha1>
  </revision>
  <revision>
    <id>6624360</id>
    <parentid>6624358</parentid>
    <timestamp>2024-07-09T09:46:51Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Kontrolizujesz, czy włączyć szablony lub wykluczyć zmienne w wywołaniach szablonu."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10356" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.
Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić.
Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód.
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
Jedna osoba mówi na szwahili, a druga pracuje na japońsku.
Ponadto, znaczysz strony do tłumaczenia.
Kontrolizujesz, czy włączyć szablony lub wykluczyć zmienne w wywołaniach szablonu.
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – rozszerzenie, aby ułatwić komunikację z tłumaczami.
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Not to be confused with:
&lt;/div&gt;

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>45a45f2ba6c242f2a947141a5229a558da2fffdd</sha1>
  </revision>
  <revision>
    <id>6624366</id>
    <parentid>6624360</parentid>
    <timestamp>2024-07-09T09:47:41Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Nie należy je mylić z:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10300" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.
Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić.
Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód.
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
Jedna osoba mówi na szwahili, a druga pracuje na japońsku.
Ponadto, znaczysz strony do tłumaczenia.
Kontrolizujesz, czy włączyć szablony lub wykluczyć zmienne w wywołaniach szablonu.
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – rozszerzenie, aby ułatwić komunikację z tłumaczami.
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

Nie należy je mylić z:

* {{ll|Extension:ContentTranslation}} tool – &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;used for one-off translation of wiki pages from one language to another.&lt;/span&gt;
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>23e2e3264316c76a3ed634db1275da3c457199fe</sha1>
  </revision>
  <revision>
    <id>6624368</id>
    <parentid>6624366</parentid>
    <timestamp>2024-07-09T09:47:49Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "używane do jednorazowego tłumaczenia stron wiki z jednego języka do drugiego."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10252" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.
Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić.
Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód.
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
Jedna osoba mówi na szwahili, a druga pracuje na japońsku.
Ponadto, znaczysz strony do tłumaczenia.
Kontrolizujesz, czy włączyć szablony lub wykluczyć zmienne w wywołaniach szablonu.
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – rozszerzenie, aby ułatwić komunikację z tłumaczami.
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

Nie należy je mylić z:

* {{ll|Extension:ContentTranslation}} tool – używane do jednorazowego tłumaczenia stron wiki z jednego języka do drugiego.
* {{ll|Extension:TranslateWiki}}
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] for translation.&lt;/span&gt;

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>f6050798d6524f7cbcfaa68ec24b7b8e41bec8df</sha1>
  </revision>
  <revision>
    <id>6624370</id>
    <parentid>6624368</parentid>
    <timestamp>2024-07-09T09:48:02Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "[[$1|m:Abstract Wikipedia]] dla tłumaczenia."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10197" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.
Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić.
Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód.
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
Jedna osoba mówi na szwahili, a druga pracuje na japońsku.
Ponadto, znaczysz strony do tłumaczenia.
Kontrolizujesz, czy włączyć szablony lub wykluczyć zmienne w wywołaniach szablonu.
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – rozszerzenie, aby ułatwić komunikację z tłumaczami.
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

Nie należy je mylić z:

* {{ll|Extension:ContentTranslation}} tool – używane do jednorazowego tłumaczenia stron wiki z jednego języka do drugiego.
* {{ll|Extension:TranslateWiki}}
* [[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] dla tłumaczenia.

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Translate this extension at translatewiki.net]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>86d031bad7748c5bbc9ae43a72f6500dd6d49443</sha1>
  </revision>
  <revision>
    <id>6624382</id>
    <parentid>6624370</parentid>
    <timestamp>2024-07-09T09:49:22Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* [$twn Tłumaczyć tę rozszerzenie na $1]"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10145" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.
Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić.
Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód.
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
Jedna osoba mówi na szwahili, a druga pracuje na japońsku.
Ponadto, znaczysz strony do tłumaczenia.
Kontrolizujesz, czy włączyć szablony lub wykluczyć zmienne w wywołaniach szablonu.
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – rozszerzenie, aby ułatwić komunikację z tłumaczami.
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

Nie należy je mylić z:

* {{ll|Extension:ContentTranslation}} tool – używane do jednorazowego tłumaczenia stron wiki z jednego języka do drugiego.
* {{ll|Extension:TranslateWiki}}
* [[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] dla tłumaczenia.

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Tłumaczyć tę rozszerzenie na translatewiki.net]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[phab:project/sprint/board/271/query/open/|Open bugs and feature requests]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>f43a00ff43e0e4fb515e08a2173ce45bf272d3f0</sha1>
  </revision>
  <revision>
    <id>6624386</id>
    <parentid>6624382</parentid>
    <timestamp>2024-07-09T09:49:34Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* [[$1|Otwarte błędy i prośby o funkcje]]."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10095" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.
Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić.
Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód.
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
Jedna osoba mówi na szwahili, a druga pracuje na japońsku.
Ponadto, znaczysz strony do tłumaczenia.
Kontrolizujesz, czy włączyć szablony lub wykluczyć zmienne w wywołaniach szablonu.
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – rozszerzenie, aby ułatwić komunikację z tłumaczami.
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

Nie należy je mylić z:

* {{ll|Extension:ContentTranslation}} tool – używane do jednorazowego tłumaczenia stron wiki z jednego języka do drugiego.
* {{ll|Extension:TranslateWiki}}
* [[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] dla tłumaczenia.

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Tłumaczyć tę rozszerzenie na translatewiki.net]
* [[phab:project/sprint/board/271/query/open/|Otwarte błędy i prośby o funkcje]].
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[translatewiki:Issues and features|More open bugs and feature requests at translatewiki.net]]
&lt;/div&gt;
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>0053a90107b1d86429db13a259f9d8bd4244ea6b</sha1>
  </revision>
  <revision>
    <id>6624390</id>
    <parentid>6624386</parentid>
    <timestamp>2024-07-09T09:50:03Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* [[$1|Więcej otwartych błędów i próśb o funkcje w $2]]."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10051" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.
Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić.
Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód.
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
Jedna osoba mówi na szwahili, a druga pracuje na japońsku.
Ponadto, znaczysz strony do tłumaczenia.
Kontrolizujesz, czy włączyć szablony lub wykluczyć zmienne w wywołaniach szablonu.
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – rozszerzenie, aby ułatwić komunikację z tłumaczami.
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

Nie należy je mylić z:

* {{ll|Extension:ContentTranslation}} tool – używane do jednorazowego tłumaczenia stron wiki z jednego języka do drugiego.
* {{ll|Extension:TranslateWiki}}
* [[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] dla tłumaczenia.

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Tłumaczyć tę rozszerzenie na translatewiki.net]
* [[phab:project/sprint/board/271/query/open/|Otwarte błędy i prośby o funkcje]].
* [[translatewiki:Issues and features|Więcej otwartych błędów i próśb o funkcje w translatewiki.net]].
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* [[Special:MyLanguage/Help:Extension:Translate|Proofread and translate the documentation of Translate extension]]
&lt;/div&gt;

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>5c14e99ba5ddba91bd5b7bfad2bd8f94eaf32b20</sha1>
  </revision>
  <revision>
    <id>6624392</id>
    <parentid>6624390</parentid>
    <timestamp>2024-07-09T09:50:16Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* [[$help|Przeczytaj i przetłumacz dokumentację rozszerzenia Translate]]."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="9994" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry w tłumaczeniu oprogramowania i w sprawnie zarządzaniu wielojęzycznymi wikiami.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.
Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić.
Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód.
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
Jedna osoba mówi na szwahili, a druga pracuje na japońsku.
Ponadto, znaczysz strony do tłumaczenia.
Kontrolizujesz, czy włączyć szablony lub wykluczyć zmienne w wywołaniach szablonu.
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – rozszerzenie, aby ułatwić komunikację z tłumaczami.
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

Nie należy je mylić z:

* {{ll|Extension:ContentTranslation}} tool – używane do jednorazowego tłumaczenia stron wiki z jednego języka do drugiego.
* {{ll|Extension:TranslateWiki}}
* [[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] dla tłumaczenia.

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Tłumaczyć tę rozszerzenie na translatewiki.net]
* [[phab:project/sprint/board/271/query/open/|Otwarte błędy i prośby o funkcje]].
* [[translatewiki:Issues and features|Więcej otwartych błędów i próśb o funkcje w translatewiki.net]].
* [[Special:MyLanguage/Help:Extension:Translate|Przeczytaj i przetłumacz dokumentację rozszerzenia Translate]].

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>87935a9a024c178a7d139cd3a6de7ee4fc14de4c</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Extension:Translate/70/pl</title>
  <ns>1198</ns>
  <id>1992338</id>
  <revision>
    <id>6624345</id>
    <timestamp>2024-07-09T09:45:47Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88" xml:space="preserve">Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód.</text>
    <sha1>fff2e699832db30e70a2c0cd39ab5abc496e7026</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Apache configuration/16/it</title>
  <ns>1198</ns>
  <id>1992339</id>
  <revision>
    <id>6624347</id>
    <timestamp>2024-07-09T09:46:01Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "Se il PHP funziona come CGI, avrai delle URL "brutte" come predefinite, ma sarà comunque possibile abilitare delle [[$1|URL corte]]."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="133" xml:space="preserve">Se il PHP funziona come CGI, avrai delle URL "brutte" come predefinite, ma sarà comunque possibile abilitare delle [[$1|URL corte]].</text>
    <sha1>6722075dbea25db8cbaef92e53486e9eef335035</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Extension:Translate/73/pl</title>
  <ns>1198</ns>
  <id>1992340</id>
  <revision>
    <id>6624348</id>
    <timestamp>2024-07-09T09:46:02Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Jedna osoba mówi na szwahili, a druga pracuje na japońsku."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="60" xml:space="preserve">Jedna osoba mówi na szwahili, a druga pracuje na japońsku.</text>
    <sha1>e2c0a44aa039619d33c9a98b17af65887e908a2b</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Apache configuration/it</title>
  <ns>0</ns>
  <id>1658113</id>
  <revision>
    <id>6624349</id>
    <parentid>6624333</parentid>
    <timestamp>2024-07-09T09:46:02Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <comment>Created page with "Se il PHP funziona come CGI, avrai delle URL "brutte" come predefinite, ma sarà comunque possibile abilitare delle [[$1|URL corte]]."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6631" xml:space="preserve">&lt;languages/&gt;
'''[https://httpd.apache.org/ Apache HTTP Server (httpd)]''' è il server web più utilizzato per MediaWiki.

&lt;span id="Modules"&gt;&lt;/span&gt;
== Moduli ==

=== PHP ===

&lt;span id="PHP_as_Apache_Module"&gt;&lt;/span&gt;
==== PHP come modulo di Apache ====

MediaWiki è scritto per utilizzare il [[Special:MyLanguage/PHP config|PHP]] come modulo di Apache. La tua installazione di PHP probabilmente è configurata come modulo se le tue URLs iniziano così:

&lt;pre&gt;
example.com/index.php/Main_Page
&lt;/pre&gt;

Puoi controllare qual è la configurazione e la versione di PHP visualizzando la pagina [[Special:Version]] della tua wiki, o con [https://php.net/phpinfo phpinfo()].

Installa PHP, Apache e il modulo PHP per Apache.
Dopo, assicurati che il servizio Apache sia in esecuzione.
Per i comandi specifici, fai riferimento alla documentazione del sistema operativo o della distribuzione.

&lt;span id="PHP_as_CGI"&gt;&lt;/span&gt;
==== PHP come CGI ====

Se il PHP funziona come CGI, avrai delle URL "brutte" come predefinite, ma sarà comunque possibile abilitare delle [[Special:MyLanguage/Manual:Short URL|URL corte]].

===== CGIWrap =====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you have your own server running Apache and are running [[#PHP as CGI|PHP as CGI]], you can install [https://github.com/cgiwrap/cgiwrap CGIWrap]. This tool enables you to run the Apache server as a different user for CGIs.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That way, you can create a new user for your MediaWiki pages. Installing CGIWrap is beyond the scope of this document, especially since you must compile it accordingly to your own server. However, as a quick guideline, you can follow these rules:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Create a Wikimedia user
&lt;/div&gt;
 useradd -M -s /sbin/nologin wikiuser
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Have a cgi-bin folder, containing CGIWrap (example in /home/myuser/cgi-bin). Once everything is configured, keep only cgiwrap, move the debug versions to another folder if you ever need it. Your cgiwrap file should be accessible only to Apache (chown and chmod accordingly).
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
chown apache:apache cgiwrap
chmod 500 cgiwrap
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Inside the cgi-bin folder, create a symbolic link to the Wikimedia root.
&lt;/div&gt;
 ln -s /home/myuser/public_html/wiki /home/myuser/cgi-bin/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* In your wiki's .htaccess file, add the following definitions:
&lt;/div&gt;
 AddHandler php-wrapper .php
 Action php-wrapper /cgi-bin/cgiwrap/wikiuser/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Finally, chown and chmod all the .php files of your Wikimedia folder to be accessible solely by wikiuser.
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
find . -name \*.php -exec chown wikiuser:wikiuser {} \;
find . -name \*.php -exec chmod 500 {} \;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The files will be accessible as usual. You do not need to specify in your path any cgi-bin, as this is transparently taken care of for you.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
I strongly suggest you start out with /cgi-bin/cgiwrapd/... as your php-wrapper, as it will precisely show what is currently working. I also strongly suggest you do not delete your CGIWrap source folder until everything works perfectly as this is a real trial and error process, taking a long time. However, it's all worth your time as your MediaWiki will be run in its own separate process, in its own uid, without being able to interfere any other uid. Inverse is also true, except for root, that can read anything anywhere.
&lt;/div&gt;

=== mod_alias / mod_rewrite ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The recommended method of [[Special:MyLanguage/Manual:Short URL|beautifying URLs]] involves [https://httpd.apache.org/docs/current/mod/mod_alias.html mod_alias]. Other methods use [https://httpd.apache.org/docs/current/mod/mod_rewrite.html mod_rewrite] instead.
&lt;/div&gt;

=== mod_security ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
{{ll|ModSecurity}} has been known to cause problems with MediaWiki. If you get errors seemingly at random, check your error log to see whether it is causing problems.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== VisualEditor and Subpages ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In order to prevent [[Special:MyLanguage/Extension:VisualEditor#Troubleshooting|errors contacting the Parsoid server]], &lt;code&gt;AllowEncodedSlashes NoDecode&lt;/code&gt; must be added to the wiki's VirtualHost config block (or to the general server config if VirtualHosts are not used).&lt;/span&gt;&lt;ref&gt;
[[phab:T261921]]
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Thread stack size ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The stack size for each Apache thread is [https://httpd.apache.org/docs/current/mod/mpm_common.html#ThreadStackSize configurable] and the default varies on different operating systems. To run MediaWiki on Windows environments it may be necessary to increase the stack size (if there are problems), as the 1MB default is small and can [https://bugs.php.net/bug.php?id=47689 cause stack overflows] during PHP script execution. The following httpd.conf setting will set the stack size to about 8MB (about a typical Linux default):
&lt;/div&gt;

&lt;syntaxhighlight lang="apache"&gt;
&lt;IfModule mpm_winnt_module&gt;
ThreadStackSize 8388608
&lt;/IfModule&gt;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Spiders and bots ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You really should use a {{ll|Manual:robots.txt|robots.txt}} file to tell well-behaved spiders not to download dynamically generated pages (edit pages, for instance).&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This can reduce the load on your webserver, preserve your bandwidth, and prevent duplicate content issues with search engines.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, malicious bots could tie up your webserver and waste your bandwidth by downloading a large volume of pages extremely quickly.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Request throttling can help protect against this.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== See also ==
&lt;/div&gt;
* {{ll|Manual:Short URL/Apache}}
* {{ll|Manual:Thumb.php}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== References ==
&lt;/div&gt;
&lt;references/&gt;
[[Category:Installation{{#translation:}}]]</text>
    <sha1>f7ca2591ca6ce623afa6f5666c6f8626a8b15d9a</sha1>
  </revision>
  <revision>
    <id>6624356</id>
    <parentid>6624349</parentid>
    <timestamp>2024-07-09T09:46:11Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="6630" xml:space="preserve">&lt;languages/&gt;
'''[https://httpd.apache.org/ Apache HTTP Server (httpd)]''' è il server web più utilizzato per MediaWiki.

&lt;span id="Modules"&gt;&lt;/span&gt;
== Moduli ==

=== PHP ===

&lt;span id="PHP_as_Apache_Module"&gt;&lt;/span&gt;
==== PHP come modulo di Apache ====

MediaWiki è scritto per utilizzare il [[Special:MyLanguage/PHP config|PHP]] come modulo di Apache. La tua installazione di PHP probabilmente è configurata come modulo se le tue URL iniziano così:

&lt;pre&gt;
example.com/index.php/Main_Page
&lt;/pre&gt;

Puoi controllare qual è la configurazione e la versione di PHP visualizzando la pagina [[Special:Version]] della tua wiki, o con [https://php.net/phpinfo phpinfo()].

Installa PHP, Apache e il modulo PHP per Apache.
Dopo, assicurati che il servizio Apache sia in esecuzione.
Per i comandi specifici, fai riferimento alla documentazione del sistema operativo o della distribuzione.

&lt;span id="PHP_as_CGI"&gt;&lt;/span&gt;
==== PHP come CGI ====

Se il PHP funziona come CGI, avrai delle URL "brutte" come predefinite, ma sarà comunque possibile abilitare delle [[Special:MyLanguage/Manual:Short URL|URL corte]].

===== CGIWrap =====

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you have your own server running Apache and are running [[#PHP as CGI|PHP as CGI]], you can install [https://github.com/cgiwrap/cgiwrap CGIWrap]. This tool enables you to run the Apache server as a different user for CGIs.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That way, you can create a new user for your MediaWiki pages. Installing CGIWrap is beyond the scope of this document, especially since you must compile it accordingly to your own server. However, as a quick guideline, you can follow these rules:
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Create a Wikimedia user
&lt;/div&gt;
 useradd -M -s /sbin/nologin wikiuser
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Have a cgi-bin folder, containing CGIWrap (example in /home/myuser/cgi-bin). Once everything is configured, keep only cgiwrap, move the debug versions to another folder if you ever need it. Your cgiwrap file should be accessible only to Apache (chown and chmod accordingly).
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
chown apache:apache cgiwrap
chmod 500 cgiwrap
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Inside the cgi-bin folder, create a symbolic link to the Wikimedia root.
&lt;/div&gt;
 ln -s /home/myuser/public_html/wiki /home/myuser/cgi-bin/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* In your wiki's .htaccess file, add the following definitions:
&lt;/div&gt;
 AddHandler php-wrapper .php
 Action php-wrapper /cgi-bin/cgiwrap/wikiuser/wikilink
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
* Finally, chown and chmod all the .php files of your Wikimedia folder to be accessible solely by wikiuser.
&lt;/div&gt;

&lt;syntaxhighlight lang=bash&gt;
find . -name \*.php -exec chown wikiuser:wikiuser {} \;
find . -name \*.php -exec chmod 500 {} \;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The files will be accessible as usual. You do not need to specify in your path any cgi-bin, as this is transparently taken care of for you.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
I strongly suggest you start out with /cgi-bin/cgiwrapd/... as your php-wrapper, as it will precisely show what is currently working. I also strongly suggest you do not delete your CGIWrap source folder until everything works perfectly as this is a real trial and error process, taking a long time. However, it's all worth your time as your MediaWiki will be run in its own separate process, in its own uid, without being able to interfere any other uid. Inverse is also true, except for root, that can read anything anywhere.
&lt;/div&gt;

=== mod_alias / mod_rewrite ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The recommended method of [[Special:MyLanguage/Manual:Short URL|beautifying URLs]] involves [https://httpd.apache.org/docs/current/mod/mod_alias.html mod_alias]. Other methods use [https://httpd.apache.org/docs/current/mod/mod_rewrite.html mod_rewrite] instead.
&lt;/div&gt;

=== mod_security ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
{{ll|ModSecurity}} has been known to cause problems with MediaWiki. If you get errors seemingly at random, check your error log to see whether it is causing problems.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== VisualEditor and Subpages ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In order to prevent [[Special:MyLanguage/Extension:VisualEditor#Troubleshooting|errors contacting the Parsoid server]], &lt;code&gt;AllowEncodedSlashes NoDecode&lt;/code&gt; must be added to the wiki's VirtualHost config block (or to the general server config if VirtualHosts are not used).&lt;/span&gt;&lt;ref&gt;
[[phab:T261921]]
&lt;/ref&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Thread stack size ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The stack size for each Apache thread is [https://httpd.apache.org/docs/current/mod/mpm_common.html#ThreadStackSize configurable] and the default varies on different operating systems. To run MediaWiki on Windows environments it may be necessary to increase the stack size (if there are problems), as the 1MB default is small and can [https://bugs.php.net/bug.php?id=47689 cause stack overflows] during PHP script execution. The following httpd.conf setting will set the stack size to about 8MB (about a typical Linux default):
&lt;/div&gt;

&lt;syntaxhighlight lang="apache"&gt;
&lt;IfModule mpm_winnt_module&gt;
ThreadStackSize 8388608
&lt;/IfModule&gt;
&lt;/syntaxhighlight&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Spiders and bots ==
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You really should use a {{ll|Manual:robots.txt|robots.txt}} file to tell well-behaved spiders not to download dynamically generated pages (edit pages, for instance).&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This can reduce the load on your webserver, preserve your bandwidth, and prevent duplicate content issues with search engines.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;However, malicious bots could tie up your webserver and waste your bandwidth by downloading a large volume of pages extremely quickly.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Request throttling can help protect against this.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== See also ==
&lt;/div&gt;
* {{ll|Manual:Short URL/Apache}}
* {{ll|Manual:Thumb.php}}

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== References ==
&lt;/div&gt;
&lt;references/&gt;
[[Category:Installation{{#translation:}}]]</text>
    <sha1>944a6bb5593b045649f839484cb9926fd3363d64</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Wikimedia Apps/Android Suggested edits/230/ja</title>
  <ns>1198</ns>
  <id>1992341</id>
  <revision>
    <id>6624350</id>
    <timestamp>2024-07-09T09:46:02Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="134" xml:space="preserve">いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。</text>
    <sha1>e2913a7c509f69ca320426593fdeb3307abb3dd6</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Wikimedia Apps/Android Suggested edits/ja</title>
  <ns>0</ns>
  <id>892930</id>
  <revision>
    <id>6624351</id>
    <parentid>6552033</parentid>
    <timestamp>2024-07-09T09:46:04Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30971" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Suggested edits are available for the language that is set as your primary or default language in the app.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like complete suggested edits in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;At the moment we offer tasks to add or translate article descriptions, image captions, images, image tags, and more.&lt;/span&gt;
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit Patrol&lt;/span&gt; }} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights on either of the following wikis: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia&lt;/span&gt;
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;体言止めで記述してください。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some users may see a button that says "see suggested descriptions" which will show them 1-2 machine generated article descriptions.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We are testing a model that summarizes a Wikipedia article into a description of the article.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Our hope is that it will help improve the quality of article descriptions published by Android app users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;When a suggestion is selected, it can be modified or deleted.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The experiment started April 3, 2023 in select language wikis and will run for approximately 30 days.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can read the full details about the experiment on the dedicated [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|project page]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Information about the model we are using to generate the article descriptions can be found [[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|here]].&lt;/span&gt;

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Guidelines for writing short descriptions on English Wikipedia&lt;/span&gt;]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>b3fd7f079f82c179497d6f50c011528e80e2391a</sha1>
  </revision>
  <revision>
    <id>6624362</id>
    <parentid>6624351</parentid>
    <timestamp>2024-07-09T09:46:56Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30956" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like complete suggested edits in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;At the moment we offer tasks to add or translate article descriptions, image captions, images, image tags, and more.&lt;/span&gt;
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit Patrol&lt;/span&gt; }} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights on either of the following wikis: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia&lt;/span&gt;
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;体言止めで記述してください。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some users may see a button that says "see suggested descriptions" which will show them 1-2 machine generated article descriptions.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We are testing a model that summarizes a Wikipedia article into a description of the article.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Our hope is that it will help improve the quality of article descriptions published by Android app users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;When a suggestion is selected, it can be modified or deleted.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The experiment started April 3, 2023 in select language wikis and will run for approximately 30 days.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can read the full details about the experiment on the dedicated [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|project page]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Information about the model we are using to generate the article descriptions can be found [[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|here]].&lt;/span&gt;

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Guidelines for writing short descriptions on English Wikipedia&lt;/span&gt;]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>2dd734c7e0f04c49991879abed128615f934f33e</sha1>
  </revision>
  <revision>
    <id>6624364</id>
    <parentid>6624362</parentid>
    <timestamp>2024-07-09T09:47:26Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "提案されたすべての編集を別の言語で表示したい場合は、{{$1|デフォルトのアプリ言語を変更してください。 }}"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30941" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;At the moment we offer tasks to add or translate article descriptions, image captions, images, image tags, and more.&lt;/span&gt;
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit Patrol&lt;/span&gt; }} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights on either of the following wikis: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia&lt;/span&gt;
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;体言止めで記述してください。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some users may see a button that says "see suggested descriptions" which will show them 1-2 machine generated article descriptions.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We are testing a model that summarizes a Wikipedia article into a description of the article.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Our hope is that it will help improve the quality of article descriptions published by Android app users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;When a suggestion is selected, it can be modified or deleted.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The experiment started April 3, 2023 in select language wikis and will run for approximately 30 days.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can read the full details about the experiment on the dedicated [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|project page]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Information about the model we are using to generate the article descriptions can be found [[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|here]].&lt;/span&gt;

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Guidelines for writing short descriptions on English Wikipedia&lt;/span&gt;]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>d2129ab59b8c29e971e229e67c0f427053d69400</sha1>
  </revision>
  <revision>
    <id>6624372</id>
    <parentid>6624364</parentid>
    <timestamp>2024-07-09T09:48:13Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30916" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit Patrol&lt;/span&gt; }} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights on either of the following wikis: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia&lt;/span&gt;
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;体言止めで記述してください。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some users may see a button that says "see suggested descriptions" which will show them 1-2 machine generated article descriptions.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We are testing a model that summarizes a Wikipedia article into a description of the article.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Our hope is that it will help improve the quality of article descriptions published by Android app users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;When a suggestion is selected, it can be modified or deleted.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The experiment started April 3, 2023 in select language wikis and will run for approximately 30 days.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can read the full details about the experiment on the dedicated [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|project page]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Information about the model we are using to generate the article descriptions can be found [[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|here]].&lt;/span&gt;

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Guidelines for writing short descriptions on English Wikipedia&lt;/span&gt;]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>611e5ab548cce8d758bb13bcebfdef5beaf8ef0c</sha1>
  </revision>
  <revision>
    <id>6624376</id>
    <parentid>6624372</parentid>
    <timestamp>2024-07-09T09:48:42Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "50 件を超える編集を行ったログイン ユーザー"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30882" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit Patrol&lt;/span&gt; }} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights on either of the following wikis: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia&lt;/span&gt;
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;体言止めで記述してください。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some users may see a button that says "see suggested descriptions" which will show them 1-2 machine generated article descriptions.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We are testing a model that summarizes a Wikipedia article into a description of the article.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Our hope is that it will help improve the quality of article descriptions published by Android app users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;When a suggestion is selected, it can be modified or deleted.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The experiment started April 3, 2023 in select language wikis and will run for approximately 30 days.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can read the full details about the experiment on the dedicated [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|project page]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Information about the model we are using to generate the article descriptions can be found [[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|here]].&lt;/span&gt;

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Guidelines for writing short descriptions on English Wikipedia&lt;/span&gt;]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>cabe2f609ade956449131235993f915733c6527c</sha1>
  </revision>
  <revision>
    <id>6624380</id>
    <parentid>6624376</parentid>
    <timestamp>2024-07-09T09:49:18Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "50 件を超える編集を行ったログイン ユーザー"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30848" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit Patrol&lt;/span&gt; }} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights on either of the following wikis: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia&lt;/span&gt;
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;体言止めで記述してください。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some users may see a button that says "see suggested descriptions" which will show them 1-2 machine generated article descriptions.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We are testing a model that summarizes a Wikipedia article into a description of the article.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Our hope is that it will help improve the quality of article descriptions published by Android app users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;When a suggestion is selected, it can be modified or deleted.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The experiment started April 3, 2023 in select language wikis and will run for approximately 30 days.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can read the full details about the experiment on the dedicated [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|project page]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Information about the model we are using to generate the article descriptions can be found [[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|here]].&lt;/span&gt;

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Guidelines for writing short descriptions on English Wikipedia&lt;/span&gt;]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>9ad1e995ad6fe14373e3d64eb4defd7d583d9283</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Extension:Translate/74/pl</title>
  <ns>1198</ns>
  <id>1992342</id>
  <revision>
    <id>6624353</id>
    <timestamp>2024-07-09T09:46:06Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Ponadto, znaczysz strony do tłumaczenia."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="41" xml:space="preserve">Ponadto, znaczysz strony do tłumaczenia.</text>
    <sha1>9b2e6e126225e5dd1a450a8acc05d429a63bbdc0</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Apache configuration/5/it</title>
  <ns>1198</ns>
  <id>1992326</id>
  <revision>
    <id>6624355</id>
    <parentid>6624322</parentid>
    <timestamp>2024-07-09T09:46:11Z</timestamp>
    <contributor>
      <username>M7</username>
      <id>3635</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="171" xml:space="preserve">MediaWiki è scritto per utilizzare il [[$1|PHP]] come modulo di Apache. La tua installazione di PHP probabilmente è configurata come modulo se le tue URL iniziano così:</text>
    <sha1>cb4ea3f5163a038f8f93748a348f951f8bf593d1</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Extension:Translate/44/pl</title>
  <ns>1198</ns>
  <id>1992343</id>
  <revision>
    <id>6624357</id>
    <timestamp>2024-07-09T09:46:46Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "rozszerzenie, aby ułatwić komunikację z tłumaczami."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="55" xml:space="preserve">rozszerzenie, aby ułatwić komunikację z tłumaczami.</text>
    <sha1>e0ca2fb18c3bce9959990d8049e96d539d46bf1e</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Extension:Translate/75/pl</title>
  <ns>1198</ns>
  <id>1992344</id>
  <revision>
    <id>6624359</id>
    <timestamp>2024-07-09T09:46:51Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Kontrolizujesz, czy włączyć szablony lub wykluczyć zmienne w wywołaniach szablonu."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="87" xml:space="preserve">Kontrolizujesz, czy włączyć szablony lub wykluczyć zmienne w wywołaniach szablonu.</text>
    <sha1>e2501391b0aed34cea70365d972c033cc2e81979</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Wikimedia Apps/Android Suggested edits/231/ja</title>
  <ns>1198</ns>
  <id>1992345</id>
  <revision>
    <id>6624361</id>
    <timestamp>2024-07-09T09:46:55Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="147" xml:space="preserve">推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。</text>
    <sha1>8d88db323cc4112f345068349f95e79eedeba366</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Wikimedia Apps/Android Suggested edits/232/ja</title>
  <ns>1198</ns>
  <id>1992346</id>
  <revision>
    <id>6624363</id>
    <timestamp>2024-07-09T09:47:25Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "提案されたすべての編集を別の言語で表示したい場合は、{{$1|デフォルトのアプリ言語を変更してください。 }}"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="149" xml:space="preserve">提案されたすべての編集を別の言語で表示したい場合は、{{$1|デフォルトのアプリ言語を変更してください。 }}</text>
    <sha1>87b567c41ca3b0619190e73721ecf08102596559</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Extension:Translate/76/pl</title>
  <ns>1198</ns>
  <id>1992347</id>
  <revision>
    <id>6624365</id>
    <timestamp>2024-07-09T09:47:41Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Nie należy je mylić z:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="24" xml:space="preserve">Nie należy je mylić z:</text>
    <sha1>ebab147524be10ebf5cff54de97c640a5d730ee9</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Extension:Translate/77/pl</title>
  <ns>1198</ns>
  <id>1992348</id>
  <revision>
    <id>6624367</id>
    <timestamp>2024-07-09T09:47:48Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "używane do jednorazowego tłumaczenia stron wiki z jednego języka do drugiego."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="80" xml:space="preserve">używane do jednorazowego tłumaczenia stron wiki z jednego języka do drugiego.</text>
    <sha1>c1d6ac069ea9b3409c8be4717814612cde7f7b7d</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Extension:Translate/82/pl</title>
  <ns>1198</ns>
  <id>1992349</id>
  <revision>
    <id>6624369</id>
    <timestamp>2024-07-09T09:48:01Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "[[$1|m:Abstract Wikipedia]] dla tłumaczenia."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="45" xml:space="preserve">[[$1|m:Abstract Wikipedia]] dla tłumaczenia.</text>
    <sha1>c0ddd5f0ffc0b43ca6d617be632ba1230a5d4ceb</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Wikimedia Apps/Android Suggested edits/224/ja</title>
  <ns>1198</ns>
  <id>1992350</id>
  <revision>
    <id>6624371</id>
    <timestamp>2024-07-09T09:48:12Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="147" xml:space="preserve">現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。</text>
    <sha1>6ba2c3827e88fd5704e7ab81a9ed5899fa53c1e2</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Global templates/Proposed specification/98/cs</title>
  <ns>1198</ns>
  <id>1992351</id>
  <revision>
    <id>6624373</id>
    <timestamp>2024-07-09T09:48:37Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="365" xml:space="preserve">Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony.</text>
    <sha1>ed2dff6489f62a089a9d8d106c4fc2aac1b1a585</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Global templates/Proposed specification/cs</title>
  <ns>0</ns>
  <id>1991769</id>
  <revision>
    <id>6624374</id>
    <parentid>6624239</parentid>
    <timestamp>2024-07-09T09:48:39Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88518" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.

Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values have to be translated or transliterated, for example people’s names, translations of country mottos, etc.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>db83b9fc18006348bf026214b93645b80ef13b56</sha1>
  </revision>
  <revision>
    <id>6624378</id>
    <parentid>6624374</parentid>
    <timestamp>2024-07-09T09:48:58Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88450" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.

Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony.

Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Global templates must make this possible, but in practice, these things are still often copied across wikis, and this must be taken into account as well.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>df0d533d42e167af9e0f124972cf84f83bf094c0</sha1>
  </revision>
  <revision>
    <id>6624384</id>
    <parentid>6624378</parentid>
    <timestamp>2024-07-09T09:49:26Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Globální šablony to musí umožňovat, ale v praxi se tyto věci stále často kopírují napříč wikinami a je třeba s tím také počítat."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88388" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.

Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony.

Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd.

Globální šablony to musí umožňovat, ale v praxi se tyto věci stále často kopírují napříč wikinami a je třeba s tím také počítat.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some parameter values can be reliably and predictably converted automatically, and the global templates infrastructure must support this. For example, number formats and digit characters are often different in Burmese, in languages of India, and in some other languages, but they can be reliably converted using simple software.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>dfde72de140c993744a354fbdb7af921e5a0674c</sha1>
  </revision>
  <revision>
    <id>6624388</id>
    <parentid>6624384</parentid>
    <timestamp>2024-07-09T09:49:48Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Některé hodnoty parametrů lze spolehlivě a předvídatelně převádět automaticky a infrastruktura globálních šablon to musí podporovat. Například formáty čísel a číslicové znaky se často liší v barmštině, v jazycích Indie a v některých dalších jazycích, ale lze je spolehlivě převést pomocí jednoduchého softwaru."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88352" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.

Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony.

Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd.

Globální šablony to musí umožňovat, ale v praxi se tyto věci stále často kopírují napříč wikinami a je třeba s tím také počítat.

Některé hodnoty parametrů lze spolehlivě a předvídatelně převádět automaticky a infrastruktura globálních šablon to musí podporovat. Například formáty čísel a číslicové znaky se často liší v barmštině, v jazycích Indie a v některých dalších jazycích, ale lze je spolehlivě převést pomocí jednoduchého softwaru.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Valid and functional parameter values must be usable in multiple languages and must not be language-specific. For example, using “yes” and “no” as boolean values is too English-centric. This probably doesn’t require changes in the infrastructure, but mostly an agreement in the cross-wiki template development community on good practices for adaptation to all languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>0045c3a36ad8189bd7aece62df9ba6a950771f19</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Wikimedia Apps/Android Suggested edits/225/ja</title>
  <ns>1198</ns>
  <id>1992352</id>
  <revision>
    <id>6624375</id>
    <timestamp>2024-07-09T09:48:41Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "50 件を超える編集を行ったログイン ユーザー"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="61" xml:space="preserve">50 件を超える編集を行ったログイン ユーザー</text>
    <sha1>c6aca76d679b327b636f95e2472aa191c1f47c6c</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Global templates/Proposed specification/99/cs</title>
  <ns>1198</ns>
  <id>1992353</id>
  <revision>
    <id>6624377</id>
    <timestamp>2024-07-09T09:48:57Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="117" xml:space="preserve">Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd.</text>
    <sha1>cfeecb26d71225c0d19a71ce264d10e265fb43ad</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Wikimedia Apps/Android Suggested edits/226/ja</title>
  <ns>1198</ns>
  <id>1992354</id>
  <revision>
    <id>6624379</id>
    <timestamp>2024-07-09T09:49:17Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "50 件を超える編集を行ったログイン ユーザー"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="61" xml:space="preserve">50 件を超える編集を行ったログイン ユーザー</text>
    <sha1>c6aca76d679b327b636f95e2472aa191c1f47c6c</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Extension:Translate/46/pl</title>
  <ns>1198</ns>
  <id>1992355</id>
  <revision>
    <id>6624381</id>
    <timestamp>2024-07-09T09:49:21Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* [$twn Tłumaczyć tę rozszerzenie na $1]"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="43" xml:space="preserve">* [$twn Tłumaczyć tę rozszerzenie na $1]</text>
    <sha1>c018ad14fba4ab749a3a4b3abcc1ed8d52bb11fd</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Global templates/Proposed specification/100/cs</title>
  <ns>1198</ns>
  <id>1992356</id>
  <revision>
    <id>6624383</id>
    <timestamp>2024-07-09T09:49:25Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Globální šablony to musí umožňovat, ale v praxi se tyto věci stále často kopírují napříč wikinami a je třeba s tím také počítat."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="147" xml:space="preserve">Globální šablony to musí umožňovat, ale v praxi se tyto věci stále často kopírují napříč wikinami a je třeba s tím také počítat.</text>
    <sha1>9c94d53118f3b0659216886dc363a0a894378e07</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Extension:Translate/47/pl</title>
  <ns>1198</ns>
  <id>1992357</id>
  <revision>
    <id>6624385</id>
    <timestamp>2024-07-09T09:49:33Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* [[$1|Otwarte błędy i prośby o funkcje]]."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="45" xml:space="preserve">* [[$1|Otwarte błędy i prośby o funkcje]].</text>
    <sha1>aaad453f59969a4157cc1ed0fdd47653ec37851e</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Global templates/Proposed specification/101/cs</title>
  <ns>1198</ns>
  <id>1992358</id>
  <revision>
    <id>6624387</id>
    <timestamp>2024-07-09T09:49:47Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Některé hodnoty parametrů lze spolehlivě a předvídatelně převádět automaticky a infrastruktura globálních šablon to musí podporovat. Například formáty čísel a číslicové znaky se často liší v barmštině, v jazycích Indie a v některých dalších jazycích, ale lze je spolehlivě převést pomocí jednoduchého softwaru."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="348" xml:space="preserve">Některé hodnoty parametrů lze spolehlivě a předvídatelně převádět automaticky a infrastruktura globálních šablon to musí podporovat. Například formáty čísel a číslicové znaky se často liší v barmštině, v jazycích Indie a v některých dalších jazycích, ale lze je spolehlivě převést pomocí jednoduchého softwaru.</text>
    <sha1>fbbd2db625a36f92b69dc3df945c969c7f3b1d6c</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Extension:Translate/48/pl</title>
  <ns>1198</ns>
  <id>1992359</id>
  <revision>
    <id>6624389</id>
    <timestamp>2024-07-09T09:50:02Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* [[$1|Więcej otwartych błędów i próśb o funkcje w $2]]."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="62" xml:space="preserve">* [[$1|Więcej otwartych błędów i próśb o funkcje w $2]].</text>
    <sha1>738681e2dccec78c7f873d51eca5cf3bf5df0d5b</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Translations:Extension:Translate/49/pl</title>
  <ns>1198</ns>
  <id>1992360</id>
  <revision>
    <id>6624391</id>
    <timestamp>2024-07-09T09:50:15Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "* [[$help|Przeczytaj i przetłumacz dokumentację rozszerzenia Translate]]."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="75" xml:space="preserve">* [[$help|Przeczytaj i przetłumacz dokumentację rozszerzenia Translate]].</text>
    <sha1>ec0f057d5e4ce551c7a09842c0e5e10132757736</sha1>
  </revision>
</page>
<page arvcontinue="20240709094545|6624344">
  <title>Topic:Y87i5vl2d6bnvs1i</title>
  <ns>2600</ns>
  <id>1992361</id>
  <revision>
    <id>6624393</id>
    <timestamp>2024-07-09T09:50:28Z</timestamp>
    <contributor>
      <username>Flow talk page manager</username>
      <id>1946968</id>
    </contributor>
    <comment>/* This page has been converted into a Structured Discussions board */</comment>
    <model>flow-board</model>
    <format>application/json</format>
    <text bytes="1" xml:space="preserve">{"flow-workflow":"y87i5vl2d6bnvs1i"}</text>
    <sha1>c304729dd4462a38088103a1a5e0d825199923c8</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Extension:Translate/6/pl</title>
  <ns>1198</ns>
  <id>186700</id>
  <revision>
    <id>6624394</id>
    <parentid>6624243</parentid>
    <timestamp>2024-07-09T09:51:25Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="225" xml:space="preserve">Rozszerzenie $1 sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry jako oprogramowanie tłumaczące i do zarządzania wielojęzycznymi wiki w rozsądny sposób.</text>
    <sha1>571e4da2dd3d6806c6ea83587ed03fb454a27542</sha1>
  </revision>
  <revision>
    <id>6624418</id>
    <parentid>6624394</parentid>
    <timestamp>2024-07-09T09:55:17Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="235" xml:space="preserve">Rozszerzenie $1/Translate sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry jako oprogramowanie tłumaczące i do zarządzania wielojęzycznymi wiki w rozsądny sposób.</text>
    <sha1>1585de95c7e1d95ca50c4738c4225b946eb873fe</sha1>
  </revision>
  <revision>
    <id>6624432</id>
    <parentid>6624418</parentid>
    <timestamp>2024-07-09T09:56:22Z</timestamp>
    <contributor>
      <username>83.20.226.217</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="232" xml:space="preserve">Rozszerzenie Translate sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry jako oprogramowanie tłumaczące i do zarządzania wielojęzycznymi wiki w rozsądny sposób.</text>
    <sha1>e3ddc7e44cb7686a2c6796878f9aadf65f5f1631</sha1>
  </revision>
  <revision>
    <id>6624436</id>
    <parentid>6624432</parentid>
    <timestamp>2024-07-09T09:56:44Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="238" xml:space="preserve">Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry jako oprogramowanie tłumaczące i do zarządzania wielojęzycznymi wiki w rozsądny sposób.</text>
    <sha1>bbafc900fc397ec56e4663dcaea22f0f587f2caf</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Extension:Translate/pl</title>
  <ns>102</ns>
  <id>170399</id>
  <revision>
    <id>6624395</id>
    <parentid>6624392</parentid>
    <timestamp>2024-07-09T09:51:26Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10006" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry jako oprogramowanie tłumaczące i do zarządzania wielojęzycznymi wiki w rozsądny sposób.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.
Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić.
Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód.
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
Jedna osoba mówi na szwahili, a druga pracuje na japońsku.
Ponadto, znaczysz strony do tłumaczenia.
Kontrolizujesz, czy włączyć szablony lub wykluczyć zmienne w wywołaniach szablonu.
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – rozszerzenie, aby ułatwić komunikację z tłumaczami.
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

Nie należy je mylić z:

* {{ll|Extension:ContentTranslation}} tool – używane do jednorazowego tłumaczenia stron wiki z jednego języka do drugiego.
* {{ll|Extension:TranslateWiki}}
* [[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] dla tłumaczenia.

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Tłumaczyć tę rozszerzenie na translatewiki.net]
* [[phab:project/sprint/board/271/query/open/|Otwarte błędy i prośby o funkcje]].
* [[translatewiki:Issues and features|Więcej otwartych błędów i próśb o funkcje w translatewiki.net]].
* [[Special:MyLanguage/Help:Extension:Translate|Przeczytaj i przetłumacz dokumentację rozszerzenia Translate]].

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>0678fd0ab0e6c3ffdbc3ea42eb111faecea76248</sha1>
  </revision>
  <revision>
    <id>6624419</id>
    <parentid>6624395</parentid>
    <timestamp>2024-07-09T09:55:18Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10016" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate'''/Translate sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry jako oprogramowanie tłumaczące i do zarządzania wielojęzycznymi wiki w rozsądny sposób.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.
Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić.
Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód.
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
Jedna osoba mówi na szwahili, a druga pracuje na japońsku.
Ponadto, znaczysz strony do tłumaczenia.
Kontrolizujesz, czy włączyć szablony lub wykluczyć zmienne w wywołaniach szablonu.
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – rozszerzenie, aby ułatwić komunikację z tłumaczami.
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

Nie należy je mylić z:

* {{ll|Extension:ContentTranslation}} tool – używane do jednorazowego tłumaczenia stron wiki z jednego języka do drugiego.
* {{ll|Extension:TranslateWiki}}
* [[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] dla tłumaczenia.

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Tłumaczyć tę rozszerzenie na translatewiki.net]
* [[phab:project/sprint/board/271/query/open/|Otwarte błędy i prośby o funkcje]].
* [[translatewiki:Issues and features|Więcej otwartych błędów i próśb o funkcje w translatewiki.net]].
* [[Special:MyLanguage/Help:Extension:Translate|Przeczytaj i przetłumacz dokumentację rozszerzenia Translate]].

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>2e3ca200f94e17948ce1a96fd467f48f9d1a312c</sha1>
  </revision>
  <revision>
    <id>6624433</id>
    <parentid>6624419</parentid>
    <timestamp>2024-07-09T09:56:23Z</timestamp>
    <contributor>
      <username>83.20.226.217</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10000" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie Translate sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry jako oprogramowanie tłumaczące i do zarządzania wielojęzycznymi wiki w rozsądny sposób.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.
Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić.
Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód.
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
Jedna osoba mówi na szwahili, a druga pracuje na japońsku.
Ponadto, znaczysz strony do tłumaczenia.
Kontrolizujesz, czy włączyć szablony lub wykluczyć zmienne w wywołaniach szablonu.
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – rozszerzenie, aby ułatwić komunikację z tłumaczami.
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

Nie należy je mylić z:

* {{ll|Extension:ContentTranslation}} tool – używane do jednorazowego tłumaczenia stron wiki z jednego języka do drugiego.
* {{ll|Extension:TranslateWiki}}
* [[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] dla tłumaczenia.

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Tłumaczyć tę rozszerzenie na translatewiki.net]
* [[phab:project/sprint/board/271/query/open/|Otwarte błędy i prośby o funkcje]].
* [[translatewiki:Issues and features|Więcej otwartych błędów i próśb o funkcje w translatewiki.net]].
* [[Special:MyLanguage/Help:Extension:Translate|Przeczytaj i przetłumacz dokumentację rozszerzenia Translate]].

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>cc65551e779ad56689272a427bdd6a6b8405981f</sha1>
  </revision>
  <revision>
    <id>6624437</id>
    <parentid>6624433</parentid>
    <timestamp>2024-07-09T09:56:45Z</timestamp>
    <contributor>
      <username>2A01:114F:61B:A600:4098:238D:AF4C:EF61</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="10006" xml:space="preserve">&lt;languages/&gt;
{{Extension
|status    = stable
|type1     = special
|type2     = locale
|type3     = api
|type4     = parser function
|newhook1  = Translate:GettextFFS:headerFields
|newhook2  = Translate:MessageGroupStats:isIncluded
|newhook3  = Translate:modifyMessageGroupStates
|newhook4  = Translate:newTranslation
|newhook5  = TranslateBeforeAddModules
|newhook6  = TranslateEventMessageGroupStateChange
|newhook7  = TranslateEventMessageMembershipChange
|newhook8  = TranslateEventTranslationReview
|newhook9  = TranslateGetAPIMessageGroupsParameterList
|newhook10 = TranslateGetAPIMessageGroupsPropertyDescs
|newhook11 = TranslateGetBoxes
|newhook12 = TranslateGetSpecialTranslateOptions
|newhook13 = TranslateInitGroupLoaders
|newhook14 = TranslateMessageGroupPathVariables
|newhook15 = TranslatePostInitGroups
|newhook16 = TranslatePrefillTranslation
|newhook17 = TranslateProcessAPIMessageGroupsProperties
|newhook18 = TranslateSupportedLanguages
|newhook19 = TranslateTranslationAids
|author    = Niklas Laxström, Siebrand Mazeland i inni
|image     = Translate_manual_-_Page_example_-_19._Documentation.png
|version   = 
|mediawiki = 
|compatibility policy = master
|download  = {{ll|MLEB|2=Zawarte w pakiecie rozszerzeń językowych}}
----
{{WikimediaDownload|phab=ETRA}}
|readme    = {{ll|Help:Extension:Translate|2=Dokumentacja użytkownika}}
|changelog = {{GerritLog|Translate}}
|description = Wykorzystuje tłumaczenie i korekty w wiki
|example   = [[translatewiki:Special:Translate|Translatewiki.net]] - lub [//meta.wikimedia.org/w/index.php?title=Special%3ATranslate&amp;taction=translate&amp;group=page-Terms+of+use&amp;task=view spróbuj jak przetłumaczyć stronę teraz].
|pagedrive1 = true
|bugzilla  = Translate
|composer  = mediawiki/translate
|translate = ext-translate-0-all
|table1    = revtag
|table2    = translate_groupreviews
|table3    = translate_groupstats
|table4    = translate_messageindex
|table5    = translate_metadata
|table6    = translate_reviews
|table7    = translate_sections
|table8    = translate_stash
|table9    = translate_tms
|table10   = translate_tmt
|table11   = translate_tmf
|table12   = translate_cache
|table13   = translate_translatable_bundles
}}
{{Extension-Translate}}

&lt;div class="mw-translate-fuzzy"&gt;
Rozszerzenie '''Translate''' sprawia, że MediaWiki jest potężnym narzędziem do tłumaczenia każdego rodzaju tekstu. Jest szczególnie dobry jako oprogramowanie tłumaczące i do zarządzania wielojęzycznymi wiki w rozsądny sposób.
&lt;/div&gt;

&lt;span id="Features"&gt;&lt;/span&gt;
== Funkcje ==

Rozszerzenie tłumaczeń ma wiele funkcji przeznaczonych specjalnie dla tłumaczy, a integracja back-end z aktualnym kodem źródłowym jest tak łatwa, jak to tylko możliwe. Tymczasem wszystko działa w [[Special:MyLanguage/How does MediaWiki work?|MediaWiki]], co pozwala użytkownikom na prawie nieograniczony stopień swobody komunikacji i samoorganizacji.

Wśród cech:

* '''Strukturalne tłumaczenie stron wiki''', z różnych języków na tej samej wiki.
* '''Lokalizacja w wiki i eksportowanie komunikatów interfejsu oprogramowania (lub prawie wszystkiego)'''.
* '''Internetowe tłumaczenie i korekta [[wmfblog:2013/03/25/redesigning-the-translation-experience-an-overview/|interfejsu]], a także eksport i import oparty na gettext do tłumaczenia off-line'''.
* '''Różne pomoce ułatwiające pracę tłumaczom:'''
** wyświetlanie tłumaczeń w innych językach zdefiniowanych na całym świecie, opcjonalnie rozszerzone z językami zdefiniowanymi przez użytkownika;
** współpraca w edycji dokumentacji wykorzystania i kontekstu wiadomości;
** pamięć tłumaczeń i tłumaczenie maszynowe z narzędziami zewnętrznymi (Apertium, Microsoft Translator, Yandex.Translate);
** wyświetlanie najnowszej zmiany w wiadomości źródłowej;
** ostrzeżenia o częstych błędach, takich jak niewykorzystywane parametry.
* Wykonane z góry moduły różnych produktów open source, które można użyć jako przykład.
** Obsługa różnych formatów, w tym: PHP, Java properties, Gettext, YAML i AndroidXml (zobacz {{git file|action=tree|project=mediawiki/extensions/Translate|file=ffs|branch=HEAD|text=full FFS list}} i [[Special:MyLanguage/Help:Extension:Translate/File format support|File format support]]).
* Wszechstronny system wtykujący, który ułatwia dodanie nowych projektów jako grupy wiadomości.
* Różne statystyki:
** procenty zakończenia tłumaczenia dla wszystkich grup wiadomości we wszystkich językach obsługiwanych;
** procenty zakończenia tłumaczenia we wszystkich językach obsługiwanych dla każdej grupy obsługiwanych wiadomości;
** narzędzie do tworzenia wykresów aktywności w czasie. Może wyświetlać liczbę edycji lub aktywnych użytkowników codziennie lub godzinowo i zawiera wiele filtrów;
** przegląd w chmurze aktywnych języków i tłumaczy.

Rozszerzenie Translate, ze względu na dużą bazę użytkowników, jest potwierdzone jako kompatybilne ze wszystkimi w miarę najnowszymi przeglądarkami, z wyjątkiem kilku drobnych (stylowych) usterek, które zostały szybko naprawione.

&lt;gallery widths="400px" heights="220px" mode="nolines"&gt;
File:Making Multilingual Wikis a Reality - Niklas Laxström and Claus Christensen.ogv|''Urzeczywistnienie wielojęzycznych wiki'': ta prezentacja pokazuje, jak rozszerzenie Translate może uczynić wiki prawdziwie wielojęzyczną, bazując na doświadczeniach wiki KDE UserBase.
File:Translating the wiki way.webm|Niklas Laxström, ''Translating the wiki way: Simple, fast, fun'', Wikimania 2012 (slajdy dostępne).
&lt;/gallery&gt;

&lt;span id="Support_and_documentation"&gt;&lt;/span&gt;
== Wsparcie i dokumentacja ==

* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Installation|Instalacja]]
* Zobacz: [[Special:MyLanguage/Help:Extension:Translate/Configuration|Konfiguracja]]
* Zobacz [[Special:MyLanguage/Help:Extension:Translate|dokumentację użytkownika]] — zawiera samouczki
* Zobacz [[Special:MyLanguage/Help:Extension:Translate/Getting started with Translate extension development|Rozpoczęcie pracy z rozszerzeniem Translate]].
* Podsparcie na żywo na kanale IRC #translatewiki w Libera Chat (najlepsze godziny są w dni i wieczory europejskie)
* Proszę zgłosić wszystkie problemy i żądania funkcji w [https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Translate problem trackera]

Rozszerzenie Translate zostało pierwotnie opracowane przez [[Użytkownik:Nikerabbit]]; wielu innych użytkowników, takich jak [[Użytkownik:Raymond]], [[Użytkownik:SPQRobin]] i zespół Wikimedia Language, wniosło swój wkład w jego kod i dokumentację.


&lt;span id="Prominent_users_of_the_Translate_extension"&gt;&lt;/span&gt;
== Wybitni użytkownicy rozszerzenia Translate ==
* https://translatewiki.net – Największa witryna i społeczność oparta na wiki dla tłumaczenia interfejsu oprogramowania open source.
* https://userbase.kde.org – Dokumentation wiki dla projektu KDE, który wykorzystuje funkcję tłumaczenia stron w dużej mierze.
* https://meta.wikimedia.org – Tłumaczy treść wiki i używa funkcji grupy stanów. Przekład i przegląd tłumaczeń jest włączony prawie dla wszystkich użytkowników wiki.
* https://wiki.documentfoundation.org/

Zobacz więcej na [[w:translatewiki.net#Notable uses|znane użycia translatewiki.net w Wikipedii]].

&lt;span id="Testimonials"&gt;&lt;/span&gt;
=== Referencje ===

Tom Hutchison z Joomli:
{{quotation|1=
Rozszerzenie Translate umożliwia połączenie z usługą tłumaczenia i może automatycznie wypełnić tłumaczenie. Jednocześnie tłumacz może dokonać zmian, aby nie tworzyć wielu stron z błędnymi tłumaczeniami.

To ok, jeśli są na różnych kontynentach.
To jest faktycznie plus, ponieważ praca jest wykonywana 24 godziny na dobę.
Potrzebują grupy wsparcia.
Czy wszyscy będą mogli czytać po angielsku, jeśli dobrze tłumaczą? Naucz kilka prostych znaków wiki, takich jak linki i co robić z kategoriami.
Następnie pomagają innym, którzy z kolei pomagają innym.
Mamy ponad 40 osób w rozmowie, które pomagają sobie nawzajem i jednocześnie się bawią.
Wszyscy bali się wiki, ale nie mogli uwierzyć, jak łatwo było to zrobić.
Właściwie czekają na mnie na więcej tłumaczeń, bo nie mogę iść z nimi naprzód.
Wiem, że jest tylko 1 tłumaczący ten język lub tamten język.
My też to mamy.
Jedna osoba mówi na szwahili, a druga pracuje na japońsku.
Ponadto, znaczysz strony do tłumaczenia.
Kontrolizujesz, czy włączyć szablony lub wykluczyć zmienne w wywołaniach szablonu.
}}

&lt;span id="See_also"&gt;&lt;/span&gt;
== Zobacz też ==
* [[Help:Extension:Translate]]
* [[m:Template:Translatable template|Translatable template]].
* {{ll|Extension:TranslationNotifications}} – rozszerzenie, aby ułatwić komunikację z tłumaczami.
* [[Help:Extension:Translate/Page translation example]]
* [[Extension:Semantic Interlanguage Links|Extension:Semantic Interlanguage Links]]

Nie należy je mylić z:

* {{ll|Extension:ContentTranslation}} tool – używane do jednorazowego tłumaczenia stron wiki z jednego języka do drugiego.
* {{ll|Extension:TranslateWiki}}
* [[m:Special:MyLanguage/Abstract Wikipedia|m:Abstract Wikipedia]] dla tłumaczenia.

&lt;span id="How_to_contribute"&gt;&lt;/span&gt;
== Jak pomóc? ==

* [https://translatewiki.net/w/i.php?title=Special:Translate&amp;group=ext-translate-0-all Tłumaczyć tę rozszerzenie na translatewiki.net]
* [[phab:project/sprint/board/271/query/open/|Otwarte błędy i prośby o funkcje]].
* [[translatewiki:Issues and features|Więcej otwartych błędów i próśb o funkcje w translatewiki.net]].
* [[Special:MyLanguage/Help:Extension:Translate|Przeczytaj i przetłumacz dokumentację rozszerzenia Translate]].

{{OnWikimedia}}
{{Used by}}

[[Category:Extension:Translate{{#translation:}}| ]]
[[Category:Localisation extensions{{#translation:}}]]
[[Category:Menu extensions{{#translation:}}]]
[[Category:Language Engineering{{#translation:}}]]
[[Category:Dictionary extensions{{#translation:}}]]</text>
    <sha1>0678fd0ab0e6c3ffdbc3ea42eb111faecea76248</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Wikimedia Apps/Android Suggested edits/227/ja</title>
  <ns>1198</ns>
  <id>1992362</id>
  <revision>
    <id>6624396</id>
    <timestamp>2024-07-09T09:51:40Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "50 件を超える編集を行ったログイン ユーザー"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="61" xml:space="preserve">50 件を超える編集を行ったログイン ユーザー</text>
    <sha1>c6aca76d679b327b636f95e2472aa191c1f47c6c</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Wikimedia Apps/Android Suggested edits/ja</title>
  <ns>0</ns>
  <id>892930</id>
  <revision>
    <id>6624397</id>
    <parentid>6624380</parentid>
    <timestamp>2024-07-09T09:51:41Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "50 件を超える編集を行ったログイン ユーザー"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30814" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with more than 50 edits&lt;/span&gt;
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit Patrol&lt;/span&gt; }} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights on either of the following wikis: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia&lt;/span&gt;
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;体言止めで記述してください。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some users may see a button that says "see suggested descriptions" which will show them 1-2 machine generated article descriptions.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We are testing a model that summarizes a Wikipedia article into a description of the article.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Our hope is that it will help improve the quality of article descriptions published by Android app users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;When a suggestion is selected, it can be modified or deleted.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The experiment started April 3, 2023 in select language wikis and will run for approximately 30 days.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can read the full details about the experiment on the dedicated [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|project page]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Information about the model we are using to generate the article descriptions can be found [[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|here]].&lt;/span&gt;

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Guidelines for writing short descriptions on English Wikipedia&lt;/span&gt;]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>d69111b923221bf800a6905e08a3e90074db132f</sha1>
  </revision>
  <revision>
    <id>6624399</id>
    <parentid>6624397</parentid>
    <timestamp>2024-07-09T09:52:08Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "50 件を超える編集を行ったログイン ユーザー"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30780" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit Patrol&lt;/span&gt; }} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights on either of the following wikis: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia&lt;/span&gt;
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;体言止めで記述してください。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some users may see a button that says "see suggested descriptions" which will show them 1-2 machine generated article descriptions.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We are testing a model that summarizes a Wikipedia article into a description of the article.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Our hope is that it will help improve the quality of article descriptions published by Android app users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;When a suggestion is selected, it can be modified or deleted.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The experiment started April 3, 2023 in select language wikis and will run for approximately 30 days.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can read the full details about the experiment on the dedicated [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|project page]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Information about the model we are using to generate the article descriptions can be found [[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|here]].&lt;/span&gt;

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Guidelines for writing short descriptions on English Wikipedia&lt;/span&gt;]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>72359eadc50917ee80b576f20ed32d37857b8afb</sha1>
  </revision>
  <revision>
    <id>6624401</id>
    <parentid>6624399</parentid>
    <timestamp>2024-07-09T09:52:27Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "編集パトロール"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30734" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights on either of the following wikis: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia&lt;/span&gt;
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;体言止めで記述してください。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some users may see a button that says "see suggested descriptions" which will show them 1-2 machine generated article descriptions.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We are testing a model that summarizes a Wikipedia article into a description of the article.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Our hope is that it will help improve the quality of article descriptions published by Android app users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;When a suggestion is selected, it can be modified or deleted.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The experiment started April 3, 2023 in select language wikis and will run for approximately 30 days.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can read the full details about the experiment on the dedicated [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|project page]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Information about the model we are using to generate the article descriptions can be found [[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|here]].&lt;/span&gt;

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Guidelines for writing short descriptions on English Wikipedia&lt;/span&gt;]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>c07f91ed1afa6d1fad3535f1b3c31f0a0ce6d68a</sha1>
  </revision>
  <revision>
    <id>6624403</id>
    <parentid>6624401</parentid>
    <timestamp>2024-07-09T09:52:57Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: $1"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30706" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;体言止めで記述してください。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some users may see a button that says "see suggested descriptions" which will show them 1-2 machine generated article descriptions.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We are testing a model that summarizes a Wikipedia article into a description of the article.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Our hope is that it will help improve the quality of article descriptions published by Android app users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;When a suggestion is selected, it can be modified or deleted.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The experiment started April 3, 2023 in select language wikis and will run for approximately 30 days.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can read the full details about the experiment on the dedicated [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|project page]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Information about the model we are using to generate the article descriptions can be found [[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|here]].&lt;/span&gt;

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Guidelines for writing short descriptions on English Wikipedia&lt;/span&gt;]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>7bcd028f56b02520b7cf292dfa996ae314600b8e</sha1>
  </revision>
  <revision>
    <id>6624405</id>
    <parentid>6624403</parentid>
    <timestamp>2024-07-09T09:53:40Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30932" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Some users may see a button that says "see suggested descriptions" which will show them 1-2 machine generated article descriptions.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We are testing a model that summarizes a Wikipedia article into a description of the article.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Our hope is that it will help improve the quality of article descriptions published by Android app users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;When a suggestion is selected, it can be modified or deleted.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The experiment started April 3, 2023 in select language wikis and will run for approximately 30 days.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can read the full details about the experiment on the dedicated [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|project page]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Information about the model we are using to generate the article descriptions can be found [[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|here]].&lt;/span&gt;

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Guidelines for writing short descriptions on English Wikipedia&lt;/span&gt;]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>95a2f4bbd9017d989e7890221e676c9012b6b57a</sha1>
  </revision>
  <revision>
    <id>6624407</id>
    <parentid>6624405</parentid>
    <timestamp>2024-07-09T09:54:12Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30940" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;We are testing a model that summarizes a Wikipedia article into a description of the article.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Our hope is that it will help improve the quality of article descriptions published by Android app users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;When a suggestion is selected, it can be modified or deleted.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The experiment started April 3, 2023 in select language wikis and will run for approximately 30 days.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can read the full details about the experiment on the dedicated [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|project page]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Information about the model we are using to generate the article descriptions can be found [[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|here]].&lt;/span&gt;

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Guidelines for writing short descriptions on English Wikipedia&lt;/span&gt;]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>76cb9c04d13303e24954234f0265e1a748524cfb</sha1>
  </revision>
  <revision>
    <id>6624410</id>
    <parentid>6624407</parentid>
    <timestamp>2024-07-09T09:54:29Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30897" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Our hope is that it will help improve the quality of article descriptions published by Android app users.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;When a suggestion is selected, it can be modified or deleted.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The experiment started April 3, 2023 in select language wikis and will run for approximately 30 days.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can read the full details about the experiment on the dedicated [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|project page]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Information about the model we are using to generate the article descriptions can be found [[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|here]].&lt;/span&gt;

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Guidelines for writing short descriptions on English Wikipedia&lt;/span&gt;]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>23329cc9e52bf845742e7d20369eb68d320384ed</sha1>
  </revision>
  <revision>
    <id>6624414</id>
    <parentid>6624410</parentid>
    <timestamp>2024-07-09T09:54:46Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30853" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;When a suggestion is selected, it can be modified or deleted.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The experiment started April 3, 2023 in select language wikis and will run for approximately 30 days.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can read the full details about the experiment on the dedicated [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|project page]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Information about the model we are using to generate the article descriptions can be found [[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|here]].&lt;/span&gt;

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Guidelines for writing short descriptions on English Wikipedia&lt;/span&gt;]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>f4ad2f7805f117395c5ad8b0566cc217a01359c0</sha1>
  </revision>
  <revision>
    <id>6624417</id>
    <parentid>6624414</parentid>
    <timestamp>2024-07-09T09:55:02Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "提案が選択されると、変更または削除できます。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30802" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The experiment started April 3, 2023 in select language wikis and will run for approximately 30 days.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can read the full details about the experiment on the dedicated [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|project page]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Information about the model we are using to generate the article descriptions can be found [[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|here]].&lt;/span&gt;

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Guidelines for writing short descriptions on English Wikipedia&lt;/span&gt;]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>ca211f324f209f9a51b25f9ef4a6dd6406a7ad4d</sha1>
  </revision>
  <revision>
    <id>6624421</id>
    <parentid>6624417</parentid>
    <timestamp>2024-07-09T09:55:21Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30763" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can read the full details about the experiment on the dedicated [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|project page]].&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Information about the model we are using to generate the article descriptions can be found [[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|here]].&lt;/span&gt;

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Guidelines for writing short descriptions on English Wikipedia&lt;/span&gt;]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>bda9027e6d795d81b2fdf251c9632810939ae1b9</sha1>
  </revision>
  <revision>
    <id>6624425</id>
    <parentid>6624421</parentid>
    <timestamp>2024-07-09T09:55:52Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "実験の詳細については、専用の [[$1|プロジェクト ページ]] をご覧ください。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30722" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Information about the model we are using to generate the article descriptions can be found [[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|here]].&lt;/span&gt;

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Guidelines for writing short descriptions on English Wikipedia&lt;/span&gt;]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>3000bdc8bab98566bc1fa8515fbd49eafd106b6e</sha1>
  </revision>
  <revision>
    <id>6624429</id>
    <parentid>6624425</parentid>
    <timestamp>2024-07-09T09:56:12Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "記事の説明を生成するために使用するモデルに関する情報は、[[$1|ここ]] でご覧いただけます。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30691" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Guidelines for writing short descriptions on English Wikipedia&lt;/span&gt;]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>d9da46f52ed0cbfe735db45356d9a74a675cb62b</sha1>
  </revision>
  <revision>
    <id>6624435</id>
    <parentid>6624429</parentid>
    <timestamp>2024-07-09T09:56:35Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "英語版ウィキペディアで短い説明を書くためのガイドライン"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30654" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像のキャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>9f284bbef1e4fa1e7965ff33ea9e18be80d1b435</sha1>
  </revision>
  <revision>
    <id>6624441</id>
    <parentid>6624435</parentid>
    <timestamp>2024-07-09T09:57:01Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30651" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像のキャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>fb589477217f0102a937f9c9ac7d820a2f29b3f0</sha1>
  </revision>
  <revision>
    <id>6624443</id>
    <parentid>6624441</parentid>
    <timestamp>2024-07-09T09:57:09Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30648" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The search window allows users to find the most relevant Wikidata entity IDs for a given image&lt;/span&gt;|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>0b641a5d5de69fca7f73240fd94d7a56601c1faf</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Wikimedia Apps/Android Suggested edits/228/ja</title>
  <ns>1198</ns>
  <id>1992363</id>
  <revision>
    <id>6624398</id>
    <timestamp>2024-07-09T09:52:07Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "50 件を超える編集を行ったログイン ユーザー"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="61" xml:space="preserve">50 件を超える編集を行ったログイン ユーザー</text>
    <sha1>c6aca76d679b327b636f95e2472aa191c1f47c6c</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Wikimedia Apps/Android Suggested edits/180/ja</title>
  <ns>1198</ns>
  <id>1992364</id>
  <revision>
    <id>6624400</id>
    <timestamp>2024-07-09T09:52:26Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "編集パトロール"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="21" xml:space="preserve">編集パトロール</text>
    <sha1>a938e65291af358a15921b54a399749e0c88d19d</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Wikimedia Apps/Android Suggested edits/229/ja</title>
  <ns>1198</ns>
  <id>1992365</id>
  <revision>
    <id>6624402</id>
    <timestamp>2024-07-09T09:52:57Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: $1"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="101" xml:space="preserve">次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: $1</text>
    <sha1>d48ae587612eebd23df53b6f53c9f5e16e0193ac</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Wikimedia Apps/Android Suggested edits/12/ja</title>
  <ns>1198</ns>
  <id>918779</id>
  <revision>
    <id>6624404</id>
    <parentid>6354268</parentid>
    <timestamp>2024-07-09T09:53:39Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="268" xml:space="preserve">英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。</text>
    <sha1>43b5c70b4b5879bf210ffbc1481c89f3e8cf4549</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Wikimedia Apps/Android Suggested edits/120/ja</title>
  <ns>1198</ns>
  <id>1992366</id>
  <revision>
    <id>6624406</id>
    <timestamp>2024-07-09T09:54:11Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="195" xml:space="preserve">一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。</text>
    <sha1>3f83650f36aa37db9eba965c5d2bbd52230c79d8</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Global templates/Proposed specification/439/cs</title>
  <ns>1198</ns>
  <id>1992367</id>
  <revision>
    <id>6624408</id>
    <timestamp>2024-07-09T09:54:29Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Platné a funkční hodnoty parametrů musí být použitelné ve více jazycích a nesmí být specifické pro daný jazyk. Například použití “yes” a “no” jako booleovské hodnoty je příliš orientované na angličtinu. To pravděpodobně nevyžaduje změny v infrastruktuře, ale většinou dohodu v komunitě pro vývoj šablon napříč wikinami na osvědčených postupech pro přizpůsobení všem jazykům."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="427" xml:space="preserve">Platné a funkční hodnoty parametrů musí být použitelné ve více jazycích a nesmí být specifické pro daný jazyk. Například použití “yes” a “no” jako booleovské hodnoty je příliš orientované na angličtinu. To pravděpodobně nevyžaduje změny v infrastruktuře, ale většinou dohodu v komunitě pro vývoj šablon napříč wikinami na osvědčených postupech pro přizpůsobení všem jazykům.</text>
    <sha1>9f740649c6e7f3ca317e0ee990c3ffdbafa9127e</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Wikimedia Apps/Android Suggested edits/121/ja</title>
  <ns>1198</ns>
  <id>1992368</id>
  <revision>
    <id>6624409</id>
    <timestamp>2024-07-09T09:54:29Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="106" xml:space="preserve">私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。</text>
    <sha1>d91a39ec6be1eb1fcc4917c87da33ee218eedd7d</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Global templates/Proposed specification/cs</title>
  <ns>0</ns>
  <id>1991769</id>
  <revision>
    <id>6624411</id>
    <parentid>6624388</parentid>
    <timestamp>2024-07-09T09:54:30Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Platné a funkční hodnoty parametrů musí být použitelné ve více jazycích a nesmí být specifické pro daný jazyk. Například použití “yes” a “no” jako booleovské hodnoty je příliš orientované na angličtinu. To pravděpodobně nevyžaduje změny v infrastruktuře, ale většinou dohodu v komunitě pro vývoj šablon napříč wikinami na osvědčených postupech pro přizpůsobení všem jazykům."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88343" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.

Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony.

Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd.

Globální šablony to musí umožňovat, ale v praxi se tyto věci stále často kopírují napříč wikinami a je třeba s tím také počítat.

Některé hodnoty parametrů lze spolehlivě a předvídatelně převádět automaticky a infrastruktura globálních šablon to musí podporovat. Například formáty čísel a číslicové znaky se často liší v barmštině, v jazycích Indie a v některých dalších jazycích, ale lze je spolehlivě převést pomocí jednoduchého softwaru.

Platné a funkční hodnoty parametrů musí být použitelné ve více jazycích a nesmí být specifické pro daný jazyk. Například použití “yes” a “no” jako booleovské hodnoty je příliš orientované na angličtinu. To pravděpodobně nevyžaduje změny v infrastruktuře, ale většinou dohodu v komunitě pro vývoj šablon napříč wikinami na osvědčených postupech pro přizpůsobení všem jazykům.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Text direction ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>7feab74c8eb19d43a5e7705f74f2ae36aea90b49</sha1>
  </revision>
  <revision>
    <id>6624415</id>
    <parentid>6624411</parentid>
    <timestamp>2024-07-09T09:54:48Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "=== Směr textu ==="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88318" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.

Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony.

Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd.

Globální šablony to musí umožňovat, ale v praxi se tyto věci stále často kopírují napříč wikinami a je třeba s tím také počítat.

Některé hodnoty parametrů lze spolehlivě a předvídatelně převádět automaticky a infrastruktura globálních šablon to musí podporovat. Například formáty čísel a číslicové znaky se často liší v barmštině, v jazycích Indie a v některých dalších jazycích, ale lze je spolehlivě převést pomocí jednoduchého softwaru.

Platné a funkční hodnoty parametrů musí být použitelné ve více jazycích a nesmí být specifické pro daný jazyk. Například použití “yes” a “no” jako booleovské hodnoty je příliš orientované na angličtinu. To pravděpodobně nevyžaduje změny v infrastruktuře, ale většinou dohodu v komunitě pro vývoj šablon napříč wikinami na osvědčených postupech pro přizpůsobení všem jazykům.

&lt;span id="Text_direction"&gt;&lt;/span&gt;
=== Směr textu ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Templates must adapt themselves to the text direction (ltr / rtl) of the wiki in which they are displayed.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>c5068c9f778d738813b1a262e9a95f5dcc5d114f</sha1>
  </revision>
  <revision>
    <id>6624423</id>
    <parentid>6624415</parentid>
    <timestamp>2024-07-09T09:55:27Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Šablony se musí přizpůsobit směru textu (ltr / rtl) wiki, ve které jsou zobrazeny."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88244" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.

Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony.

Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd.

Globální šablony to musí umožňovat, ale v praxi se tyto věci stále často kopírují napříč wikinami a je třeba s tím také počítat.

Některé hodnoty parametrů lze spolehlivě a předvídatelně převádět automaticky a infrastruktura globálních šablon to musí podporovat. Například formáty čísel a číslicové znaky se často liší v barmštině, v jazycích Indie a v některých dalších jazycích, ale lze je spolehlivě převést pomocí jednoduchého softwaru.

Platné a funkční hodnoty parametrů musí být použitelné ve více jazycích a nesmí být specifické pro daný jazyk. Například použití “yes” a “no” jako booleovské hodnoty je příliš orientované na angličtinu. To pravděpodobně nevyžaduje změny v infrastruktuře, ale většinou dohodu v komunitě pro vývoj šablon napříč wikinami na osvědčených postupech pro přizpůsobení všem jazykům.

&lt;span id="Text_direction"&gt;&lt;/span&gt;
=== Směr textu ===

Šablony se musí přizpůsobit směru textu (ltr / rtl) wiki, ve které jsou zobrazeny.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It must be convenient to write a template in a direction-neutral way, with as little explicit right and left alignment as possible.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>4a341a318b83ccc65d65bc6bb6aabcae3713d8e0</sha1>
  </revision>
  <revision>
    <id>6624427</id>
    <parentid>6624423</parentid>
    <timestamp>2024-07-09T09:56:02Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Musí být vhodné psát šablonu směrově neutrálním způsobem s co nejmenším explicitním zarovnáním vpravo a vlevo."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88182" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.

Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony.

Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd.

Globální šablony to musí umožňovat, ale v praxi se tyto věci stále často kopírují napříč wikinami a je třeba s tím také počítat.

Některé hodnoty parametrů lze spolehlivě a předvídatelně převádět automaticky a infrastruktura globálních šablon to musí podporovat. Například formáty čísel a číslicové znaky se často liší v barmštině, v jazycích Indie a v některých dalších jazycích, ale lze je spolehlivě převést pomocí jednoduchého softwaru.

Platné a funkční hodnoty parametrů musí být použitelné ve více jazycích a nesmí být specifické pro daný jazyk. Například použití “yes” a “no” jako booleovské hodnoty je příliš orientované na angličtinu. To pravděpodobně nevyžaduje změny v infrastruktuře, ale většinou dohodu v komunitě pro vývoj šablon napříč wikinami na osvědčených postupech pro přizpůsobení všem jazykům.

&lt;span id="Text_direction"&gt;&lt;/span&gt;
=== Směr textu ===

Šablony se musí přizpůsobit směru textu (ltr / rtl) wiki, ve které jsou zobrazeny.

Musí být vhodné psát šablonu směrově neutrálním způsobem s co nejmenším explicitním zarovnáním vpravo a vlevo.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Bots ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>452d7fbbacfb9444cba1962611719267be396ae1</sha1>
  </revision>
  <revision>
    <id>6624431</id>
    <parentid>6624427</parentid>
    <timestamp>2024-07-09T09:56:15Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "=== Roboti ==="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88152" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.

Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony.

Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd.

Globální šablony to musí umožňovat, ale v praxi se tyto věci stále často kopírují napříč wikinami a je třeba s tím také počítat.

Některé hodnoty parametrů lze spolehlivě a předvídatelně převádět automaticky a infrastruktura globálních šablon to musí podporovat. Například formáty čísel a číslicové znaky se často liší v barmštině, v jazycích Indie a v některých dalších jazycích, ale lze je spolehlivě převést pomocí jednoduchého softwaru.

Platné a funkční hodnoty parametrů musí být použitelné ve více jazycích a nesmí být specifické pro daný jazyk. Například použití “yes” a “no” jako booleovské hodnoty je příliš orientované na angličtinu. To pravděpodobně nevyžaduje změny v infrastruktuře, ale většinou dohodu v komunitě pro vývoj šablon napříč wikinami na osvědčených postupech pro přizpůsobení všem jazykům.

&lt;span id="Text_direction"&gt;&lt;/span&gt;
=== Směr textu ===

Šablony se musí přizpůsobit směru textu (ltr / rtl) wiki, ve které jsou zobrazeny.

Musí být vhodné psát šablonu směrově neutrálním způsobem s co nejmenším explicitním zarovnáním vpravo a vlevo.

&lt;span id="Bots"&gt;&lt;/span&gt;
=== Roboti ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Many templates in many wikis are regularly edited by bots. This capability must be preserved.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>3566f0fafbcbd07e53513a646c9dea66af3dd973</sha1>
  </revision>
  <revision>
    <id>6624439</id>
    <parentid>6624431</parentid>
    <timestamp>2024-07-09T09:56:53Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Mnoho šablon na mnoha wikinách je pravidelně upravováno roboty. Tato schopnost musí být zachována."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88108" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.

Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony.

Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd.

Globální šablony to musí umožňovat, ale v praxi se tyto věci stále často kopírují napříč wikinami a je třeba s tím také počítat.

Některé hodnoty parametrů lze spolehlivě a předvídatelně převádět automaticky a infrastruktura globálních šablon to musí podporovat. Například formáty čísel a číslicové znaky se často liší v barmštině, v jazycích Indie a v některých dalších jazycích, ale lze je spolehlivě převést pomocí jednoduchého softwaru.

Platné a funkční hodnoty parametrů musí být použitelné ve více jazycích a nesmí být specifické pro daný jazyk. Například použití “yes” a “no” jako booleovské hodnoty je příliš orientované na angličtinu. To pravděpodobně nevyžaduje změny v infrastruktuře, ale většinou dohodu v komunitě pro vývoj šablon napříč wikinami na osvědčených postupech pro přizpůsobení všem jazykům.

&lt;span id="Text_direction"&gt;&lt;/span&gt;
=== Směr textu ===

Šablony se musí přizpůsobit směru textu (ltr / rtl) wiki, ve které jsou zobrazeny.

Musí být vhodné psát šablonu směrově neutrálním způsobem s co nejmenším explicitním zarovnáním vpravo a vlevo.

&lt;span id="Bots"&gt;&lt;/span&gt;
=== Roboti ===

Mnoho šablon na mnoha wikinách je pravidelně upravováno roboty. Tato schopnost musí být zachována.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is not supposed to require any changes in the software infrastructure, but it is mentioned here for completeness because it’s an important use case.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>82d603675d3668b5527f92a586abfd8d27ab0684</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Wikimedia Apps/Android Suggested edits/122/ja</title>
  <ns>1198</ns>
  <id>1992369</id>
  <revision>
    <id>6624412</id>
    <timestamp>2024-07-09T09:54:45Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="117" xml:space="preserve">Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。</text>
    <sha1>2c89c9c1aaed8e4bec09110fa3694ae1ea098db8</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Global templates/Proposed specification/80/cs</title>
  <ns>1198</ns>
  <id>1992370</id>
  <revision>
    <id>6624413</id>
    <timestamp>2024-07-09T09:54:46Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "=== Směr textu ==="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="19" xml:space="preserve">=== Směr textu ===</text>
    <sha1>ed16d5adf1f01918bdd4c32e38cd41dfebcc4a0c</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Wikimedia Apps/Android Suggested edits/123/ja</title>
  <ns>1198</ns>
  <id>1992371</id>
  <revision>
    <id>6624416</id>
    <timestamp>2024-07-09T09:55:01Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "提案が選択されると、変更または削除できます。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="66" xml:space="preserve">提案が選択されると、変更または削除できます。</text>
    <sha1>7c9a6c4115c90088eb9fd964048508d5a7949d4c</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Wikimedia Apps/Android Suggested edits/124/ja</title>
  <ns>1198</ns>
  <id>1992372</id>
  <revision>
    <id>6624420</id>
    <timestamp>2024-07-09T09:55:20Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="118" xml:space="preserve">この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。</text>
    <sha1>13b5fa03c5bec04557f02d9fa5ac2f788040e4b0</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Global templates/Proposed specification/154/cs</title>
  <ns>1198</ns>
  <id>1992373</id>
  <revision>
    <id>6624422</id>
    <timestamp>2024-07-09T09:55:27Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Šablony se musí přizpůsobit směru textu (ltr / rtl) wiki, ve které jsou zobrazeny."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88" xml:space="preserve">Šablony se musí přizpůsobit směru textu (ltr / rtl) wiki, ve které jsou zobrazeny.</text>
    <sha1>1f3ccd09009adbdbe37f18a4652a6c9758361830</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Wikimedia Apps/Android Suggested edits/125/ja</title>
  <ns>1198</ns>
  <id>1992374</id>
  <revision>
    <id>6624424</id>
    <timestamp>2024-07-09T09:55:51Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "実験の詳細については、専用の [[$1|プロジェクト ページ]] をご覧ください。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="103" xml:space="preserve">実験の詳細については、専用の [[$1|プロジェクト ページ]] をご覧ください。</text>
    <sha1>8283d09d1ad5a5899b52850abd66d8584af85e97</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Global templates/Proposed specification/81/cs</title>
  <ns>1198</ns>
  <id>1992375</id>
  <revision>
    <id>6624426</id>
    <timestamp>2024-07-09T09:56:01Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Musí být vhodné psát šablonu směrově neutrálním způsobem s co nejmenším explicitním zarovnáním vpravo a vlevo."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="125" xml:space="preserve">Musí být vhodné psát šablonu směrově neutrálním způsobem s co nejmenším explicitním zarovnáním vpravo a vlevo.</text>
    <sha1>6813b589190f27d2a845ddaa57e0b9e58088dd54</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Wikimedia Apps/Android Suggested edits/126/ja</title>
  <ns>1198</ns>
  <id>1992376</id>
  <revision>
    <id>6624428</id>
    <timestamp>2024-07-09T09:56:12Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "記事の説明を生成するために使用するモデルに関する情報は、[[$1|ここ]] でご覧いただけます。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="128" xml:space="preserve">記事の説明を生成するために使用するモデルに関する情報は、[[$1|ここ]] でご覧いただけます。</text>
    <sha1>8fb6be61e5809349e68cbede3119617305ec4606</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Global templates/Proposed specification/377/cs</title>
  <ns>1198</ns>
  <id>1992377</id>
  <revision>
    <id>6624430</id>
    <timestamp>2024-07-09T09:56:14Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "=== Roboti ==="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="14" xml:space="preserve">=== Roboti ===</text>
    <sha1>43e9756b6b44ad49c874f70b2233b48e15182204</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Wikimedia Apps/Android Suggested edits/244/ja</title>
  <ns>1198</ns>
  <id>1992378</id>
  <revision>
    <id>6624434</id>
    <timestamp>2024-07-09T09:56:34Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "英語版ウィキペディアで短い説明を書くためのガイドライン"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="81" xml:space="preserve">英語版ウィキペディアで短い説明を書くためのガイドライン</text>
    <sha1>fedecaa4d4ea879d4aeb14740c678b3f8bc97002</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Global templates/Proposed specification/378/cs</title>
  <ns>1198</ns>
  <id>1992379</id>
  <revision>
    <id>6624438</id>
    <timestamp>2024-07-09T09:56:52Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Mnoho šablon na mnoha wikinách je pravidelně upravováno roboty. Tato schopnost musí být zachována."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="105" xml:space="preserve">Mnoho šablon na mnoha wikinách je pravidelně upravováno roboty. Tato schopnost musí být zachována.</text>
    <sha1>75eecb92129b3f0b2c9d2d7a91f51a19861f81d5</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Wikimedia Apps/Android Suggested edits/35/ja</title>
  <ns>1198</ns>
  <id>1001008</id>
  <revision>
    <id>6624440</id>
    <parentid>6354980</parentid>
    <timestamp>2024-07-09T09:57:00Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="28" xml:space="preserve">==画像キャプション==</text>
    <sha1>3521d1dba305c78a104ed84c001387206d8a1e75</sha1>
  </revision>
</page>
<page arvcontinue="20240709095125|6624394">
  <title>Translations:Wikimedia Apps/Android Suggested edits/17/ja</title>
  <ns>1198</ns>
  <id>1001009</id>
  <revision>
    <id>6624442</id>
    <parentid>6354588</parentid>
    <timestamp>2024-07-09T09:57:08Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="37" xml:space="preserve">=== 画像キャプションとは===</text>
    <sha1>92d46eaf443e545150100eca7a8658a92bf54c04</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Global templates/Proposed specification/379/cs</title>
  <ns>1198</ns>
  <id>1992380</id>
  <revision>
    <id>6624444</id>
    <timestamp>2024-07-09T09:57:21Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "To by nemělo vyžadovat žádné změny v softwarové infrastruktuře, ale je to zde zmíněno pro úplnost, protože jde o důležitý případ použití."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="156" xml:space="preserve">To by nemělo vyžadovat žádné změny v softwarové infrastruktuře, ale je to zde zmíněno pro úplnost, protože jde o důležitý případ použití.</text>
    <sha1>2b700857a60367628642ee97a84fcf729c20b991</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Global templates/Proposed specification/cs</title>
  <ns>0</ns>
  <id>1991769</id>
  <revision>
    <id>6624445</id>
    <parentid>6624439</parentid>
    <timestamp>2024-07-09T09:57:22Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "To by nemělo vyžadovat žádné změny v softwarové infrastruktuře, ale je to zde zmíněno pro úplnost, protože jde o důležitý případ použití."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88053" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.

Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony.

Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd.

Globální šablony to musí umožňovat, ale v praxi se tyto věci stále často kopírují napříč wikinami a je třeba s tím také počítat.

Některé hodnoty parametrů lze spolehlivě a předvídatelně převádět automaticky a infrastruktura globálních šablon to musí podporovat. Například formáty čísel a číslicové znaky se často liší v barmštině, v jazycích Indie a v některých dalších jazycích, ale lze je spolehlivě převést pomocí jednoduchého softwaru.

Platné a funkční hodnoty parametrů musí být použitelné ve více jazycích a nesmí být specifické pro daný jazyk. Například použití “yes” a “no” jako booleovské hodnoty je příliš orientované na angličtinu. To pravděpodobně nevyžaduje změny v infrastruktuře, ale většinou dohodu v komunitě pro vývoj šablon napříč wikinami na osvědčených postupech pro přizpůsobení všem jazykům.

&lt;span id="Text_direction"&gt;&lt;/span&gt;
=== Směr textu ===

Šablony se musí přizpůsobit směru textu (ltr / rtl) wiki, ve které jsou zobrazeny.

Musí být vhodné psát šablonu směrově neutrálním způsobem s co nejmenším explicitním zarovnáním vpravo a vlevo.

&lt;span id="Bots"&gt;&lt;/span&gt;
=== Roboti ===

Mnoho šablon na mnoha wikinách je pravidelně upravováno roboty. Tato schopnost musí být zachována.

To by nemělo vyžadovat žádné změny v softwarové infrastruktuře, ale je to zde zmíněno pro úplnost, protože jde o důležitý případ použití.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Transitioning the templates from the large wikis to central storage ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>6335d21a63b279ed9f0249a873014514f73f4757</sha1>
  </revision>
  <revision>
    <id>6624449</id>
    <parentid>6624445</parentid>
    <timestamp>2024-07-09T09:57:50Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "=== Přechod šablon z velkých wikin do centrálního úložiště ==="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88080" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.

Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony.

Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd.

Globální šablony to musí umožňovat, ale v praxi se tyto věci stále často kopírují napříč wikinami a je třeba s tím také počítat.

Některé hodnoty parametrů lze spolehlivě a předvídatelně převádět automaticky a infrastruktura globálních šablon to musí podporovat. Například formáty čísel a číslicové znaky se často liší v barmštině, v jazycích Indie a v některých dalších jazycích, ale lze je spolehlivě převést pomocí jednoduchého softwaru.

Platné a funkční hodnoty parametrů musí být použitelné ve více jazycích a nesmí být specifické pro daný jazyk. Například použití “yes” a “no” jako booleovské hodnoty je příliš orientované na angličtinu. To pravděpodobně nevyžaduje změny v infrastruktuře, ale většinou dohodu v komunitě pro vývoj šablon napříč wikinami na osvědčených postupech pro přizpůsobení všem jazykům.

&lt;span id="Text_direction"&gt;&lt;/span&gt;
=== Směr textu ===

Šablony se musí přizpůsobit směru textu (ltr / rtl) wiki, ve které jsou zobrazeny.

Musí být vhodné psát šablonu směrově neutrálním způsobem s co nejmenším explicitním zarovnáním vpravo a vlevo.

&lt;span id="Bots"&gt;&lt;/span&gt;
=== Roboti ===

Mnoho šablon na mnoha wikinách je pravidelně upravováno roboty. Tato schopnost musí být zachována.

To by nemělo vyžadovat žádné změny v softwarové infrastruktuře, ale je to zde zmíněno pro úplnost, protože jde o důležitý případ použití.

&lt;span id="Transitioning_the_templates_from_the_large_wikis_to_central_storage"&gt;&lt;/span&gt;
=== Přechod šablon z velkých wikin do centrálního úložiště ===

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The most popular source language for translation in Content Translation is English, by far. After it, come Spanish, Russian, French, German, Catalan, Ukrainian, Italian, Chinese, and Portuguese. Because of this, it makes sense that the common templates in the editions of Wikipedia in these most common languages, especially those in English, are the ones that are the most important to make global for the benefit of all other languages.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>c4f7a41bac1303f2fff062da7b9e7e7bf90c8b0d</sha1>
  </revision>
  <revision>
    <id>6624455</id>
    <parentid>6624449</parentid>
    <timestamp>2024-07-09T09:58:52Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Nejoblíbenějším zdrojovým jazykem pro překlad v Content Translation je zdaleka angličtina. Po něm následuje španělština, ruština, francouzština, němčina, katalánština, ukrajinština, italština, čínština a portugalština. Z tohoto důvodu dává smysl, že společné šablony ve edicích Wikipedie v těchto nejběžnějších jazycích, zejména ty v angličtině, jsou těmi, které je nejdůležitější vytvořit globální ve prospěch všech osta..."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88076" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.

Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony.

Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd.

Globální šablony to musí umožňovat, ale v praxi se tyto věci stále často kopírují napříč wikinami a je třeba s tím také počítat.

Některé hodnoty parametrů lze spolehlivě a předvídatelně převádět automaticky a infrastruktura globálních šablon to musí podporovat. Například formáty čísel a číslicové znaky se často liší v barmštině, v jazycích Indie a v některých dalších jazycích, ale lze je spolehlivě převést pomocí jednoduchého softwaru.

Platné a funkční hodnoty parametrů musí být použitelné ve více jazycích a nesmí být specifické pro daný jazyk. Například použití “yes” a “no” jako booleovské hodnoty je příliš orientované na angličtinu. To pravděpodobně nevyžaduje změny v infrastruktuře, ale většinou dohodu v komunitě pro vývoj šablon napříč wikinami na osvědčených postupech pro přizpůsobení všem jazykům.

&lt;span id="Text_direction"&gt;&lt;/span&gt;
=== Směr textu ===

Šablony se musí přizpůsobit směru textu (ltr / rtl) wiki, ve které jsou zobrazeny.

Musí být vhodné psát šablonu směrově neutrálním způsobem s co nejmenším explicitním zarovnáním vpravo a vlevo.

&lt;span id="Bots"&gt;&lt;/span&gt;
=== Roboti ===

Mnoho šablon na mnoha wikinách je pravidelně upravováno roboty. Tato schopnost musí být zachována.

To by nemělo vyžadovat žádné změny v softwarové infrastruktuře, ale je to zde zmíněno pro úplnost, protože jde o důležitý případ použití.

&lt;span id="Transitioning_the_templates_from_the_large_wikis_to_central_storage"&gt;&lt;/span&gt;
=== Přechod šablon z velkých wikin do centrálního úložiště ===

Nejoblíbenějším zdrojovým jazykem pro překlad v Content Translation je zdaleka angličtina. Po něm následuje španělština, ruština, francouzština, němčina, katalánština, ukrajinština, italština, čínština a portugalština. Z tohoto důvodu dává smysl, že společné šablony ve edicích Wikipedie v těchto nejběžnějších jazycích, zejména ty v angličtině, jsou těmi, které je nejdůležitější vytvořit globální ve prospěch všech ostatních jazyků.

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Somewhat paradoxically, however, the editors in these largest languages are also the least interested in making them global:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>c2eeeae63aec52e5b08ecc59d27bc507baa1e837</sha1>
  </revision>
  <revision>
    <id>6624459</id>
    <parentid>6624455</parentid>
    <timestamp>2024-07-09T09:59:27Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Poněkud paradoxně však mají redaktoři v těchto největších jazycích také nejmenší zájem na tom, aby byly globální:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="88025" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.

Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony.

Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd.

Globální šablony to musí umožňovat, ale v praxi se tyto věci stále často kopírují napříč wikinami a je třeba s tím také počítat.

Některé hodnoty parametrů lze spolehlivě a předvídatelně převádět automaticky a infrastruktura globálních šablon to musí podporovat. Například formáty čísel a číslicové znaky se často liší v barmštině, v jazycích Indie a v některých dalších jazycích, ale lze je spolehlivě převést pomocí jednoduchého softwaru.

Platné a funkční hodnoty parametrů musí být použitelné ve více jazycích a nesmí být specifické pro daný jazyk. Například použití “yes” a “no” jako booleovské hodnoty je příliš orientované na angličtinu. To pravděpodobně nevyžaduje změny v infrastruktuře, ale většinou dohodu v komunitě pro vývoj šablon napříč wikinami na osvědčených postupech pro přizpůsobení všem jazykům.

&lt;span id="Text_direction"&gt;&lt;/span&gt;
=== Směr textu ===

Šablony se musí přizpůsobit směru textu (ltr / rtl) wiki, ve které jsou zobrazeny.

Musí být vhodné psát šablonu směrově neutrálním způsobem s co nejmenším explicitním zarovnáním vpravo a vlevo.

&lt;span id="Bots"&gt;&lt;/span&gt;
=== Roboti ===

Mnoho šablon na mnoha wikinách je pravidelně upravováno roboty. Tato schopnost musí být zachována.

To by nemělo vyžadovat žádné změny v softwarové infrastruktuře, ale je to zde zmíněno pro úplnost, protože jde o důležitý případ použití.

&lt;span id="Transitioning_the_templates_from_the_large_wikis_to_central_storage"&gt;&lt;/span&gt;
=== Přechod šablon z velkých wikin do centrálního úložiště ===

Nejoblíbenějším zdrojovým jazykem pro překlad v Content Translation je zdaleka angličtina. Po něm následuje španělština, ruština, francouzština, němčina, katalánština, ukrajinština, italština, čínština a portugalština. Z tohoto důvodu dává smysl, že společné šablony ve edicích Wikipedie v těchto nejběžnějších jazycích, zejména ty v angličtině, jsou těmi, které je nejdůležitější vytvořit globální ve prospěch všech ostatních jazyků.

Poněkud paradoxně však mají redaktoři v těchto největších jazycích také nejmenší zájem na tom, aby byly globální:

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The templates already work well for them, and most people there don’t directly care about the convenience of translation to other languages.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>b41ab658ca35ba88c019c66fee104c6595d9b183</sha1>
  </revision>
  <revision>
    <id>6624463</id>
    <parentid>6624459</parentid>
    <timestamp>2024-07-09T10:00:13Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Šablony jim již fungují dobře a většina lidí se přímo nestará o pohodlí překladu do jiných jazyků."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="87939" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.

Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony.

Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd.

Globální šablony to musí umožňovat, ale v praxi se tyto věci stále často kopírují napříč wikinami a je třeba s tím také počítat.

Některé hodnoty parametrů lze spolehlivě a předvídatelně převádět automaticky a infrastruktura globálních šablon to musí podporovat. Například formáty čísel a číslicové znaky se často liší v barmštině, v jazycích Indie a v některých dalších jazycích, ale lze je spolehlivě převést pomocí jednoduchého softwaru.

Platné a funkční hodnoty parametrů musí být použitelné ve více jazycích a nesmí být specifické pro daný jazyk. Například použití “yes” a “no” jako booleovské hodnoty je příliš orientované na angličtinu. To pravděpodobně nevyžaduje změny v infrastruktuře, ale většinou dohodu v komunitě pro vývoj šablon napříč wikinami na osvědčených postupech pro přizpůsobení všem jazykům.

&lt;span id="Text_direction"&gt;&lt;/span&gt;
=== Směr textu ===

Šablony se musí přizpůsobit směru textu (ltr / rtl) wiki, ve které jsou zobrazeny.

Musí být vhodné psát šablonu směrově neutrálním způsobem s co nejmenším explicitním zarovnáním vpravo a vlevo.

&lt;span id="Bots"&gt;&lt;/span&gt;
=== Roboti ===

Mnoho šablon na mnoha wikinách je pravidelně upravováno roboty. Tato schopnost musí být zachována.

To by nemělo vyžadovat žádné změny v softwarové infrastruktuře, ale je to zde zmíněno pro úplnost, protože jde o důležitý případ použití.

&lt;span id="Transitioning_the_templates_from_the_large_wikis_to_central_storage"&gt;&lt;/span&gt;
=== Přechod šablon z velkých wikin do centrálního úložiště ===

Nejoblíbenějším zdrojovým jazykem pro překlad v Content Translation je zdaleka angličtina. Po něm následuje španělština, ruština, francouzština, němčina, katalánština, ukrajinština, italština, čínština a portugalština. Z tohoto důvodu dává smysl, že společné šablony ve edicích Wikipedie v těchto nejběžnějších jazycích, zejména ty v angličtině, jsou těmi, které je nejdůležitější vytvořit globální ve prospěch všech ostatních jazyků.

Poněkud paradoxně však mají redaktoři v těchto největších jazycích také nejmenší zájem na tom, aby byly globální:

* Šablony jim již fungují dobře a většina lidí se přímo nestará o pohodlí překladu do jiných jazyků.
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewriting the templates so that the strings will be translatable may be time-consuming and may force them to learn some new template maintenance skills.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>a58603efd18f02e59f7aec1dbc1f0a46726dfa76</sha1>
  </revision>
  <revision>
    <id>6624469</id>
    <parentid>6624463</parentid>
    <timestamp>2024-07-09T10:00:35Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Přepisování šablon tak, aby byly řetězce přeložitelné, může být časově náročné a může je donutit naučit se některé nové dovednosti údržby šablon."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="87902" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.

Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony.

Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd.

Globální šablony to musí umožňovat, ale v praxi se tyto věci stále často kopírují napříč wikinami a je třeba s tím také počítat.

Některé hodnoty parametrů lze spolehlivě a předvídatelně převádět automaticky a infrastruktura globálních šablon to musí podporovat. Například formáty čísel a číslicové znaky se často liší v barmštině, v jazycích Indie a v některých dalších jazycích, ale lze je spolehlivě převést pomocí jednoduchého softwaru.

Platné a funkční hodnoty parametrů musí být použitelné ve více jazycích a nesmí být specifické pro daný jazyk. Například použití “yes” a “no” jako booleovské hodnoty je příliš orientované na angličtinu. To pravděpodobně nevyžaduje změny v infrastruktuře, ale většinou dohodu v komunitě pro vývoj šablon napříč wikinami na osvědčených postupech pro přizpůsobení všem jazykům.

&lt;span id="Text_direction"&gt;&lt;/span&gt;
=== Směr textu ===

Šablony se musí přizpůsobit směru textu (ltr / rtl) wiki, ve které jsou zobrazeny.

Musí být vhodné psát šablonu směrově neutrálním způsobem s co nejmenším explicitním zarovnáním vpravo a vlevo.

&lt;span id="Bots"&gt;&lt;/span&gt;
=== Roboti ===

Mnoho šablon na mnoha wikinách je pravidelně upravováno roboty. Tato schopnost musí být zachována.

To by nemělo vyžadovat žádné změny v softwarové infrastruktuře, ale je to zde zmíněno pro úplnost, protože jde o důležitý případ použití.

&lt;span id="Transitioning_the_templates_from_the_large_wikis_to_central_storage"&gt;&lt;/span&gt;
=== Přechod šablon z velkých wikin do centrálního úložiště ===

Nejoblíbenějším zdrojovým jazykem pro překlad v Content Translation je zdaleka angličtina. Po něm následuje španělština, ruština, francouzština, němčina, katalánština, ukrajinština, italština, čínština a portugalština. Z tohoto důvodu dává smysl, že společné šablony ve edicích Wikipedie v těchto nejběžnějších jazycích, zejména ty v angličtině, jsou těmi, které je nejdůležitější vytvořit globální ve prospěch všech ostatních jazyků.

Poněkud paradoxně však mají redaktoři v těchto největších jazycích také nejmenší zájem na tom, aby byly globální:

* Šablony jim již fungují dobře a většina lidí se přímo nestará o pohodlí překladu do jiných jazyků.
* Přepisování šablon tak, aby byly řetězce přeložitelné, může být časově náročné a může je donutit naučit se některé nové dovednosti údržby šablon.
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making the templates suddenly used by many more projects may make it harder to achieve consensus about making future changes in how the templates work.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>e52f01d360d7ea7e00ca9d49b8c0bf3e0efb32cb</sha1>
  </revision>
  <revision>
    <id>6624473</id>
    <parentid>6624469</parentid>
    <timestamp>2024-07-09T10:00:59Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Pokud šablony náhle použije mnoho dalších projektů, může být obtížnější dosáhnout shody ohledně budoucích změn ve způsobu fungování šablon."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="87856" xml:space="preserve">&lt;languages /&gt;
&lt;templatestyles src=":Global templates/Proposed specification/style.css" /&gt;
{{Tracked|T52329}}
Toto je návrh funkčních požadavků na globální šablony a moduly.

Můžete si také přečíst {{pll|Global templates/Proposed specification, short version|jednostránkovou verzi tohoto návrhu}}.

'''Toto není projekt, který je prováděn nebo plánován k provedení kýmkoli v jakémkoli definovaném okamžiku, alespoň zatím. Toto je jen nápad, i když velmi podrobný.'''

Konečným cílem je vytvořit závazek mezi týmy a projekty na implementaci těchto věcí, se správnou architekturou, produktovým a projektovým řízením, zapojením komunity atd.

Tento dokument se nesnaží zacházet do detailů technické implementace z hlediska ukládání, ukládání do mezipaměti, doručování, návrhu kódu PHP atd. Snaží se pouze definovat požadavky, jak bude tato funkce fungovat z pohledu uživatelů:

# Lidé, kteří vytvářejí a udržují šablony a moduly.
# Lidé, kteří vytvářejí a upravují stránky, které obsahují šablony a moduly. To zahrnuje všechny editory a všechny druhy stránek:
#* Všechny úrovně zkušeností: Od těch, kteří jsou úplně noví, až po ty, kteří provedli tisíce úprav
#* Všechny druhy nástrojů pro úpravy: úpravy syntaxe wiki, vizuální editor, překlad obsahu a další (dokonce i operátoři botů)
#* Všechny wikiny: Wikipedie, Wikislovník, Wikivoyage, Wikidata, Inkubátor atd. a jakékoli nové budoucí projekty
#* Všechny jazyky: angličtina, francouzština, ruská, španělština, arménština, perština, zuluština, manipuriština atd.
#* Všechny druhy stránek: články na Wikipedii, diskusní stránky k článkům, diskusní stránky uživatelů, diskusní stránky komunity, stránky WikiProjektu, kategorie, stránky dokumentace šablon atd. {{Triple globe}}
{{Global templates nav}}
&lt;span id="Elevator_pitch"&gt;&lt;/span&gt;
== Rozsah výtahu ==
Velká část funkčnosti stránek Wikimedia je implementována v šablonách a modulech Lua.
V jejich současné podobě je nelze sdílet na různých wikinách a jazycích.
Z tohoto důvodu je obtížné je integrovat s moderními způsoby vytváření a úprav článků, jako je Visual Editor, Wikidata a Content Translation.
Také se obtížně přizpůsobují mobilním zařízením.
To způsobuje plýtvání úsilím přispěvatelů a potíže pro nové editory a menší projekty.
Musí být možné je sdílet na wiki stránkách, podobně jako obrázky Commons.
Díky tomu bude vývoj softwaru rychlejší a robustnější a také to umožní editorům více se soustředit na psaní. {{Triple globe}}

&lt;span id="The_Problem"&gt;&lt;/span&gt;
== Problém ==

'''''Obecný komentář: Pokud není uvedeno jinak, všechny odkazy na "šablony" platí také pro {{pll|Extension:Scribunto|Scribunto}} moduly Lua.'''''

Šablony implementují funkce stránek Wikimedie.
Některé z těchto funkcí jsou velmi výrazné, zejména infoboxy, reference, "potřeba citace" a mnoho dalších.
Podrobnější seznam funkcí implementovaných pomocí šablon naleznete v části {{pll|Global templates/Taxonomy|Taxonomie}}.
Všichni čtenáři je vidí a všichni redaktoři na ně narážejí téměř při každé editační akci.
Kromě toho implementují mnoho funkcí vnitřní správy komunity stránek: Žádosti o smazání, žádosti o odblokování, vyjádření podpory v diskuzích, třídění článků pro WikiProjekty atd.

Šablony poskytují účinný mechanismus pro rychlý návrh, nasazení a použití opakujících se částí textu a značek na mnoha stránkách. Šablony však mají také několik akutních problémů s použitelností pro všechny druhy editorů.

&lt;span id="Difficulties_for_all_editors_in_all_wikis"&gt;&lt;/span&gt;
=== Potíže pro všechny editory na všech wikinách ===

&lt;span id="Wiki_syntax_editors"&gt;&lt;/span&gt;
==== Editory syntaxe wiki ====
Šablony jsou pro editory v syntaxi wiki často obtížně srozumitelné.
Lidé, kteří mají zkušenosti s používáním konkrétní šablony, ji pravděpodobně identifikují a budou schopni upravit stránku, která ji obsahuje.
Redaktoři, kteří tuto šablonu neznají, však budou muset vyhledat její dokumentaci, když se s ní setkají, i když mají obecně zkušenosti s úpravami a jinými šablonami.
A redaktoři, kteří mají nízké zkušenosti, budou zmateni záhadným textem se složenými závorkami, svislými znaky, rovnítkem atd.

Použití funkce, která je implementována jako šablona, ​​vyžaduje znát název šablony a napsat jej do složených závorek (&lt;nowiki&gt;{{}}&lt;/nowiki&gt;) nebo jej zkopírovat z jiné stránky.
To není zřejmé novým uživatelům a zkušení uživatelé se také musí naučit každou novou šablonu zvlášť.

Některé wikiny mají miniaplikace, které přidávají tlačítka vkládající šablony, které jsou běžné v daném projektu, do panelu nástrojů pro úpravy.
Ty se na každé wiki liší, i když mnoho šablon má podobnou funkcionalitu napříč projekty a jazyky.

&lt;span id="Visual_Editor_users"&gt;&lt;/span&gt;
==== Uživatelé vizuálního editoru ====
{{Tracked|T55590}}
{{Tracked|T67173}}
Uživatelé VisualEditoru mají určité výhody s používáním šablon, ale také s nimi existuje mnoho problémů. Konkrétně se jedná o podobný problém s dohledatelností: Ve Visual Editoru jsou všechny funkce šablon skryty za položkou nabídky "{{int|visualeditor-toolbar-insert}} {{#ifeq:{{dir|{{Pagelang}}}}|ltr|→|←}} {{int|visualeditor-dialogbutton-template-tooltip}}" a uživatel musí znát název šablony, než ji použije.

Nabídka "{{int|visualeditor-toolbar-insert}}" vizuálního editoru obsahuje položky pro matematické vzorce, egyptské hieroglyfy, hudební partitury a některé další funkce, které jsou implementovány jako rozšíření, ale neobsahuje položky jako "Infobox", "Potřeba citace", "Převod jednotek" , "Citace" atd.
Všechny šablony jsou stejným druhem obecné položky.

Existuje jedna významná výjimka: Některé wiki mají tlačítko "{{int|citoid-citoidtool-title}}", které vkládá poznámky pod čarou s referenčními šablonami.
Jde však o výjimku potvrzující pravidlo.
Vyžaduje manuální konfiguraci i pro základní funkčnost, tato konfigurace je na každé wiki samostatná a v důsledku toho mnoho wikin toto tlačítko vůbec nemá.
Další srovnatelnou výjimkou, která byla přidána na konci roku 2019, je speciální podpora pro šablony "Potřebné citace", ale to také vyžaduje určitou vlastní konfiguraci na každé wiki, aby skutečně fungovala.

&lt;span id="Difficulties_for_editors_who_write_in_more_than_one_project"&gt;&lt;/span&gt;
=== Potíže pro editory, kteří píší do více než jednoho projektu ===

Mnoho šablon existuje v jednom projektu, ale ne v jiných, a často je šablona k dispozici, ale v jiné podobě. Z tohoto důvodu je obtížné nebo nemožné znovu použít dovednosti získané v jednom projektu: Funkce, které šablona poskytuje, jsou někdy nedostupné a někdy fungují jinak. To platí nejen pro wikin v různých jazycích, ale také pro různé wikiny ve stejném jazyce, například anglickou Wikipedii a anglický Wikisource.

Pro lidi, kteří upravují v různých jazycích, šablony ztěžují překlad.
Při překladu stránky je manipulace se šablonami mnohem těžší než s textem článku ("próza"), ať už se překlad provádí ručně nebo pomocí Překladu obsahu.
Uživatelé často musí šablonu přeskočit nebo ji po zveřejnění článku opravit.
To také způsobuje opuštění probíhajících překladů, protože překlad šablony vypadá děsivě.

Nejčastěji hlášené problémy v Překladu obsahu se týkají šablon.

Překlad obsahu má funkci přizpůsobení šablony, která automatizuje některé části tohoto procesu, ale funguje pouze v případě, že odpovídající šablona existuje v obou jazycích a pokud byly všechny parametry pečlivě zmapovány správci šablon.
To je nutné provést pro každou šablonu v každém jazyce samostatně a ručně a průběžně udržovat, když se zdrojová šablona změní.
K tomu dochází, i když je funkce šablon napříč jazyky po většinu času stejná.

V ideálním případě by se šablony a jejich parametry měly přenášet na přeloženou stránku téměř zcela automaticky, aby se překladatelé mohli soustředit na psaní prózy, neboť právě psaní prózy je oblastí, kde je lidská práce nejvíce potřeba.

Šablonu lze exportovat z jedné wiki do druhé, ale jakmile to uděláte, šablona se stane rozvětvenou kopií. Buď zůstane ve stavu, ve kterém byl exportován, nebo pokračuje ve vývoji samostatně, což způsobuje nekompatibilitu. Někdy lidé udržují různé kopie, ale to není robustní a nemůže se škálovat pro stovky wikin, které máme.

Parametry šablony mohou mít stejnou funkčnost, ale různé názvy na různých wikinách. Mohou být přizpůsobeny pomocí aliasů TemplateData, ale toto je neoptimální hack: Není to to, pro co bylo TemplateData původně vytvořeno, a musí se to provést ručně pro každý jazykový pár.

Šablony kombinují algoritmickou logiku, lidsky čitelné textové řetězce a formátování. Z tohoto důvodu neexistuje žádný robustní způsob, jak přeložit řetězce uživatelského rozhraní šablon, jak se to dělá s jádrem MediaWiki a rozšířeními.

&lt;span id="Difficulties_for_editors_in_smaller_wikis"&gt;&lt;/span&gt;
=== Potíže pro editory v menších wikinách ===
Nový projekt wiki je vytvořen instalací jádra MediaWiki a povolením výchozí sady rozšíření.
V praxi to nevytváří rovné podmínky, protože mnoho klíčových funkcí větších wiki je implementováno v šablonách: infoboxy, citace, poznámky k údržbě (například &lt;nowiki&gt;{{&lt;/nowiki&gt;[[w:en:Template:Unreferenced |Bez odkazu]]&lt;nowiki&gt;}}&lt;/nowiki&gt;) atd.

&lt;span id="Difficulties_for_software_developers"&gt;&lt;/span&gt;
=== Potíže pro vývojáře softwaru ===
Pro vývojáře jádra MediaWiki, rozšíření, robotů a dalších nástrojů, které analyzují, generují nebo upravují obsah stránky wiki, je obtížné vytvářet funkce závislé na přítomnosti určitých šablon ve wiki.
Vývojáři rozšíření, jako jsou GrowthExperiments, PageTriage, ContentTranslation, některé součásti Wikibase a mnoho dalších, je musí buď otestovat v produkci, což je špatný nápad, nebo importovat šablony na své místní wikiny nebo na online testovací wiki.

Výzkumníci, kteří získávají data o obsahu wiki na základě šablon, musí napsat svůj analytický kód pro každou wiki zvlášť a někdy to skončí pouze pro jednu wiki. Pozoruhodným příkladem je použití šablon WikiProject z anglické Wikipedie k analýze témat stránek a posouzení kvality článků. {{Triple globe}}
&lt;span id="Assumptions"&gt;&lt;/span&gt;
== Předpoklady ==

&lt;span id="Extensions_vs_Templates:_Similarities_and_differences"&gt;&lt;/span&gt;
=== Rozšíření vs šablony: Podobnosti a rozdíly ===

Jedním z hlavních předpokladů tohoto návrhu projektu je, že šablony a moduly jsou velmi podobné jádru MediaWiki a rozšířením: Jedná se o software a implementují funkce, které komunita editorů potřebuje. Zejména vzhledem k tomu, že šablony jsou obvykle vyvíjeny samotnými editory, je zřejmé, že je komunita ''skutečně'' potřebuje. Velké rozdíly mezi nimi spočívají ve způsobu jejich vývoje, lokalizace a nasazení.

Šablony a moduly by se měly podobat rozšířením v některých klíčových vlastnostech, které jim aktuálně chybí, a zachovat některé dobré vlastnosti, které rozšíření postrádají. (Pro snazší pochopení pro anglické čtenáře jsou v tabulce uvedeny příklady šablon z anglické Wikipedie. Mohou také pocházet z jakékoli jiné wiki a jakéhokoli jiného jazyka.)

{| class="wikitable vs"
!Vlastnost
!Jádro a rozšíření
!Šablony
!Co by se s tím mělo udělat se šablonami?
|-
|Implementuje speciální druh obsahu
|Ano.
obrázek, matematika, hieroglyfy, partitura, základní reference
|Ano.
[[w:Template:Chess diagram|Chess diagram]]
|
|-
|└ Speciální druh obsahu lze snadno vložit do stránek
|Ano (pomocí panelu nástrojů).
|Ne (pokud jste se nenaučili, jak na to).
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přizpůsobit mobilním zařízením
|Většinou ano.
|Někdy.
|Mělo by být změněno.
|-
|└ Speciální druh obsahu lze snadno přeložit jako součást článku
|Většinou ano.
|Ne.
|Mělo by být změněno.
|-
|Implementuje funkce formátování stránky
|Ano.
&lt;bdi&gt;gallery&lt;/bdi&gt;, &lt;bdi&gt;poem&lt;/bdi&gt;
|Ano.
&lt;bdi&gt;[[w:Template:Image array|Image array]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Columns|Columns]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Quote|Quote]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Navbox|Navbox]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Infobox|Infobox]]&lt;/bdi&gt;
|
|-
|Implementuje procesy komunitního pracovního postupu
|Ano.
Filtr zneužití, Zkontrolovat uživatele, Přesunout
|Ano.
&lt;bdi&gt;[[w:Template:Admincheck|Admincheck]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:PROD|Proposed deletion]]&lt;/bdi&gt;
|Mělo by být snadné znovu použít, ale ne vynuceně.
|-
|Snadné nasazení počáteční verze
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadné nasazení změn
|Ne.
|Ano.
|Měl by být zachován.
|-
|Snadná lokalizace
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Užitečné na více wikinách
|Často.
|Často.
|
|-
|Používá se pouze na omezeném počtu wikin
|Někdy.
&lt;bdi&gt;[[Extension:Josa|Josa]]&lt;/bdi&gt;, &lt;bdi&gt;[[Extension:TocTree|TocTree]]&lt;/bdi&gt;
|Někdy.
&lt;bdi&gt;[[w:Template:New Zealand English|New Zealand English]]&lt;/bdi&gt;, &lt;bdi&gt;[[w:Template:Units attention|Units attention]]&lt;/bdi&gt;
|
|-
|Snadná instalace a použití na více wikinách
|Ano.
|Ne.
|Mělo by být změněno.
|-
|Snadné použití na nové, nedávno vytvořené wiki
|Ano.
|Ne.
|Mělo by být změněno.
|}
&lt;span id="Templates_and_modules_development_skills"&gt;&lt;/span&gt;
=== Vývojové dovednosti šablon a modulů ===

Další důležitý soubor předpokladů, na kterých je tento návrh založen, jsou následující:
* Dovednosti pro vývoj šablon a modulů nejsou triviální. Šablony i moduly mají mnoho nejasných funkcí.
* I když je mnoho nejvýznamnějších funkcí stránek implementováno jako šablony a moduly, tyto dovednosti jsou často nepovšimnuté, nedoceněné a považovány za samozřejmé.
* Existují desítky lidí, kteří mají tyto dovednosti, a upravují mnoho wikin. Obvykle se zaměřují na svou domovskou wiki a relativně zřídka komunikují s přispěvateli z jiných wikin nebo jiných jazyků. Přestože základní technologie je všude stejná, neexistuje žádná skutečná globální komunita vývojářů šablon, která by byla srovnatelná s globální komunitou vývojářů jádra a rozšíření MediaWiki. Existují případy spolupráce napříč wikinami na určitých šablonách, ale ty jsou nekonzistentní.
* Existuje také mnoho wikin, ve kterých nejsou žádní editoři, kteří mají tyto dovednosti. Buď kopírují šablony a moduly z jiných wikin, aniž by plně rozuměli tomu, jak fungují, a nemají schopnost je efektivně lokalizovat a udržovat, nebo šablony vůbec nepoužívají.

Tato situace není zdaleka optimální.
Dovednosti vývojářů šablon a modulů potřebují více ocenění.
Vyvíjejí skutečně potřebné funkce a jsou začleněni do svých komunit editorů.
Na wikinách v mnoha jazycích přicházejí vývojáři šablon s inovativními funkcemi pro strukturovaný obsah, prezentaci dat a modularizaci.
Tyto inovace by mohly být užitečné v mnoha wikinách, ale v současné době neexistuje žádný vhodný mechanismus, jak toho dosáhnout.

A samozřejmě žádné řešení těchto problémů nesmí přijít s novými technologiemi, které zavrhnou mnohaleté praktické zkušenosti, které správci šablon získali. Proto musí být v syntaxi pro vývoj šablon a modulů co nejméně změn. Věci, které je třeba změnit, jsou způsob, jakým jsou nasazeny a šířeny napříč wikinami, a způsob, jakým jsou v nich člověkem čitelné řetězce lokalizovány (přeloženy). {{Triple globe}}
&lt;span id="The_proposed_solution:_Summary"&gt;&lt;/span&gt;
== Navrhované řešení: Shrnutí ==

Již existuje mnoho funkcí MediaWiki, které jsou globální napříč wikinami:

* Obrázky (pomocí [[:commons:|Commons]])
* {{pll|Extension:GlobalBlocking|2=Blokování}}
* Uživatelské účty ({{pll|Extension:CentralAuth|CentralAuth}})
* {{pll|Extension:GlobalPreferences|2=Předvolby}}
* {{pll|Extension:GlobalUserPage|2=Uživatelské stránky}}
* {{pll|Extension:GlobalCssJs|2=Uživatelské stránky JS a CSS}}
* Globální seznam sledovaných se ke konci roku 2020 aktivně vyvíjí ({{pll|Extension:GlobalWatchlist|GlobalWatchlist}})
* a některé další.

'''Musí být také možné ukládat šablony a moduly do globálního úložiště a lokalizovat je stejně robustně, jako je tomu u rozšíření.'''

Globální šablony a moduly umožní správcům šablon na všech wikinách, protože jim umožní snadněji spolupracovat na vývoji kódu šablon.

Globální šablony a moduly posílí překladatele a lokalizátory tím, že jim umožní soustředit se pouze na překlad řetězců uživatelského rozhraní ("zprávy"), aniž by museli hledat řetězce v kódu, a tím, že jim umožní používat stejné dovednosti a nástroje pro překládání. šablony a rozšíření MediaWiki.

Globální šablony a moduly umožní editorům obsahu na všech wikinách psát a překládat obsah, který používá tyto šablony, aniž by se museli ponořit do rozdílů a znovu se učit různá pravidla a dovednosti na každé wiki.

Syntaxe pro vývoj šablon a modulů a obecný cyklus údržby a nasazení šablon se nezmění, takže všechny dovednosti, které správci šablon během let získali, zůstanou relevantní.

Všechny wikiny budou moci používat globální šablony, ale nebudou k tomu nuceny. Komunity si zachovají schopnost přepsat jakoukoli globální funkčnost, design, pracovní postupy a data.

Lokalizace šablon bude stejně pohodlná jako lokalizace rozšíření MediaWiki. {{Triple globe}}
&lt;span id="The_proposed_solution:_Detailed_requirements"&gt;&lt;/span&gt;
== Navrhované řešení: Podrobné požadavky ==

&lt;span id="Templates_must_be_able_to_be_semantic_and_global"&gt;&lt;/span&gt;
=== Šablony musí být sémantické a globální ===
"Sémantický" znamená, že ostatní softwarové komponenty, zejména Visual Editor a Content Translation, musí mít obecný způsob, jak pochopit, že šablona existuje a že poskytuje určitou funkčnost, aby ji bylo možné vložit na stránku jako infobox, citace, značka údržby atd., a to nejen jako generická šablona.
V současné době je nejblíže vytváření sémantiky šablon TemplateData, ale popisuje pouze parametry šablony.
Nepomáhá například Visual Editoru přidat na panel nástrojů tlačítko "Vložit infobox".

''Globální'' znamená, že kód šablony musí být udržován na jednom místě a použitelný na všech wikinách.

&lt;span id="Making_templates_semantic"&gt;&lt;/span&gt;
=== Vytvoření sémantiky šablon ===
{{Tracked|T103630}}
{{Tracked|T103624}}
Šablony nikdy nebyly robustně sémantické v tom smyslu, že by se s nimi dalo snadno manipulovat pomocí softwaru, který zpracovává stránky.

Existuje jen několik příkladů šablon, které byly vytvořeny sémanticky:

* Různé referenční šablony, které lze použít pomocí tlačítka "{{int|citoid-citoidtool-title}}" na panelu nástrojů Visual Editor. Vyžadují napsání velkého množství samostatného kódu pro konfiguraci Citoidu na každé wiki, která je chce používat.
* "Potřebná citace", která byla upravena pro Visual Editor na konci roku 2019. Vyžaduje také konfiguraci na každé wiki. Například: [[:en:MediaWiki:Visualeditor-template-tools-definition.json|angličtina]], [[:he:MediaWiki:Visualeditor-template-tools-definition.json|hebrejština]], [[:sl: MediaWiki:Visualeditor-template-tools-definition.json|slovinština]]. V době psaní tohoto článku francouzština, španělština a většina dalších jazyků pro to nejsou nakonfigurovány, i když mají šablony tohoto druhu. ({{Phab|T211243}})
* Šablony pro zmínky o uživatelích v rozšíření Flow, které také vyžadují místní konfiguraci.
* Některé nástroje pro zpracování a výzkum výpisů mohou analyzovat šablony hodnocení stránek WikiProject v anglické Wikipedii, které se obvykle přidávají na diskusní stránky.
* Rozšíření GrowthExperiments navrhuje editorům provádět určité úkoly v článcích na základě šablon, které jsou v nich obsaženy. Názvy šablon je třeba nakonfigurovat ručně zápisem souborů JSON do každé wiki zvlášť. Například: [[:cs:MediaWiki:NewcomerTasks.json|čeština]], [[:vi:MediaWiki:NewcomerTasks.json|vietnamština]], [[:ko:MediaWiki:NewcomerTasks.json|korejština]], [[ :ar:MediaWiki:NewcomerTasks.json|arabština]].
* Rozšíření PageTriage je nakonfigurováno tak, aby fungovalo se šablonami hatnote anglické Wikipedie (také známými jako "tagy").

V případě PageTriage rozšíření v podstatě pevně kóduje šablony jedné wiki, takže je nepoužitelné v jiných wikinách bez významného přepsání. I když je krok konfigurace na wiki malý, jako je tomu u příkladu Flow, stále je třeba jej provést. To se nedá dobře škálovat pro 900 wikin, které má Wikimedie, a tisíce, které bude mít v budoucnu.

Tyto věci by měly být ve výchozím nastavení globální, takže budou okamžitě použitelné v alespoň základní výchozí konfiguraci na všech wikinách najednou pomocí rozšíření, robotů, analyzátorů výpisů atd.

&lt;span id="Storage_and_delivery"&gt;&lt;/span&gt;
=== Skladování a dodání ===
{{Tracked|T6547}}
{{Tracked|T91162}}
Globální šablony a moduly mohou být uloženy v centrální wiki (Meta, Commons nebo zcela nové wiki) a může to být dokonce {{ll|Gerrit}} nebo jiné úložiště.

Nejlepším řešením je pravděpodobně vytvoření nové wiki, která je uloží, aniž by se pletla s obrázky, obecnou diskusí komunity atd.

Použití Gerritu jako úložiště pro kód šablon a modulů je technicky možné, ale ztratilo by to důležitý prvek přístupnosti pro správce šablon: Úprava šablony na stránce wiki je mnohem jednodušší a známá pro drtivou většinu správců šablon než vytváření potvrzení Git a čeká na kontrolu kódu. Gerrit by se proto pravděpodobně neměl stát způsobem pro ukládání kódu šablony a modulu, alespoň ne primárního.

Globální šablony a moduly musí být uloženy ve společném úložišti, které může upravovat většina editorů wiki. Pravidla pro blokování a speciální oprávnění by zpočátku měla být podobná pravidlům na jiných wikinách: Vše by mělo být ve výchozím nastavení otevřené a musí být možné chránit velmi běžné, citlivé nebo často poškozené šablony. Podrobnější pravidla o úrovních ochrany mohou být vytvořena komunitou editorů později.

Kód šablon v centrálním úložišti bude používat obecné anglické názvy značek jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;&lt;section&gt;&lt;/nowiki&gt;&lt;/code&gt;, funkce analyzátoru jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#ifexist}}&lt;/nowiki&gt;&lt;/code&gt; nebo &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{#invoke}}&lt;/nowiki&gt;&lt;/code&gt; a kouzelná slova jako &lt;code dir="ltr"&gt;&lt;nowiki&gt;{{DISPLAYTITLE}}&lt;/nowiki&gt;&lt;/code&gt;.

Jak jsou šablony doručovány na cílové wikiny, je otázkou interního inženýrství a architektury, pokud jsou řešeny ostatní požadavky.
Tyto otázky byly v minulosti diskutovány některými vývojáři platforem, například kolem projektu [[Requests for comment/Shadow namespaces|jmenné prostoru Shadow]].
Tento dokument se snaží odpovědět na související otázky, jak to funguje pro uživatele, kteří upravují stránku, která používá šablonu, nebo který spravuje samotnou šablonu – jak ji napsat lokalizovatelným způsobem. Jak se to překládá. Jak je lokálně přizpůsoben atd.
Tyto otázky nebyly dostatečně řešeny v předchozích architektonických diskusích na toto téma.

&lt;span id="Templates_must_remain_easy_to_modify"&gt;&lt;/span&gt;
=== Šablony musí zůstat snadno upravitelné ===

Důležitým rysem toho, jak šablony v současnosti fungují, je to, že se upravují stejně jako stránky wiki a po publikování se okamžitě stanou funkčními bez kontroly nebo nasazení. To je poněkud nebezpečné, protože špatná úprava může zničit mnoho stránek, ale faktem je, že to většinou funguje dobře.

Tato snadnost musí být zachována. Členové komunity, kteří udržují šablony, s největší pravděpodobností odmítnou přechod na nový systém, který po nich bude vyžadovat, aby se naučili nové dovednosti a protáhli každou změnu vyčerpávající fází kontroly a nasazení. To pravděpodobně znamená, že ukládání šablon do Gerritu nebude fungovat, pokud možná nebude proces kontroly a nasazení ''mnohem'' jednodušší než u rozšíření.

&lt;span id="It_must_be_possible_to_make_some_templates_non-global"&gt;&lt;/span&gt;
=== Některé šablony musí být možné učinit neglobálními ===

Ne všechny šablony by měly být nuceny být globální.
{{Tracked|T165053}}
Ve skutečnosti by některé šablony měly být lokální, protože implementují funkcionalitu, která je jedinečná pro určitý jazyk. Tyto šablony ze své podstaty nepotřebují překládat a měl by existovat způsob, jak lidským editorům i překladatelským nástrojům (jako je Content Translation) napovědět, že je není třeba upravovat a lze je přeskočeno nebo nahrazeno. Je to součást snahy o větší sémantiku šablon.

&lt;span id="It_must_be_possible_to_override_some_functionality_or_appearance_of_a_global_template"&gt;&lt;/span&gt;
=== Musí být možné přepsat některé funkce nebo vzhled globální šablony ===

Žádná komunita by neměla mít pocit, že jí nějaká funkce vnucuje nějaký mocný externí hráč, jako je anglická komunita Wikipedie, komunita Wikidata, WMF nebo kdokoli jiný. Globální šablony by měly být vyvíjeny a používány společně pro společný prospěch. Většinu času by to mělo fungovat pro všechny.

Někdy budou mít některé komunity vyhraněné názory na to, že chtějí mít konkrétní funkce nebo design, který se bude lišit v jejich jazyce nebo projektu, nebo zobrazit informační pole s informacemi, které se liší od informací zobrazených v jiných projektech, nebo je nezobrazovat vůbec. Schopnost přepsat věci lokálně musí být povolena od začátku. (Nebo spíše nesmí být odebráno.)

&lt;span id="A_global_template_must_be_immediately_usable_in_every_wiki"&gt;&lt;/span&gt;
=== Globální šablona musí být okamžitě použitelná v každé wiki ===

Stejně jako je globální uživatelská stránka okamžitě dostupná na každé wiki, ve které není žádná lokální uživatelská stránka, musí být každá šablona nebo modul, který je vytvořen na globální infrastruktuře, okamžitě použitelný na každé wiki.

Nesmí to vyžadovat "žádné" dodatečné kroky, jako je kopírování wiki stránek, vytváření šablon obalu s místním názvem, zásah správce, čekání celé hodiny na obnovení mezipaměti atd.

Po aktualizaci centrální verze se aktualizovaná verze okamžitě zobrazí všude. Aby se předešlo vandalismu, komunita editorů vytvoří zásady týkající se oprávnění a úrovní ochrany.

Pokud nebyly řetězce uživatelského rozhraní (známé také jako "zprávy") přeloženy, šablona bude přesto použitelná a řetězce se zobrazí v [[Special:MyLanguage/fallback language|záložním jazyce]].
Další podrobnosti najdete v části o lokalizaci.

&lt;span id="Localization_of_user-facing_strings"&gt;&lt;/span&gt;
=== Lokalizace uživatelských řetězců ===
{{tracked|T238411}}
&lt;span id="It_must_be_possible_to_translate_all_user-facing_strings"&gt;&lt;/span&gt;
==== Musí být možné přeložit všechny uživatelské řetězce ====
Řetězce uživatelského rozhraní (zprávy) jádra MediaWiki, rozšíření a některé externí nástroje jako [[:m:Community Tech/Pageview stats tool|Pageviews]] jsou na translatewiki.net překládány pohodlně a robustně.
Tento proces lokalizace je známý alespoň některým editorům ve všech jazycích.

V současné době není možné udělat totéž se šablonami. Vícejazyčné stránky jako Commons a mediawiki.org mají systém "[[commons:Template:Translatable navigation template|TNT]]" pro překlad některých šablon, ale je velmi komplikovaný a nelze jej znovu použít pro Wikipedii, Wikisource atd. V roce 2021 toto se stalo robustnějším díky funkci "přepisování s ohledem na jazyk", ale stále to vyžaduje určitá vylepšení.

V ideálním případě by mělo být možné překládat šablony stejně jako jádro a rozšíření pomocí wiki s rozšířením Translate.

Přeložený řetězec musí být použitelný ihned po odeslání překladu pomocí rozhraní Překladače.

Řetězce uživatelského rozhraní může být možné upravovat na nezpracovaných wiki stránkách, ale v ideálním případě by měly být upravovány především prostřednictvím vyhrazeného překladového rozhraní.

Překladatelé by měli být schopni soustředit se na překlad jen textu.
Když kolem něj vidíte jakýkoli kód, je pro lidi, kteří nemají zkušenosti s programováním a soubory JSON, obtížné snadno přispívat.
Navíc úpravy překladů do jazyků, které jsou psány zprava doleva v textových souborech raw, jsou extrémně nepohodlné.
Rozšíření Translate již řeší všechny tyto problémy.

Stránky dokumentace šablony musí být také přeložitelné. Většinou to stačí udělat pomocí funkce překladu stránek rozšíření Translate, ale může to vyžadovat určité úpravy.

&lt;span id="The_language_in_which_the_strings_are_shown_to_the_user"&gt;&lt;/span&gt;
==== Jazyk, ve kterém se uživateli zobrazují řetězce ====
{{Tracked|T313748}}
Šablony se primárně používají, když jsou integrovány do obsahu, takže ve výchozím nastavení musí být přeložené zprávy zobrazeny v jazyce obsahu wiki.

Některé šablony se však používají jako prvky uživatelského rozhraní.
Proto možná dává smysl povolit zobrazení přeložených řetězců v uživatelském jazyce, pokud se liší od jazyka obsahu wiki.
To může být zvláště důležité pro vícejazyčné stránky, jako jsou Commons, Wikidata, Meta a mediawiki.org.

Pokud překlad není k dispozici, je nutné použít obvyklé [[záložní jazyk]] řetězce MediaWiki.
Pokud například zpráva není přeložena do kečuánštiny nebo guaranštiny, zobrazí se ve španělštině, pokud není přeložena do baškirštiny nebo čuvašštiny, zobrazí se v ruštině a tak dále.
Konečným záložním jazykem je angličtina, takže pokud tato zpráva není přeložena do španělštiny nebo ruštiny, zobrazí se v angličtině.

&lt;span id="Message_keys"&gt;&lt;/span&gt;
==== Klíče zpráv ====

Zprávy by měly být reprezentovány jako klíče, podobně jako se to dělá v jádru MediaWiki, rozšířeních a nástrojích.

Zápis přeložitelných řetězců bude pravděpodobně největší změnou v procesu vývoje šablon, na kterou si budou muset správci šablon zvyknout. Pevně ​​zakódované řetězce budou muset být odděleny a přesunuty do zpráv organizovaných podle klíče. Musí to být co nejjednodušší nejen pro překladatele, ale i pro správce šablon. Jinak to ve skutečnosti neudělají a funkce bude fakticky zamítnuta.

Chcete-li snadno učinit klíče globálně jedinečnými, je pravděpodobně v pořádku automaticky zahrnout název globální šablony do klíče zprávy.

&lt;span id="Transitioning_tools"&gt;&lt;/span&gt;
==== Přechodové nástroje ====
{{Tracked|T245737}}
Měl by být vyvinut nástroj, který usnadní přechod šablony nebo modulu na centrální úložiště. Může provést následující kroky:

# Exportujte šablonu z místní wiki a importujte ji do globální wiki.
# Exportujte všechny šablony, které tato šablona používá (kaskádové).
# Identifikujte lidsky čitelné řetězce, převeďte je na seznam s klíči a nahraďte je klíči ve zdrojovém kódu šablony.
# Importujte stránku dokumentace šablony a TemplateData.
# Importujte potřebné stránky CSS.

Ve většině případů tento automatický proces pravděpodobně nedokáže vytvořit plně použitelnou a robustní šablonu nebo modul, ale může pomoci zahájit proces přechodu.

&lt;span id="Organizing_messages"&gt;&lt;/span&gt;
==== Organizování zpráv ====

Rozšíření Translate organizuje zprávy podle skupin, známých také jako "projekty", které lze dále organizovat do agregovaných skupin. Například Article Placeholder, Score a Poem jsou všechny skupiny, které představují odpovídající rozšíření MediaWiki, a všechny jsou zahrnuty v souhrnné skupině "Rozšíření používaná Wikimedia – Advanced" spolu s mnoha dalšími rozšířeními.

Projekty, které představují rozšíření MediaWiki, se konfigurují v souborech YAML v úložišti translatewiki a zobrazují se v uživatelském rozhraní Překladače ve selektoru projektu, známém také jako "výběr skupiny zpráv".

Vzhledem k tomu, že existuje mnohem více šablon než rozšíření, mohou být nutné některé úpravy ve způsobu, jakým rozšíření Translate zpracovává skupiny zpráv, aby se přizpůsobilo překladu šablon.

Každá šablona by měla být skupina zpráv. Úzce související šablony by měly být seskupeny do skupiny souhrnných zpráv. Mohou být podobné kategoriím, ve kterých jsou uloženy, a ve skutečnosti mohou být kategorie dokonce znovu použity. Úpravy souborů v úložišti Git za účelem uspořádání těchto skupin zpráv pravděpodobně nejsou žádoucí, protože jsou příliš složité a pomalé.

Bylo by hezké zobrazit názvy skupin a šablon tak, jak jsou lokalizovány v selektoru, ale je také v pořádku, pokud jsou zobrazeny v angličtině. Pokud je to dost dobré pro lokalizátory rozšíření, je to dost dobré i pro lokalizátory šablon.

Šablony se musí zobrazovat jako skupiny zpráv na speciální stránce Jazykové statistiky rozšíření Translate (Special:LanguageStats).
To pomůže lokalizátorům najít, jaké šablony potřebují překlad.
To by mělo být obecně podobné všem skupinám zpráv, ale pro šablony je třeba vzít v úvahu několik zvláštních úvah:

* Šablon budou tisíce, takže bude fajn, když tomu bude vývoj panelu nějak odpovídat.
* Tabulka by měla ukazovat, na kolika stránkách je každá šablona přeložena, a měla by umožnit seřadit řádky podle tohoto čísla, aby lokalizátoři mohli upřednostnit, co je důležitější přeložit.

&lt;span id="Finding_how_to_translate_a_template"&gt;&lt;/span&gt;
==== Zjištění, jak přeložit šablonu ====

Každá stránka s popisem šablony musí mít přímý odkaz na její překlad do jazyka uživatele.
{{Tracked|T64695}}
Některé šablony používají štítky Wikidata jako součást svého uživatelského rozhraní namísto pevně zakódovaných řetězců.
To se v tuto chvíli provádí v [[:commons:Wikidata Infobox|Wikidata Infobox]] na Commons, [[:w:ca:Infotaula persona|Infotaula persona]] (osoba Infoboxu) v katalánské Wikipedii a v několika dalších šablonách .
Tyto štítky a hodnoty lze lokalizovat v samotných Wikidatech.
Takové použití nemůže pokrýt všechny potřeby lokalizace šablony, ale je legitimní a užitečné pro konkrétní účely.
Dokud je to správně popsáno v dokumentaci šablony, lze to i nadále používat a pravděpodobně nepotřebuje speciální úpravy infrastruktury.
(Možná lze překlad příslušných štítků a hodnot nějak integrovat do rozhraní Translate pro lokalizaci šablony, ale je to volitelné.)

&lt;span id="Message_parameters_and_magic_words"&gt;&lt;/span&gt;
==== Parametry zpráv a kouzelná slova ====

V základní MediaWiki a rozšířeních má mnoho zpráv parametry, někdy také známé jako "zástupné symboly". Jmenují se $1, $2 atd. a jsou vyplněny v době běhu. Parametry jsou zvláště důležité pro zajištění robustního překladu zpráv, protože různé jazyky mají různé pořadí slov.

Něco takového je potřeba i v šablonách, i když je možné, že formulář nemusí být $1, $2, ale parametry podobné šabloně s trojitými složenými závorkami (&lt;nowiki&gt;{{{}}}&lt;/nowiki&gt;).
To je třeba rozhodnout podle úvah o výhodnosti analýzy a lokalizace.

Kouzelná slova PLURAL, GENDER a GRAMMAR musí být podporována ve zprávách šablony jako ve zprávách MediaWiki.

&lt;span id="Message_documentation"&gt;&lt;/span&gt;
==== Dokumentace zprávy ====

V základní MediaWiki a rozšířeních je každá přeložitelná zpráva zdokumentována pro pohodlí vývojářů a překladatelů. Dokumentace může obsahovat informace o tom, kde se zpráva objevuje, jaké jsou parametry $1, $2 atd., zda je slovo sloveso nebo přídavné jméno atd. Tato dokumentace je uložena jako pseudojazyk s kódem qqq.

Taková dokumentace bude užitečná i pro překlad šablon. Jak je uložen, je otázkou technické architektury. Možná to může být kombinováno s TemplateData, možná to může být uloženo jako jazyk qqq a možná to může být něco jiného.

&lt;span id="Source_language"&gt;&lt;/span&gt;
==== Zdrojový jazyk ====

Šablony budou do globálního úložiště importovány nejen z projektů v anglickém jazyce, ale také z wikin v mnoha jazycích. Více než kdy jindy musí lokalizační nástroje podporovat překlady z jakéhokoli jazyka, nejen z angličtiny.

&lt;span id="Fuzzying"&gt;&lt;/span&gt;
==== Rozmazání ====

Pokud se v základní MediaWiki a rozšířeních a na přeložitelných stránkách změní zdrojová zpráva v angličtině, zpráva je automaticky označena jako zastaralá nebo "rozmazaná". Stávající překlady nadále fungují, ale překladatelům se zobrazí, že potřebují aktualizaci. (Správce překladu může také označit zprávu jako nevyžadující fuzzying.)

Podobný mechanismus bude potřeba pro lokalizaci šablony. Protože by však bylo hezké nevnucovat angličtinu jako zdrojový jazyk, mělo by existovat více způsobů, jak označit zprávy jako neostré.

&lt;span id="Localization_considerations_for_modules"&gt;&lt;/span&gt;
==== Aspekty lokalizace pro moduly ====
{{Tracked|T238417}}
Moduly Lua mohou načítat a analyzovat přeložitelné řetězce MediaWiki, ale neexistuje žádný definovaný způsob ukládání těchto řetězců pro moduly Lua, které jsou spravovány jako stránky wiki.
Moduly Lua je možné zabalit jako součásti rozšíření a poté jsou schopny načítat zprávy ze souborů i18/*.json rozšíření, ale to se v současné době provádí ve velmi málo rozšířeních.
Přepisování šablon v Lua může být z technického hlediska robustnějším řešením, ale Lua nemusí být nutně přijato všemi stávajícími správci šablon a jejich spolupráce bude klíčová pro úspěch projektu, takže to nelze provést u všech šablon.

{{Tracked|T209310|resolved}}
Některé velmi interní technické moduly, které se běžně používají, jen zřídka se mění a nevyžadují internacionalizaci, lze pravděpodobně bezbolestně přesunout do samotného rozšíření Scriunto.
Některé příklady jsou v modulech [[Module:No globals|Žádní globalisté]] a [[Module:Arguments|Argumenty]].

&lt;span id="Localizing_the_template_name"&gt;&lt;/span&gt;
=== Lokalizace názvu šablony ===
{{Tracked|T239294}}
Šablona může mít v každém jazyce jiný název, ale musí být přímo připojena k centrálnímu úložišti.

Globální šablony a moduly mají být okamžitě použitelné ve všech wikinách bez dalších kroků, takže musí být možné převést globální šablonu na lokální wiki stránku pomocí jejího globálního názvu. Komunita editorů napříč wikinami se rozhodne, jaká bude politika pro tato globální jména.

Podobně jako názvy parametrů mohou mít šablony různé názvy v různých jazycích a to je třeba zachovat. Musí existovat strukturovaný způsob překladu názvů šablon. Možná mohou hrát roli odkazy na podstránky Wikidata, ale ne nutně.

Pokud tak neučiníte, editoři se buď globálním šablonám vyhnou, nebo globální šablonu zabalí do místní šablony s přeloženým názvem, což pravděpodobně způsobí, že šablona ztratí spojení s globální entitou. To není žádoucí a míjí to smysl celého projektu.

Názvy šablon musí být přeloženy pouze do jazyků, které mohou být jazyky obsahu wikin. Překlad do formální němčiny nebo britské angličtiny je pravděpodobně zbytečný. Může existovat způsob, jak mít aliasy nebo přesměrování. Jazykové varianty, například srbština a čínština, musí být podporovány podle potřeb těchto jazyků.

Pokud na wiki existuje místní šablona a má stejný název jako lokalizovaný název globální šablony, použije se místní šablona. Je to podobné tomu, jak místní soubory s identickými názvy přepisují globální soubory na Commons a jak místní zprávy v prostoru MediaWiki přepisují lokalizaci pocházející z kódu.

Názvy modulů Lua jsou také často lokalizovány.
Jejich jména lze lokalizovat pro přímé vyvolání z wiki stránek, ale protože kód obvykle používá anglické identifikátory, měly by být pravděpodobně preferovány interní globální názvy pro použití v samotném kódu, například v příkazech &lt;code&gt;require&lt;/code&gt;.

&lt;span id="Localizing_parameters"&gt;&lt;/span&gt;
=== Lokalizace parametrů ===

&lt;span id="Localizing_parameter_names"&gt;&lt;/span&gt;
==== Lokalizace názvů parametrů ====

Názvy parametrů se v každém jazyce liší. Obvykle jsou založeny na slovech v každém jazyce, takže je důležité pro pohodlné úpravy transkluze v syntaxi wiki.

V ideálním případě by globální šablona měla mít obecné názvy interních parametrů, které mají překlady do různých jazyků. Je to trochu podobné štítkům názvů vlastností Wikidata, ale může to být jednodušší: protože angličtina je pro vývojáře softwaru ''lingua franca'' a šablony jsou druh softwaru, je pravděpodobně v pořádku mít angličtinu jako výchozí zdrojový jazyk spíše než obecná čísla, jak je tomu ve Wikidatech.

Tyto obecné názvy parametrů budou běžnými výchozími názvy. Budou fungovat na wikinách ve všech jazycích. Lokalizované názvy budou fungovat na wikinách, které mají tento jazyk jako jazyk obsahu.

Tyto překlady názvů parametrů musí být ověřeny:

* Nesmí obsahovat neplatné znaky
* Nesmí se opakovat v rámci jedné šablony v jednom jazyce
* ''Něco dalšího?''

Vlastní proces překladu názvů parametrů se může lišit od překladu řetězců uživatelského rozhraní. Tyto názvy mají technická omezení, která musí být vynucena. Musí také zůstat stabilní, protože změna názvu parametru naruší existující transkluze, takže by měla existovat určitá ochranná opatření proti jejich příliš časté změně.
{{anchor|AutomaticParameterTranslation}}

&lt;span id="Automatic_parameter_translation"&gt;&lt;/span&gt;
==== Automatický překlad parametrů ====
{{Tracked|T243150}}
Pokud jsou všechny lokalizované názvy šablon a parametrů uloženy centrálně, bude možné mít jednoduchou službu, která získá platné volání šablony s parametry, názvem zdrojového jazyka a názvem cílového jazyka a vydá volání lokalizované šablony. Například:

Vstup:
&lt;syntaxhighlight lang="json"&gt;
{
	sourcewiki: "enwiki",
	targetwiki: "frwiki",
	template: "{{Infobox writer|name=Ľudovít Štúr|birth_date=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

Výstup:

&lt;syntaxhighlight lang="json"&gt;
{
	template: "{{Infobox Écrivain|nom=Ľudovít Štúr|date de naissance=1815-10-28}}"
}
&lt;/syntaxhighlight&gt;

V Content Translation to bude primární způsob přizpůsobení šablon. Na rozdíl od současné adaptace šablony v Content Translation to bude přesné a úplné, nikoli na základě odhadů.

Při vizuálních úpravách a úpravách syntaxe wiki ve stylu 2017 stačí zkopírovat a vložit šablonu z wiki v jiném jazyce, aby se parametr přeložil automaticky.

Pro jednoduché úpravy syntaxe wiki by měl existovat jednoduchý způsob ovládání této služby, například speciální stránka nebo dialogové okno, kam může editor vložit šablonu a zdrojový jazyk a získat šablonu s přeloženými parametry.

V obou případech budou přeloženy pouze názvy šablony a parametry. Překlad hodnot parametrů je diskutován samostatně.

&lt;span id="Nameless_parameters"&gt;&lt;/span&gt;
==== Bezejmenné parametry ====

Bezejmenné očíslované parametry musí samozřejmě nadále fungovat.

Je třeba rozhodnout, jak budou jejich jména lokalizována.

&lt;span id="Translating_parameter_values"&gt;&lt;/span&gt;
==== Překlad hodnot parametrů ====

Kromě sdílení funkcí a designu šablon je třeba se zamyslet nad tím, že hodnoty parametrů šablony budou sdíleny, stejně jako ''ne''sdílené.

Některé hodnoty parametrů jsou ze své podstaty stejné ve všech jazycích. Některé příklady zahrnují výslovnost IPA rodného jména místa (např. [dɛn ˈɦaːx] pro Haag), rok založení města, chemický vzorec sloučeniny atd. Alespoň některé z nich by pravděpodobně měly být uloženy ve Wikidatech a měly by jít snadno načíst do šablony.

Některé hodnoty parametrů je třeba přeložit nebo přepsat, například jména lidí, překlady hesel zemí atd.

Globální šablony to musí umožňovat, ale v praxi se tyto věci stále často kopírují napříč wikinami a je třeba s tím také počítat.

Některé hodnoty parametrů lze spolehlivě a předvídatelně převádět automaticky a infrastruktura globálních šablon to musí podporovat. Například formáty čísel a číslicové znaky se často liší v barmštině, v jazycích Indie a v některých dalších jazycích, ale lze je spolehlivě převést pomocí jednoduchého softwaru.

Platné a funkční hodnoty parametrů musí být použitelné ve více jazycích a nesmí být specifické pro daný jazyk. Například použití “yes” a “no” jako booleovské hodnoty je příliš orientované na angličtinu. To pravděpodobně nevyžaduje změny v infrastruktuře, ale většinou dohodu v komunitě pro vývoj šablon napříč wikinami na osvědčených postupech pro přizpůsobení všem jazykům.

&lt;span id="Text_direction"&gt;&lt;/span&gt;
=== Směr textu ===

Šablony se musí přizpůsobit směru textu (ltr / rtl) wiki, ve které jsou zobrazeny.

Musí být vhodné psát šablonu směrově neutrálním způsobem s co nejmenším explicitním zarovnáním vpravo a vlevo.

&lt;span id="Bots"&gt;&lt;/span&gt;
=== Roboti ===

Mnoho šablon na mnoha wikinách je pravidelně upravováno roboty. Tato schopnost musí být zachována.

To by nemělo vyžadovat žádné změny v softwarové infrastruktuře, ale je to zde zmíněno pro úplnost, protože jde o důležitý případ použití.

&lt;span id="Transitioning_the_templates_from_the_large_wikis_to_central_storage"&gt;&lt;/span&gt;
=== Přechod šablon z velkých wikin do centrálního úložiště ===

Nejoblíbenějším zdrojovým jazykem pro překlad v Content Translation je zdaleka angličtina. Po něm následuje španělština, ruština, francouzština, němčina, katalánština, ukrajinština, italština, čínština a portugalština. Z tohoto důvodu dává smysl, že společné šablony ve edicích Wikipedie v těchto nejběžnějších jazycích, zejména ty v angličtině, jsou těmi, které je nejdůležitější vytvořit globální ve prospěch všech ostatních jazyků.

Poněkud paradoxně však mají redaktoři v těchto největších jazycích také nejmenší zájem na tom, aby byly globální:

* Šablony jim již fungují dobře a většina lidí se přímo nestará o pohodlí překladu do jiných jazyků.
* Přepisování šablon tak, aby byly řetězce přeložitelné, může být časově náročné a může je donutit naučit se některé nové dovednosti údržby šablon.
* Pokud šablony náhle použije mnoho dalších projektů, může být obtížnější dosáhnout shody ohledně budoucích změn ve způsobu fungování šablon.
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Editors from different major wikis will have to work on reaching consensus about merging some templates with similar functionality that already exist on their sites.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This is more of a consideration of practicality and community relations than a consideration of engineering, but it must be taken into account when making technical architectural decisions. Without doing proper preparation in this area, the whole project will fail.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As long as there are important common templates that are not global, Content Translation and other software that handles templates from different wikis in any way, will have to keep supporting them. If the infrastructure for global templates is created, and migration of existing templates proceeds in a good pace, developers may consider stopping developing and some day deprecating the code for non-global template adaptation.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The pace of migrating templates from large wikis to the central repository can be one of the success metrics for the project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== It must be possible to use templates completely in both wiki syntax and in visual editing ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
It’s obvious, but should be mentioned anyway: Wiki syntax editing is not going away soon, and it must be possible to keep editing template transclusions in pages as it is done now. This must not become more complicated.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
However, Visual Editor is increasingly embraced by both experienced and new editors, so every feature of how templates work must work well in both visual and wiki syntax editing.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Other features related to templates ===
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There are some features that deal with templates in core MediaWiki and its extensions. All of them must continue working, and may need updating for the global templates age.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Core MediaWiki ====
&lt;/div&gt;
{{Tracked|T238412}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There should be on-wiki tools for showing at least basic analysis of templates’ and modules’ usage on pages: the number of transclusions and invocations grouped by wiki, and lists of pages that use the templates and the modules. The feature that shows which templates does a page transclude while it’s being edited must continue working with global templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The “{{int|Whatlinkshere}}” page must keep working, and remain useful for global transclusions.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateData ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It is possible to translate template and parameter descriptions in TemplateData, and the translations are displayed in the user interface language in Visual Editor’s template insertion dialog. This is good and must be preserved. The translation interface could possibly be improved, but the beginning is good. Adding support for TemplateData in the Translate extension can be a solution for this, but there can also be other solutions.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The “{{int|Templatedata-modal-title-templateformat}}” parameter ({{int|Templatedata-modal-format-inline}}, {{int|Templatedata-modal-format-block}}, {{int|Templatedata-modal-format-custom}}) must keep working. It must also be possible to customize them per wiki—some wikis may prefer to see a certain template written in wiki syntax as one line, and some may prefer multiple lines.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Citoid ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Citoid]] has to be configured on every wiki separately using JSON files, such as [[:en:MediaWiki:Citoid-template-type-map.json|Citoid-template-type-map.json]]. In the global templates age, it must become possible to share these files, so that the “{{int|citoid-citoidtool-title}}” button would be available in all wikis and work identically everywhere ''by default''. As with templates, there must be a way to override this default in each wiki where the community wants different behavior.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateStyles ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There must be a possibility to write Template Styles pages in the same central repository as templates. The central style must be loaded by default, and it must be possible to override it locally.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateSandbox ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Special:TemplateSandbox must keep working.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It must be possible to edit a template in the central repository and preview it in a page in the target wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== TemplateWizard ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The current system uses a wiki’s standard search to find templates. The results are presented in a list that might need to be changed to make the global or local status visible.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;TemplateWizard gets its information for templates from the TemplateData API, so as long as that keeps returning the same structure there shouldn’t be any issues, and i18n is already working.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Wikibase ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Wikidata can be used to bring in some parameter values from a central repository to the wiki. This is used productively in Wikipedia in several languages, among them French, Hebrew, Basque, Russian, Catalan, Estonian, and some others, as well as in Commons, although the actual implementation may differ. This must continue working, of course. Unifying the way in which it is done across different wikis may become one of this project’s most significant impact areas.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;It may also make it much easier to implement [[Wikidata Bridge]], the project to allow editing template values from within wikis. The modifications to the templates themselves will have to be done only once in the global templates, and not in each wiki.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== VisualEditor ====
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor obviously needs to be able to insert both global and local templates.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;VisualEditor shows a link to the template description page in the template editing dialog. This link should point directly to the global template when it is used.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Development and deployment ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Developing the infrastructure for global templates and modules is a large and complex project. It must be divided into manageable parts to get done. Roughly, the multiple parts of this project should be developed in the following sequence:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''{{pll|Translatable modules|Translatable modules}}''' (''in development''): Before making the modules shareable across wikis, the framework for their internationalization and localization should be developed. This will be immediately useful to modules on wikis that are already multilingual, most notably Commons and Wikidata. Some of them are translated using Lua arrays or tricks with translatable pages, but this is not a full-fledged localization system.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global modules''': Modules become shareable across wikis. This should happen before making templates shareable because the modules’ infrastructure is less coupled to core MediaWiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Translatable templates''': This is similar to Translatable modules above, and can reuse much of the same framework, but it will also need the capability to translate the names of the template itself and its parameters and some other features. See the sections on localization in the specification.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Global templates''': Complete the project with making the templates global.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The development of more advanced features, such as making templates semantic, can and should come later, after they are shareable. If they become semantic before they are shareable, the code that describes them semantically will be forked on different wikis, like the templates themselves, which will make code reuse even harder than it is today.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Access to global templates and modules will be available from all the Wikimedia wikis. This includes editions of Wikipedia, Wiktionary, Wikivoyage, etc. in all the languages, as well as Commons, Wikidata, Meta, mediawiki.org, Wikitech, etc., as well as test wikis (test.wikipedia.org, etc.) This is similar to how images on Commons are available on all the wikis. Even though the global templates and modules will be available to the wikis, the wikis won’t be obliged to use them.
&lt;/div&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Making templates easily reusable on non-Wikimedia projects may also be desirable.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Even though it doesn’t directly benefit Wikimedia projects, it may make sense to consider making templates easily reusable not only across Wikimedia projects, but also on other MediaWiki sites.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Doing this will probably require some more work, but it may contribute to better modularization, and this may eventually benefit Wikimedia projects, too.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is comparable to the capability of direct embedding of images from Commons on non-Wikimedia websites.&lt;/span&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Imagine a world ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Imagine a world in which every single human being can freely share in the sum of all knowledge and it’s actually a really easy thing to do because templates are global:
&lt;/div&gt;

{| class="wikitable imagine-a-world"
|+
! scope="col" width="20%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Task&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With the current template system&lt;/span&gt;
! scope="col" width="40%" |&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;With global templates&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the Visual Editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Template”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the fields.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that you will have to find the template name for each wiki separately, and in some wikis it will not work at all.
&lt;/div&gt;

|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to “Insert”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click “Infobox”.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select the infobox type you want.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Get most or all of the fields filled automatically from Wikidata, and add anything that is missing or that has to be overridden.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Note that the above will work the same way in every wiki and in every language, unless specifically overridden.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Insert an infobox using the wiki syntax editor&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Totally manual: Find the template description page and type the template into the wiki syntax editor according to the instructions.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Mostly manual: Copy from a similar article and change the parameter values.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use TemplateWizard (hoping that it is configured for your wiki):&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the puzzle piece button.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find the template name somehow.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Type the template name.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill the parameters one by one using the form.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you want, you can still do all the same things as with the current template system.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;But you will also have these additional optional features:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To select a suggested infobox from a list instead of typing the name manually.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the parameter values auto-filled.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To have the same process for every wiki.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you have time and necessary skills:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the code of this template to your wiki. If this is a complex template, you will have to use exporting and importing.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the underlying modules, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the TemplateStyles, if necessary.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy the documentation and translate it in the wiki syntax editor.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the human-readable user interface strings that have to be translated, and translate them.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go through all the wiki syntax you copied, find all the parameter names and where they are used, and change them to your language.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template actually works and does what you need. If it does not, you may have to search for CSS or JS pages on which it depends.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you don’t have time or necessary skills, you have two options:&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Make a simpler template with fewer features.&lt;/span&gt;
##&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just give up.&lt;/span&gt;
#&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Repeat the process for every language and every wiki.'''&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the template is in the global repository, then:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Go to the template documentation page.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the button “Translate”, and translate all the messages using a translatewiki-like interface.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
That’s it, the template is fully usable in your language.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(And yes, this also has to be repeated for every language, but the same is true for MediaWiki extensions.)
&lt;/div&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use the new features of a nice template that you once exported into your language from a wiki in English, French, Russian, or another language&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Three options:&lt;/span&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat the process for exporting the template, hoping not to break anything along the way.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Develop it by yourself.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and stay with the older version.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just translate the new strings. All the new features are already available in all wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Implement [[Wikidata Bridge]] (editing Wikidata’s data directly from infoboxes)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is a project in a very early stage of design. However, it can probably be said already that with the current technology, implementing it will probably require changing every infobox template '''in every wiki''' according to instructions that will be published by Wikidata developers.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The infoboxes’ template code will only have to be changed once, and it will work for all the wikis.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate an article from English, French, or Russian into your language using Content Translation&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone imported the infobox template into your language, fill all the parameters. (They are occasionally pre-filled, but most of the time they are not.)&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If no-one imported the infobox into your language, skip it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Carefully''' check that all of these templates were correctly adapted:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;IPA pronunciation templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Native language name templates&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Citation needed&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Unit conversion&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Blockquote&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Country flags&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Various others&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clean up incorrectly published wiki syntax.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, steps 4 and 7 may take more time than step 3.
&lt;/div&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Open the article in Content Translation.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Click the Infobox. The Infobox is adapted and all the parameter values are pre-filled automatically. Correct their values if needed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Translate the prose of the first paragraph.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All the templates are automatically adapted with correct parameters, but check that they are correct, just in case.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Repeat steps 3 and 4 until everything you want is translated.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Publish the article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Cleaning up incorrectly published wiki syntax is probably not needed.)&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In this scenario, step 3 takes most of the time, steps 4 and 7 are very short, and the total time is shorter.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy a useful citation of an academic article from the Danish Wikipedia to the German Wikipedia (or between any other two languages)&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that a corresponding template exists in the target language. If it does:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check that the template in the target language has the same parameters with the same names. If it does, you’re lucky! Just copy and paste. You can stop here.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If they do not have the same names, check what are the corresponding parameter names in the target language and copy them one by one.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If the wiki in the target language doesn’t have this citation template, you have the following options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Create it (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Find a similar citation template and use it.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Just copy the text of the citation without formatting and structure.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up and publish the article without the reference.&lt;/span&gt;
| &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In Visual Editor: Copy and paste without having to wonder whether it will work&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the wiki syntax editor:
&lt;/div&gt;

# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Copy.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste to template parameter conversion tool. It automatically changes parameter names between languages.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Paste the result.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(In the 2017 wiki syntax editor, the template conversion tool can probably be integrated into the pasting action.)
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a table of the latest results of the ongoing [[w:Tour de France|Tour de France]] in the Wikipedia your language&lt;/span&gt;

&lt;small&gt;&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This scenario is based on an actual module, [[:d:Module:Cycling race|Cycling race]]. It is [[w:Wikipedia_talk:WikiProject_Cycling/Archive_14#Wikidata_discussion_2.0|not used in the English Wikipedia because of disagreements about the design of the tables]], but the community appears to be open about adopting it in the future if necessary changes are made.&lt;/span&gt;&lt;/small&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results, and document how to copy it and translate them.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the user interface strings of the module by editing the Lua code.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Copy the module from the central storage to your wiki.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki, repeatedly: Update the module in your wiki every time the central module is changed.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Develop a template and a module that build a table of results. The template becomes available everywhere.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Click the button “Translate”, and translate all the messages using a translatewiki-like interface (''not'' by editing Lua code or wiki syntax).&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every language (optional): Translate the labels of the necessary Wikidata items.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In every wiki: Create an article about this year’s event and add the template that invokes the module to this article.&lt;/span&gt;
#* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;In the further future, even this step may become optional thanks to an extension such as ArticlePlaceholder, which may be able to auto-create start-level articles of this kind.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Once: Wait for the results to come in, and add them to the relevant Wikidata item. Articles in all the languages get them automatically.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Practically all the languages get the whole table for free, without doing anything. All the work is done by the people who create the templates and the modules, once for everybody, and by the people who follow the events and update the results. A cross-wiki platform for developing and localizing the module and the template may facilitate the development of a design that is acceptable in all languages.
&lt;/div&gt;

|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start writing in a new wiki after the domain is created&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;After the content is imported from Incubator, there are no templates for infoboxes, references, userboxes, discussion management, marking pages for merging or deletion, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Start copying these templates one by one, or create your own.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Nice people from other wikis may help you, but they probably do not know your language, so you will have to manually translate all the strings (as in the scenario called “Use a nice template that you saw in a wiki in English, French, Russian, or Spanish in the wiki in your language”).&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You can also just give up and only write text, but then you will get fewer features: no infoboxes, no formatted citations, no deletion and merging workflows, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;All those templates are already available. Just translate the strings in a translatewiki-like interface.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a navigation box while reading an article on a mobile phone&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Impossible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Navigation boxes are so difficult to adapt to mobile screens, and so different from each other across wikis, that the software just hides them. (And yes, [[phab:T124168|there is demand for it]].)&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Possible.'''&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since the templates’ infrastructure is shared across languages, the different language communities can work with each other and with the developers of the mobile reading and editing interface and make them responsive.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Have a beautifully designed and mobile-friendly main page with regularly updating news, featured articles and images, etc.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: Find volunteers who know your language, as well as HTML and wiki syntax (especially tables and templates) very well and who have time to edit the main page every day. This is done separately and using different methods in every wiki. This happens in the top 70 wikis or so: English, Russian, French, Spanish, etc.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you can’t find anyone who knows your language and can also maintain the HTML code of the main page every day, copy the code from the main page from English or French and ask volunteers from other wikis, who don’t know your language, but know wiki syntax, to replace the picture of the day occasionally.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Since they don’t know the language, they cannot maintain the text regularly, and you cannot do it because you are afraid of breaking the HTML code, so you get stuck with the same featured article on the main page for months or years.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This happens in some of the smaller languages.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 3: Give up and have a static main page, which most likely doesn’t work well on mobile devices, even though the main page is usually the top viewed page in a wiki. This happens in a lot of wikis, even if there’s other editing activity.&lt;/span&gt;
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 1: If you have people with the needed skills and time to maintain a manually crafted custom main page in your language, and you want to keep things that way, you can do it.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Option 2: If you don’t have the people who can do this manual work or if your community is fine with having a main page that looks similar to the one in other languages, put a simple centrally maintained template on your main page. Replace only the text of the changing items in an easy form, without having to deal with wiki syntax, tables, or HTML. The process is the same for most wikis, so the same templates and bots can be used by everyone who is interested.&lt;/span&gt;
|-
|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Analyze how articles are sorted by WikiProjects for a research about Wikipedia&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses English Wikipedia’s WikiProject sorting templates on talk pages and run it.&lt;/span&gt;
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Discover that you cannot run the same code on other languages. At this point, you have two options:&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rewrite the code for every wiki.&lt;/span&gt;
## &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Give up, and research only the English Wikipedia.&lt;/span&gt;
|
# &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Write code that parses WikiProject sorting templates on talk pages and run it in all languages.&lt;/span&gt;
|}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
(Note: The “With global templates” column assumes that the infrastructure is deployed in all Wikimedia wikis, and that the most often used templates are moved to the central infrastructure.)
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Status ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
''This section is about the general status of the project. For details about the latest developments, as well as a brief history of past efforts, see the page [[Global templates/Status]].''
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
As noted above, as of December 2020, this page is only a big idea, and not a commitment to implement a project.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Similar ideas were suggested in the past. The oldest known suggestion to make templates reusable across wikis was raised in December 2004 in Bugzilla: &lt;span dir="ltr" lang="en"&gt;[https://static-bugzilla.wikimedia.org/1126 Interwiki templates]&lt;/span&gt; ({{Phabricator|T3126}}). Several other similar ideas were raised later, for example Phabricator {{Phabricator|T6547}}. In February 2017 a similar proposal called [[:m:Global-Wiki|Global-Wiki]] was closed as "consensus". Some of its components were implemented, such as global preferences, but not the templates.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The wish "Central global repository for templates, gadgets and Lua modules" was voted #3 at the [[:m:Community Wishlist Survey 2015|Community Wishlist Survey 2015]] and "Global gadgets" was voted #1 in [[:m:Community Wishlist Survey 2016/Results|Community Wishlist Survey 2016]]. Despite the community support, neither was implemented, because they weren’t appropriate for the [[Community Tech]] team, and they weren’t transferred to another team either.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The [[Platform Evolution]] project (2018) indicated some intentions to have support for global templates in the future. The page [[Platform Evolution/Recommendations]] discusses ideas for updating content modularity, and says:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;... “boxes” are an ideal focus area for creating modularity. They represent self contained features and also an opportunity to enable equitable sharing of user features across projects and languages be establishing a cross-project service to share templates. This project will also force us to consider how to handle content layout and structure separately from composable pieces content.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The closely related page [[Platform Evolution/Goals]] lists this as one of the goals:
&lt;/div&gt;

:&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Increase equity and power of contribution tools. We want to support the contribution of more content types of content, including media, in more interactive ways and across all projects. This means making some existing tools - like templates - available for consistent reuse across all projects and languages. It also means improving translation tools to remove silos of content. Finally, we also want to make it easy for contributors to create new cross-project, localizable content tools.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
[[:m:Abstract Wikipedia|Abstract Wikipedia]], which was approved by the WMF in July 2020 as a new project to be developed in the near future, includes “a cross-wiki repository to share templates and modules between the WMF projects” inside its Wikifunctions component as [[:m:Abstract Wikipedia/Tasks|one of its major goals]] (Wikifunctions was previously known as “Wikilambda”).
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
The {{pll|Translatable modules|Translatable modules}} initiative was launched in September 2020. It addresses a part of this proposal.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In [[:m:Community Wishlist Survey 2021|Community Wishlist Survey 2021]], the wish titled “[[:m:Community Wishlist Survey 2021/Translation/Templates translation|Templates translation]]” received [[:m:Community Wishlist Survey 2021/Results|the highest number of votes]]. It was also the wish with the highest number of votes in the history of the survey to date (December 2020). This wish closely corresponds with some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
For other examples of the relationship between this Global templates proposal and various strategic plans in the wider Wikimedia community, see the page {{pll|Global templates/Relationship to strategy|Global templates/Relationship to strategy}}.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
There is no complete technical plan for implementing full-featured cross-wiki sharing of modules and templates. '''This page is an attempt to propose such a plan on a product level and listen to feedback from editors.'''
&lt;/div&gt; {{Triple globe}}
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Useful links ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
Some relevant pages that discuss similar topics:
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Goals|Platform Evolution/Goals]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Platform Evolution/Recommendations|Platform Evolution/Recommendations]]&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Multilingual Templates and Modules|Multilingual Templates and Modules]] - An attempt to implement a similar feature using bots&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2015/Results]] - [[:m:Central Global Repository for Templates, Lua modules, and GadgetsCommunity Tech/Central repository for gadgets, templates and Lua modules|Central Global Repository for Templates, Lua modules, and Gadgets]] came in as #3 in the Community Wishlist vote. Listed as “In development - Parsing team”, but not actually done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Which templates should be global?]] - an informal list made by various editors&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[Requests for comment/Shadow namespaces]] - a dormant RFC about one proposal for a technical implementation of such an infrastructure&lt;/span&gt;
* {{pll|Manual:$wgEnableScaryTranscluding}} - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;an existing rudimentary mechanism for transcluding content across projects. Considered inefficient and insecure, and disabled on Wikimedia projects.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Global-Wiki]] - a similar proposal, with a wider scope. It was open for discussion for several years, and closed as "consensus". Some things in it were implemented, such as global user pages and preferences, but it also includes global templates, which are not yet done.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Abstract Wikipedia]] - A bigger proposal, which includes a global module and template repository (also known as Wikifunctions, and previously known as “Wikilambda”).&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;[[:m:Community Wishlist Survey 2021/Translation/Templates translation]] - A community wish that corresponds to some parts of this proposal, especially [[#AutomaticParameterTranslation|Automatic parameter translation]].&lt;/span&gt; {{Triple globe}}
{{Global templates nav}}</text>
    <sha1>613c6e2db3a5fc1d72c752ea4c665ce05a22b54d</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Wikimedia Apps/Android Suggested edits/100/ja</title>
  <ns>1198</ns>
  <id>1992381</id>
  <revision>
    <id>6624446</id>
    <timestamp>2024-07-09T09:57:41Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="170" xml:space="preserve">検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。</text>
    <sha1>6b51727a8b20764067d69e3c1c6b5b43020e840f</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Wikimedia Apps/Android Suggested edits/ja</title>
  <ns>0</ns>
  <id>892930</id>
  <revision>
    <id>6624447</id>
    <parentid>6624443</parentid>
    <timestamp>2024-07-09T09:57:41Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30668" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Article images task, check out the [[Wikimedia Apps/Team/Android/Image Recommendations|image recommendations]] project page.&lt;/span&gt;

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>6a250e3e464b5ac4f26e583240543c18b84db515</sha1>
  </revision>
  <revision>
    <id>6624451</id>
    <parentid>6624447</parentid>
    <timestamp>2024-07-09T09:58:06Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "記事画像タスクの詳細については、[[$1|image Recommendation]] プロジェクト ページを参照してください。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30638" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The 'Train image algorithm' task can be accessed via Suggested edits main screen.&lt;/span&gt;]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>6be00c42e1485c9fc27abd04c2a5c753499868e9</sha1>
  </revision>
  <revision>
    <id>6624453</id>
    <parentid>6624451</parentid>
    <timestamp>2024-07-09T09:58:44Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30645" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''わからない'''は、その画像がそのウィキペディアの記事を読者が理解する助けになるか否か自分にはわからないということを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>f8cd075e3b4479fcc597c81322483c1d5185e1ac</sha1>
  </revision>
  <revision>
    <id>6624457</id>
    <parentid>6624453</parentid>
    <timestamp>2024-07-09T09:59:23Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30639" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* 「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for adding article captions and alternative text ===
&lt;/div&gt;
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>e431dcd9d840f15bc85ba651260f905c0a32fa35</sha1>
  </revision>
  <revision>
    <id>6624461</id>
    <parentid>6624457</parentid>
    <timestamp>2024-07-09T09:59:58Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "=== 記事のキャプションと代替テキストを追加するためのヒント ==="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30684" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* 「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Image captions ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>17bd1bf44e781fb238891a9b3be70497a51e5ac4</sha1>
  </revision>
  <revision>
    <id>6624465</id>
    <parentid>6624461</parentid>
    <timestamp>2024-07-09T10:00:16Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "==== 画像キャプション ===="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30672" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* 「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;A caption is a text that appears below an image. Most captions draw attention to something in the image that is not obvious, such as its relevance to the text.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>eef6a1921987cc073f4a69c8c1fbcd267b0cf173</sha1>
  </revision>
  <revision>
    <id>6624468</id>
    <parentid>6624465</parentid>
    <timestamp>2024-07-09T10:00:34Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30682" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* 「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are several criteria for a good image caption. A good caption:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>059705338ff0681739751f198bafadd4964ffd2d</sha1>
  </revision>
  <revision>
    <id>6624471</id>
    <parentid>6624468</parentid>
    <timestamp>2024-07-09T10:00:54Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "優れた画像キャプションにはいくつかの基準があります。良いキャプション:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30661" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* 「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Clearly identifies the subject of the picture, without detailing the obvious&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>b781b5d885f739c0cbb16d8f8648a42a7b822e09</sha1>
  </revision>
  <revision>
    <id>6624475</id>
    <parentid>6624471</parentid>
    <timestamp>2024-07-09T10:01:15Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "明白な部分を詳細に説明することなく、写真の主題を明確に識別します。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30628" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* 「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is succinct&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>c0bf6da224e2df0f1ff4079e3b4af46926261317</sha1>
  </revision>
  <revision>
    <id>6624477</id>
    <parentid>6624475</parentid>
    <timestamp>2024-07-09T10:01:31Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "簡潔である"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30576" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* 「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Establishes the picture's relevance to the article&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>3f602ecd483bc1ce6a75cfcdd318e1aa8b6f1288</sha1>
  </revision>
  <revision>
    <id>6624479</id>
    <parentid>6624477</parentid>
    <timestamp>2024-07-09T10:01:56Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "画像と記事の関連性を確立する"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30512" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* 「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Provides context for the picture&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>b7f84feee8fb92c7a7eaffcd455b4ab5152f0bf6</sha1>
  </revision>
  <revision>
    <id>6624481</id>
    <parentid>6624479</parentid>
    <timestamp>2024-07-09T10:02:15Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "画像のコンテキストを提供します"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30469" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* 「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* 画像のコンテキストを提供します
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Draws the reader into the article&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>5d653e5baeeaab0060025845ffec79ad69583080</sha1>
  </revision>
  <revision>
    <id>6624483</id>
    <parentid>6624481</parentid>
    <timestamp>2024-07-09T10:02:36Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "読者を記事に引き込む"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30410" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* 「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* 画像のコンテキストを提供します
* 読者を記事に引き込む

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on image captions here:&lt;/span&gt; [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>c87166abebfdecb09ce222403b7e46ee68f71c84</sha1>
  </revision>
  <revision>
    <id>6624485</id>
    <parentid>6624483</parentid>
    <timestamp>2024-07-09T10:03:07Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "画像キャプションの詳細については、こちらをご覧ください。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30405" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集提案は Android でウィキペディアを編集するための新しい仕組みです。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* 「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* 画像のコンテキストを提供します
* 読者を記事に引き込む

画像キャプションの詳細については、こちらをご覧ください。 [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>72eee446c8be2dc0d4c8a361dfd93ff104866294</sha1>
  </revision>
  <revision>
    <id>6624487</id>
    <parentid>6624485</parentid>
    <timestamp>2024-07-09T10:05:04Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30388" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集の提案は、Android で Wikipedia を編集する新しい方法です。
この機能をお試しいただきありがとうございます。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* 「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* 画像のコンテキストを提供します
* 読者を記事に引き込む

画像キャプションの詳細については、こちらをご覧ください。 [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>72292f2ec0318af18cbe55cdb12f404245ddf3a4</sha1>
  </revision>
  <revision>
    <id>6624489</id>
    <parentid>6624487</parentid>
    <timestamp>2024-07-09T10:05:23Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30349" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集の提案は、Android で Wikipedia を編集する新しい方法です。
ぜひお試しください。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* 多くの場合、適切な長さは2から12単語の間です。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* 「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* 画像のコンテキストを提供します
* 読者を記事に引き込む

画像キャプションの詳細については、こちらをご覧ください。 [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>c0861856b7dcc6cf2d17137e91025467efde65f1</sha1>
  </revision>
  <revision>
    <id>6624491</id>
    <parentid>6624489</parentid>
    <timestamp>2024-07-09T10:05:57Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30353" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集の提案は、Android で Wikipedia を編集する新しい方法です。
ぜひお試しください。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* ほとんどの場合、適切な長さは 2 ～ 12 ワードです。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。通常、最初の冠詞 (a、an、the) で始まることはありません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* 「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* 画像のコンテキストを提供します
* 読者を記事に引き込む

画像キャプションの詳細については、こちらをご覧ください。 [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>8b8e389bd9375e83ba6a72c056d5f54492815abc</sha1>
  </revision>
  <revision>
    <id>6624493</id>
    <parentid>6624491</parentid>
    <timestamp>2024-07-09T10:06:43Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30274" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集の提案は、Android で Wikipedia を編集する新しい方法です。
ぜひお試しください。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* ほとんどの場合、適切な長さは 2 ～ 12 ワードです。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* 「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* 画像のコンテキストを提供します
* 読者を記事に引き込む

画像キャプションの詳細については、こちらをご覧ください。 [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>044f1939333828435d53ffc2413aa4ddf8b33522</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Global templates/Proposed specification/82/cs</title>
  <ns>1198</ns>
  <id>1992382</id>
  <revision>
    <id>6624448</id>
    <timestamp>2024-07-09T09:57:48Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "=== Přechod šablon z velkých wikin do centrálního úložiště ==="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="71" xml:space="preserve">=== Přechod šablon z velkých wikin do centrálního úložiště ===</text>
    <sha1>dea1dfcdbc72b89288431f82ea226f17133760db</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Wikimedia Apps/Android Suggested edits/245/ja</title>
  <ns>1198</ns>
  <id>1992383</id>
  <revision>
    <id>6624450</id>
    <timestamp>2024-07-09T09:58:05Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "記事画像タスクの詳細については、[[$1|image Recommendation]] プロジェクト ページを参照してください。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="134" xml:space="preserve">記事画像タスクの詳細については、[[$1|image Recommendation]] プロジェクト ページを参照してください。</text>
    <sha1>a7c3c8696b4a1a0d421cadcb45d7490bb17fe76d</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Wikimedia Apps/Android Suggested edits/179/ja</title>
  <ns>1198</ns>
  <id>1992384</id>
  <revision>
    <id>6624452</id>
    <timestamp>2024-07-09T09:58:43Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="144" xml:space="preserve">「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。</text>
    <sha1>f0dcbc72c2a2542c3a11e230742254541a1289a3</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Global templates/Proposed specification/155/cs</title>
  <ns>1198</ns>
  <id>1992385</id>
  <revision>
    <id>6624454</id>
    <timestamp>2024-07-09T09:58:51Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Nejoblíbenějším zdrojovým jazykem pro překlad v Content Translation je zdaleka angličtina. Po něm následuje španělština, ruština, francouzština, němčina, katalánština, ukrajinština, italština, čínština a portugalština. Z tohoto důvodu dává smysl, že společné šablony ve edicích Wikipedie v těchto nejběžnějších jazycích, zejména ty v angličtině, jsou těmi, které je nejdůležitější vytvořit globální ve prospěch všech osta..."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="490" xml:space="preserve">Nejoblíbenějším zdrojovým jazykem pro překlad v Content Translation je zdaleka angličtina. Po něm následuje španělština, ruština, francouzština, němčina, katalánština, ukrajinština, italština, čínština a portugalština. Z tohoto důvodu dává smysl, že společné šablony ve edicích Wikipedie v těchto nejběžnějších jazycích, zejména ty v angličtině, jsou těmi, které je nejdůležitější vytvořit globální ve prospěch všech ostatních jazyků.</text>
    <sha1>6e8a5fcd7760f215b095bd4f97bc8a381e45f399</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Wikimedia Apps/Android Suggested edits/160/ja</title>
  <ns>1198</ns>
  <id>1919597</id>
  <revision>
    <id>6624456</id>
    <parentid>6383555</parentid>
    <timestamp>2024-07-09T09:59:22Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="180" xml:space="preserve">「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。</text>
    <sha1>13cfd714c7de348a292bea9167af54ba2b22b2a7</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Global templates/Proposed specification/83/cs</title>
  <ns>1198</ns>
  <id>1992386</id>
  <revision>
    <id>6624458</id>
    <timestamp>2024-07-09T09:59:26Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Poněkud paradoxně však mají redaktoři v těchto největších jazycích také nejmenší zájem na tom, aby byly globální:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="129" xml:space="preserve">Poněkud paradoxně však mají redaktoři v těchto největších jazycích také nejmenší zájem na tom, aby byly globální:</text>
    <sha1>7a254b50006add47ca11d1ef7f49d9cd7e590816</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Wikimedia Apps/Android Suggested edits/214/ja</title>
  <ns>1198</ns>
  <id>1992387</id>
  <revision>
    <id>6624460</id>
    <timestamp>2024-07-09T09:59:57Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "=== 記事のキャプションと代替テキストを追加するためのヒント ==="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="89" xml:space="preserve">=== 記事のキャプションと代替テキストを追加するためのヒント ===</text>
    <sha1>ab912d8a6bdec9f93f3df171eb55388c6165ca30</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Global templates/Proposed specification/119/cs</title>
  <ns>1198</ns>
  <id>1992388</id>
  <revision>
    <id>6624462</id>
    <timestamp>2024-07-09T10:00:12Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Šablony jim již fungují dobře a většina lidí se přímo nestará o pohodlí překladu do jiných jazyků."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="112" xml:space="preserve">Šablony jim již fungují dobře a většina lidí se přímo nestará o pohodlí překladu do jiných jazyků.</text>
    <sha1>d28178aca6df116740dbe6e053b5027de7312e47</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Wikimedia Apps/Android Suggested edits/215/ja</title>
  <ns>1198</ns>
  <id>1992389</id>
  <revision>
    <id>6624464</id>
    <timestamp>2024-07-09T10:00:15Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "==== 画像キャプション ===="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="34" xml:space="preserve">==== 画像キャプション ====</text>
    <sha1>ac9dbcedee3091a6454bbc20e86bc1875c2c9234</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Wikimedia Apps/Android Suggested edits/246/ja</title>
  <ns>1198</ns>
  <id>1992390</id>
  <revision>
    <id>6624466</id>
    <timestamp>2024-07-09T10:00:33Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="225" xml:space="preserve">キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。</text>
    <sha1>da10257ee8eac1f999e89b3535e304ab000d20a0</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Global templates/Proposed specification/120/cs</title>
  <ns>1198</ns>
  <id>1992391</id>
  <revision>
    <id>6624467</id>
    <timestamp>2024-07-09T10:00:34Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Přepisování šablon tak, aby byly řetězce přeložitelné, může být časově náročné a může je donutit naučit se některé nové dovednosti údržby šablon."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="171" xml:space="preserve">Přepisování šablon tak, aby byly řetězce přeložitelné, může být časově náročné a může je donutit naučit se některé nové dovednosti údržby šablon.</text>
    <sha1>c38527db319717c729cc2c8d848ce6d19009a1bc</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Wikimedia Apps/Android Suggested edits/247/ja</title>
  <ns>1198</ns>
  <id>1992392</id>
  <revision>
    <id>6624470</id>
    <timestamp>2024-07-09T10:00:53Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "優れた画像キャプションにはいくつかの基準があります。良いキャプション:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="103" xml:space="preserve">優れた画像キャプションにはいくつかの基準があります。良いキャプション:</text>
    <sha1>e45996018d3090738e44319470e763da03d1a348</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Global templates/Proposed specification/121/cs</title>
  <ns>1198</ns>
  <id>1992393</id>
  <revision>
    <id>6624472</id>
    <timestamp>2024-07-09T10:00:58Z</timestamp>
    <contributor>
      <username>BenyElbis</username>
      <id>17282489</id>
    </contributor>
    <comment>Created page with "Pokud šablony náhle použije mnoho dalších projektů, může být obtížnější dosáhnout shody ohledně budoucích změn ve způsobu fungování šablon."</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="161" xml:space="preserve">Pokud šablony náhle použije mnoho dalších projektů, může být obtížnější dosáhnout shody ohledně budoucích změn ve způsobu fungování šablon.</text>
    <sha1>ccd4507fe4c250d7581f796ee19b83c8b7734bb1</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Wikimedia Apps/Android Suggested edits/248/ja</title>
  <ns>1198</ns>
  <id>1992394</id>
  <revision>
    <id>6624474</id>
    <timestamp>2024-07-09T10:01:14Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "明白な部分を詳細に説明することなく、写真の主題を明確に識別します。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="99" xml:space="preserve">明白な部分を詳細に説明することなく、写真の主題を明確に識別します。</text>
    <sha1>55abf4ef5e149bdf3b9cbb404cef34ba06c696db</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Wikimedia Apps/Android Suggested edits/249/ja</title>
  <ns>1198</ns>
  <id>1992395</id>
  <revision>
    <id>6624476</id>
    <timestamp>2024-07-09T10:01:30Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "簡潔である"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="15" xml:space="preserve">簡潔である</text>
    <sha1>d2d7cfa4b317aee539d8728516898243b965f98e</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Wikimedia Apps/Android Suggested edits/250/ja</title>
  <ns>1198</ns>
  <id>1992396</id>
  <revision>
    <id>6624478</id>
    <timestamp>2024-07-09T10:01:55Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "画像と記事の関連性を確立する"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="42" xml:space="preserve">画像と記事の関連性を確立する</text>
    <sha1>3cb84908c01d0c02932156cae2d0f174336c56df</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Wikimedia Apps/Android Suggested edits/251/ja</title>
  <ns>1198</ns>
  <id>1992397</id>
  <revision>
    <id>6624480</id>
    <timestamp>2024-07-09T10:02:14Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "画像のコンテキストを提供します"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="45" xml:space="preserve">画像のコンテキストを提供します</text>
    <sha1>aaf811be049e8339e05f8a4dd3853c9db8603d07</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Wikimedia Apps/Android Suggested edits/252/ja</title>
  <ns>1198</ns>
  <id>1992398</id>
  <revision>
    <id>6624482</id>
    <timestamp>2024-07-09T10:02:35Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "読者を記事に引き込む"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30" xml:space="preserve">読者を記事に引き込む</text>
    <sha1>68d6d23854504743fc7b947db3ebf0b3013d3f07</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Wikimedia Apps/Android Suggested edits/253/ja</title>
  <ns>1198</ns>
  <id>1992399</id>
  <revision>
    <id>6624484</id>
    <timestamp>2024-07-09T10:03:06Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "画像キャプションの詳細については、こちらをご覧ください。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="84" xml:space="preserve">画像キャプションの詳細については、こちらをご覧ください。</text>
    <sha1>33d7345e3204d9b89227a0da1744f27ef4525061</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Wikimedia Apps/Android Suggested edits/56/ja</title>
  <ns>1198</ns>
  <id>1217017</id>
  <revision>
    <id>6624486</id>
    <parentid>6355402</parentid>
    <timestamp>2024-07-09T10:05:03Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="82" xml:space="preserve">編集の提案は、Android で Wikipedia を編集する新しい方法です。</text>
    <sha1>0bba3e01b89cd6039898fcecf06686b07e0587bd</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Wikimedia Apps/Android Suggested edits/57/ja</title>
  <ns>1198</ns>
  <id>1461582</id>
  <revision>
    <id>6624488</id>
    <parentid>6355425</parentid>
    <timestamp>2024-07-09T10:05:22Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30" xml:space="preserve">ぜひお試しください。</text>
    <sha1>d362954238757d19afedd58f7a58af5189c615dd</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Wikimedia Apps/Android Suggested edits/82/ja</title>
  <ns>1198</ns>
  <id>1686550</id>
  <revision>
    <id>6624490</id>
    <parentid>6355982</parentid>
    <timestamp>2024-07-09T10:05:56Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="72" xml:space="preserve">* ほとんどの場合、適切な長さは 2 ～ 12 ワードです。</text>
    <sha1>b0329cd80ad4b9caf9f2db5bdb307b94b7e4203b</sha1>
  </revision>
</page>
<page arvcontinue="20240709095721|6624444">
  <title>Translations:Wikimedia Apps/Android Suggested edits/12/ja</title>
  <ns>1198</ns>
  <id>918779</id>
  <revision>
    <id>6624492</id>
    <parentid>6624404</parentid>
    <timestamp>2024-07-09T10:06:42Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="189" xml:space="preserve">英語版ウィキペディアでは最初の単語が大文字になりますが、他のプロジェクトでは最初の単語が固有名詞でない限り大文字になりません。</text>
    <sha1>f2c6d3f322fd611db512ff046c3a4b9878993994</sha1>
  </revision>
</page>
<page arvcontinue="20240709100810|6624494">
  <title>Translations:Wikimedia Apps/Android Suggested edits/12/ja</title>
  <ns>1198</ns>
  <id>918779</id>
  <revision>
    <id>6624494</id>
    <parentid>6624492</parentid>
    <timestamp>2024-07-09T10:08:10Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="240" xml:space="preserve">英語版 Wikipedia では最初の単語を大文字にしますが、他のプロジェクトでは固有名詞でない限り最初の単語を大文字にしません。通常、最初の冠詞 (a、an、the) から始まりません。</text>
    <sha1>69c856dda82927f16e9f7f6ecf457689173583e1</sha1>
  </revision>
</page>
<page arvcontinue="20240709100810|6624494">
  <title>Wikimedia Apps/Android Suggested edits/ja</title>
  <ns>0</ns>
  <id>892930</id>
  <revision>
    <id>6624495</id>
    <parentid>6624493</parentid>
    <timestamp>2024-07-09T10:08:11Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30325" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集の提案は、Android で Wikipedia を編集する新しい方法です。
ぜひお試しください。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* ほとんどの場合、適切な長さは 2 ～ 12 ワードです。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版 Wikipedia では最初の単語を大文字にしますが、他のプロジェクトでは固有名詞でない限り最初の単語を大文字にしません。通常、最初の冠詞 (a、an、the) から始まりません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''不快な画像'''は、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* 「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* 画像のコンテキストを提供します
* 読者を記事に引き込む

画像キャプションの詳細については、こちらをご覧ください。 [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>147bd57c6894322e6f64da97f0671be4cf036514</sha1>
  </revision>
  <revision>
    <id>6624497</id>
    <parentid>6624495</parentid>
    <timestamp>2024-07-09T10:09:16Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30334" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集の提案は、Android で Wikipedia を編集する新しい方法です。
ぜひお試しください。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* ほとんどの場合、適切な長さは 2 ～ 12 ワードです。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版 Wikipedia では最初の単語を大文字にしますが、他のプロジェクトでは固有名詞でない限り最初の単語を大文字にしません。通常、最初の冠詞 (a、an、the) から始まりません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** 「「画像は不快です」」、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* 「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* 画像のコンテキストを提供します
* 読者を記事に引き込む

画像キャプションの詳細については、こちらをご覧ください。 [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>35840566b1b7ebd5b86cf2c5bd4659f6579b8385</sha1>
  </revision>
  <revision>
    <id>6624499</id>
    <parentid>6624497</parentid>
    <timestamp>2024-07-09T10:09:42Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30328" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集の提案は、Android で Wikipedia を編集する新しい方法です。
ぜひお試しください。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* ほとんどの場合、適切な長さは 2 ～ 12 ワードです。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版 Wikipedia では最初の単語を大文字にしますが、他のプロジェクトでは固有名詞でない限り最初の単語を大文字にしません。通常、最初の冠詞 (a、an、the) から始まりません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''画像は不快です'''、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* 「よくわかりません」は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* 画像のコンテキストを提供します
* 読者を記事に引き込む

画像キャプションの詳細については、こちらをご覧ください。 [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>0bd706ddce680022c94ae0b3a63ae23c7c82e148</sha1>
  </revision>
  <revision>
    <id>6624501</id>
    <parentid>6624499</parentid>
    <timestamp>2024-07-09T10:10:04Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30328" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集の提案は、Android で Wikipedia を編集する新しい方法です。
ぜひお試しください。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* ほとんどの場合、適切な長さは 2 ～ 12 ワードです。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版 Wikipedia では最初の単語を大文字にしますが、他のプロジェクトでは固有名詞でない限り最初の単語を大文字にしません。通常、最初の冠詞 (a、an、the) から始まりません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像がそのウィキペディアの記事のトピックを読者が理解するのを助けるのに適した図解であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''画像は不快です'''、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''よくわかりません'''は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* 画像のコンテキストを提供します
* 読者を記事に引き込む

画像キャプションの詳細については、こちらをご覧ください。 [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>08f8f3586cd8b53e9e6273b73541725023f750ba</sha1>
  </revision>
  <revision>
    <id>6624504</id>
    <parentid>6624501</parentid>
    <timestamp>2024-07-09T10:11:33Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30310" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集の提案は、Android で Wikipedia を編集する新しい方法です。
ぜひお試しください。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* ほとんどの場合、適切な長さは 2 ～ 12 ワードです。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版 Wikipedia では最初の単語を大文字にしますが、他のプロジェクトでは固有名詞でない限り最初の単語を大文字にしません。通常、最初の冠詞 (a、an、the) から始まりません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像が読者がウィキペディアの記事のトピックを理解するのに役立つ良い図であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''画像は不快です'''、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''よくわかりません'''は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* 画像のコンテキストを提供します
* 読者を記事に引き込む

画像キャプションの詳細については、こちらをご覧ください。 [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Alternative text ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>c240a0778601512da32a37c8ffd15fb3a2e1ecb3</sha1>
  </revision>
  <revision>
    <id>6624506</id>
    <parentid>6624504</parentid>
    <timestamp>2024-07-09T10:12:38Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "==== 代替テキスト ===="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30292" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集の提案は、Android で Wikipedia を編集する新しい方法です。
ぜひお試しください。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* ほとんどの場合、適切な長さは 2 ～ 12 ワードです。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版 Wikipedia では最初の単語を大文字にしますが、他のプロジェクトでは固有名詞でない限り最初の単語を大文字にしません。通常、最初の冠詞 (a、an、the) から始まりません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像が読者がウィキペディアの記事のトピックを理解するのに役立つ良い図であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''画像は不快です'''、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''よくわかりません'''は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* 画像のコンテキストを提供します
* 読者を記事に引き込む

画像キャプションの詳細については、こちらをご覧ください。 [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;span id="Alternative_text"&gt;&lt;/span&gt;
==== 代替テキスト ====
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Alternative text (or alt text) is text associated with an image that serves the same purpose and conveys the same essential information as the image.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>d73a7a37f28ed71d5bcd975e925782c062969d21</sha1>
  </revision>
  <revision>
    <id>6624508</id>
    <parentid>6624506</parentid>
    <timestamp>2024-07-09T10:13:03Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "代替テキスト (または代替テキスト) は、画像と同じ目的を果たし、同じ重要な情報を伝える画像に関連付けられたテキストです。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30262" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集の提案は、Android で Wikipedia を編集する新しい方法です。
ぜひお試しください。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* ほとんどの場合、適切な長さは 2 ～ 12 ワードです。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版 Wikipedia では最初の単語を大文字にしますが、他のプロジェクトでは固有名詞でない限り最初の単語を大文字にしません。通常、最初の冠詞 (a、an、the) から始まりません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像が読者がウィキペディアの記事のトピックを理解するのに役立つ良い図であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''画像は不快です'''、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''よくわかりません'''は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* 画像のコンテキストを提供します
* 読者を記事に引き込む

画像キャプションの詳細については、こちらをご覧ください。 [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;span id="Alternative_text"&gt;&lt;/span&gt;
==== 代替テキスト ====
代替テキスト (または代替テキスト) は、画像と同じ目的を果たし、同じ重要な情報を伝える画像に関連付けられたテキストです。
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If someone can't see the image because they turned off pictures on their web browser or they're using a tool to read the screen due to bad eyesight, the alternative text makes sure they don't miss out on any information.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>679799cf27e101b68398dbd43840ed528c01e642</sha1>
  </revision>
  <revision>
    <id>6624510</id>
    <parentid>6624508</parentid>
    <timestamp>2024-07-09T10:13:20Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Web ブラウザーで画像がオフになっている場合や、視力が悪く画面読み上げツールを使用しているために画像が見えない場合でも、代替テキストを使用すると情報を見逃すことがなくなります。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30245" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集の提案は、Android で Wikipedia を編集する新しい方法です。
ぜひお試しください。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* ほとんどの場合、適切な長さは 2 ～ 12 ワードです。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版 Wikipedia では最初の単語を大文字にしますが、他のプロジェクトでは固有名詞でない限り最初の単語を大文字にしません。通常、最初の冠詞 (a、an、the) から始まりません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像が読者がウィキペディアの記事のトピックを理解するのに役立つ良い図であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''画像は不快です'''、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''よくわかりません'''は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* 画像のコンテキストを提供します
* 読者を記事に引き込む

画像キャプションの詳細については、こちらをご覧ください。 [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;span id="Alternative_text"&gt;&lt;/span&gt;
==== 代替テキスト ====
代替テキスト (または代替テキスト) は、画像と同じ目的を果たし、同じ重要な情報を伝える画像に関連付けられたテキストです。
Web ブラウザーで画像がオフになっている場合や、視力が悪く画面読み上げツールを使用しているために画像が見えない場合でも、代替テキストを使用すると情報を見逃すことがなくなります。
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Good alternative text:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>d2fb84604a92515d2b26ae55866569547b696455</sha1>
  </revision>
  <revision>
    <id>6624512</id>
    <parentid>6624510</parentid>
    <timestamp>2024-07-09T10:13:40Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "良い代替テキスト:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30192" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集の提案は、Android で Wikipedia を編集する新しい方法です。
ぜひお試しください。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* ほとんどの場合、適切な長さは 2 ～ 12 ワードです。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版 Wikipedia では最初の単語を大文字にしますが、他のプロジェクトでは固有名詞でない限り最初の単語を大文字にしません。通常、最初の冠詞 (a、an、the) から始まりません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像が読者がウィキペディアの記事のトピックを理解するのに役立つ良い図であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''画像は不快です'''、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''よくわかりません'''は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* 画像のコンテキストを提供します
* 読者を記事に引き込む

画像キャプションの詳細については、こちらをご覧ください。 [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;span id="Alternative_text"&gt;&lt;/span&gt;
==== 代替テキスト ====
代替テキスト (または代替テキスト) は、画像と同じ目的を果たし、同じ重要な情報を伝える画像に関連付けられたテキストです。
Web ブラウザーで画像がオフになっている場合や、視力が悪く画面読み上げツールを使用しているために画像が見えない場合でも、代替テキストを使用すると情報を見逃すことがなくなります。
良い代替テキスト:

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is descriptive and clearly describes the main point of the image.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>e9a75c5735922cda69a34f8f64f395d68b6c5a89</sha1>
  </revision>
  <revision>
    <id>6624514</id>
    <parentid>6624512</parentid>
    <timestamp>2024-07-09T10:13:57Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "画像の要点をわかりやすく説明しています。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30131" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集の提案は、Android で Wikipedia を編集する新しい方法です。
ぜひお試しください。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* ほとんどの場合、適切な長さは 2 ～ 12 ワードです。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版 Wikipedia では最初の単語を大文字にしますが、他のプロジェクトでは固有名詞でない限り最初の単語を大文字にしません。通常、最初の冠詞 (a、an、the) から始まりません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像が読者がウィキペディアの記事のトピックを理解するのに役立つ良い図であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''画像は不快です'''、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''よくわかりません'''は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* 画像のコンテキストを提供します
* 読者を記事に引き込む

画像キャプションの詳細については、こちらをご覧ください。 [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;span id="Alternative_text"&gt;&lt;/span&gt;
==== 代替テキスト ====
代替テキスト (または代替テキスト) は、画像と同じ目的を果たし、同じ重要な情報を伝える画像に関連付けられたテキストです。
Web ブラウザーで画像がオフになっている場合や、視力が悪く画面読み上げツールを使用しているために画像が見えない場合でも、代替テキストを使用すると情報を見逃すことがなくなります。
良い代替テキスト:

* 画像の要点をわかりやすく説明しています。
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is short and limited to about 125 characters&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>bf168d6ec6aecf363d0fdc7ad7f411648da78fab</sha1>
  </revision>
  <revision>
    <id>6624516</id>
    <parentid>6624514</parentid>
    <timestamp>2024-07-09T10:14:14Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "短く、約 125 文字に制限されています"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="30081" xml:space="preserve">&lt;languages/&gt;
&lt;span id="Welcome_to_Suggested_edits"&gt;&lt;/span&gt;
== 編集提案 ==
編集の提案は、Android で Wikipedia を編集する新しい方法です。
ぜひお試しください。

{{ll|Help:Growth/Tools/Suggested edits|2=いくつかの推奨編集は、すべての言語の Wikipedia のモバイル版とデスクトップ版でも利用できます。}}

&lt;span id="What_is_Suggested_edits?"&gt;&lt;/span&gt;
=== 編集提案とは ===
編集提案にしたがって、小さいながらも重要な情報を追加することで、ウィキペディアの記事に貢献する事ができます。
この機能を使って、ウィキペディアは誰もが簡単に記事を編集して貢献できる、という認識を広めたいと考えています。

推奨される編集は、アプリで主言語またはデフォルト言語として設定されている言語に対して利用できます。
提案されたすべての編集を別の言語で表示したい場合は、{{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|デフォルトのアプリ言語を変更してください。 }}

&lt;span id="Get_started_with_Suggested_edits"&gt;&lt;/span&gt;
=== 編集提案を使ってみる ===

編集提案のページは2つのエリアで構成されています。
1.プロフィール統計・投稿履歴
2.編集提案の選択
[[File:Suggested edits home page on Android.png|alt=Suggested edits home page|center|frameless|600x600px|編集提案のページの構成。プロフィール統計・投稿履歴と編集提案の選択の2つのエリア]]
'''編集提案の選択'''は編集提案機能の核となる部分です。
ここではウィキペディアへの貢献方法が選択できます。
現在、記事の説明、画像キャプション、画像、画像タグなどを追加または翻訳するタスクを提供しています。
もっと詳しく知りたい場合、次の専用の説明に進んでください。

{| class="wikitable"
! Suggested Edit Task !! Availability
|-
| {{ll|Wikimedia Apps/Suggested edits#Article descriptions|2=記事の説明}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Article images|2=記事の画像}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image captions|2=画像のキャプション}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Image tags|2=画像タグ}} || 50 件を超える編集を行ったログイン ユーザー
|-
| {{ll|Wikimedia Apps/Suggested edits#Edit Patrol|2=編集パトロール }} || 次のいずれかの Wiki に対するロールバック権限を持つログイン ユーザー: id.wikipedia, es.wikipedia, fr.wikipedia, zh.wikipedia, ig.wikipedia, test.wikipedia
|}

さらなる投稿タイプも今後追加される予定です。

'''プロフィール統計'''は、編集アクティビティに関する情報を表示します。
これは最初にウィキメディアプロジェクトへの編集を行った時点から内容が反映され始めます。

* ''Contributions'' - 過去30日間の投稿数を表示します。
* ''Pageviews'' - 投稿した内容を他のユーザーが閲覧した回数の過去30日間の合計を表示します。
* ''Edit streak'' - 投稿の連続日数を表示します。 しばらく投稿がない場合は、最後の投稿日が表示されます。
* ''Edit quality'' - 投稿が差し戻された（つまり他の編集者によって取り消された）回数に基づきます。 差し戻された投稿が少ないほど、編集品質が高くなります。
パネルをタップすると'''投稿記録'''ページに移動します。
投稿記録ではすべての種類の投稿を一覧できます。
'''編集タイプ'''で絞り込み、過去30日間に投稿した記事の閲覧数を確認することができます。
'''投稿記録'''の一覧の項目をタップすると、編集の詳細（差分）ページが表示され、その編集に関するより詳細な情報を見ることができます。

&lt;span id="Article_descriptions"&gt;&lt;/span&gt;
== 記事の説明 ==
[[File:Example of an article-title description.png|alt=Article description on Android|center|frameless|600x600px|ウィキペディアアプリでの記事の説明]]

&lt;span id="What_are_article_descriptions?"&gt;&lt;/span&gt;
===記事の説明とは===

* 短い、多言語による項目の説明文です。（例：ウィキペディアの記事）
* 記事の説明は、その項目を解説する完全な文章ではなく、その項目を簡潔に表した情報です。
* ほとんどの場合、適切な長さは 2 ～ 12 ワードです。

&lt;span id="What_are_article_descriptions_used_for?"&gt;&lt;/span&gt;
===記事の説明は何に使われる？===
記事の説明はアプリで読者が探している記事を識別するのを助けるためにウィキペディアの記事タイトルの下に表示されます。
記事の説明はウィキデータで保管、保守されており、同一または似た名前を持つ項目を区別します。
説明はウィキペディアのサイトやアプリの外でも表示されます：例えば、Google検索など。

記事の説明は読者が一目で主題を理解できるよう記事を要約したものです。
ウィキデータ内の「説明」に記録され、ウィキペディアで使用されています。

&lt;span id="Tips_for_creating_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明を作成するためのヒント ===
記事の説明は、1行で、2から12単語程度の長さが理想です。
&lt;span class="mw-translate-fuzzy"&gt;英語版 Wikipedia では最初の単語を大文字にしますが、他のプロジェクトでは固有名詞でない限り最初の単語を大文字にしません。通常、最初の冠詞 (a、an、the) から始まりません。&lt;/span&gt; 例:

*「レオナルド・ダ・ヴィンチによる絵画」（「モナ・リザ」の説明）
*「ネパールとチベットの間に位置するヒマラヤ山脈にある、世界最高峰の山」（「エベレスト」の説明）

良い記事の説明を書くためのその他のヒント：

* 将来的に変更される可能性のある情報を避けてください (例: 現首相、など)
* 個人的主張、偏向あるいは宣伝が混じる言いまわしを避けてください （例:最も有名な…）
* 論争が起こるような主張を避けてください

より詳しくは[[d:Special:MyLanguage/Help:Description|ウィキデータのヘルプページ]]をご覧ください。

&lt;span id="Machine_Assisted_Article_Descriptions_Experiment"&gt;&lt;/span&gt;
=== 機械による記事の説明の提案のテスト ===
一部のユーザーには、「推奨される説明を参照」というボタンが表示され、機械で生成された記事の説明が 1 ～ 2 件表示される場合があります。
私たちは、Wikipedia の記事を記事の説明に要約するモデルをテストしています。
Android アプリ ユーザーが公開する記事の説明の品質向上に役立つことを願っています。
提案が選択されると、変更または削除できます。
この実験は 2023 年 4 月 3 日に一部の言語で Wiki 上で開始され、約 30 日間実施されます。
実験の詳細については、専用の [[Special:MyLanguage/Wikimedia Apps/Team/Android/Machine Assisted Article Descriptions|プロジェクト ページ]] をご覧ください。
記事の説明を生成するために使用するモデルに関する情報は、[[m:Special:MyLanguage/Machine learning models/Proposed/Article descriptions model card|ここ]] でご覧いただけます。

&lt;span id="More_on_article_descriptions"&gt;&lt;/span&gt;
=== 記事の説明についてさらに知る ===

記事の説明はウィキデータに格納され管理されます。ウィキデータはウィキメディア財団によるオープンな共同編集データベースです。ウィキペディアをはじめとする様々なウィキメディアプロジェクトで利用されています。

*[[d:Special:MyLanguage/Wikidata:Introduction|ウィキデータについて]]
*[[d:Help:Description|ウィキデータの「記事の説明」についてのヘルプページ]]
*[[d:Help:Description#Guidelines_for_descriptions_in_English|英語で記事の説明を記述する場合のガイドライン]]
*[[w:Wikipedia:Short description#Content|英語版ウィキペディアで短い説明を書くためのガイドライン]]

&lt;span id="Image_captions"&gt;&lt;/span&gt;
==画像キャプション==

&lt;span id="What_are_image_captions?"&gt;&lt;/span&gt;
=== 画像キャプションとは===

* 短い、多言語による画像ファイルの説明
* 長さは250文字以内に制限され、マークアップを含めることはできません

&lt;span id="What_are_image_captions_used_for?"&gt;&lt;/span&gt;
===画像のキャプションは何に使われる？===
画像のキャプションは画像を説明して読者が画像の意味や文脈を理解するのを助けます。
例えば、インターネット接続が遅かったりスクリーンリーダーを使っているために、画像を見ることができない人のために代替情報を提供するためにも使用されます。

&lt;span id="Tips_for_creating_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプション作成のためのヒント ===
画像のキャプションを画像が表示しているものの短い記述であるべきです。一般的には4から12単語の長さです。
その画像を作成した芸術家や制作者に関する情報も含めることができます。

キャプションを中立的に保つことを忘れないでください。「美しい」、「良い」あるいは「醜い」といったような価値判断をすることは避けてください。

画像の説明と画像のキャプションの違いは、説明はファイルに関する多くの情報を持つことができることです。画像がスキャンされたものならば、説明は元の写真家や芸術作品に関する詳細を持つことができます。説明はリンクを持つことができます。画像のキャプションはこれをすべて無視し、ファイルに関する情報ではなく、何が表示されているのかだけを記述すべきです。

いい画像のキャプションの例:

* 画像の内容を簡潔に記述することを目的としてください
*視覚障がいなどを持つ人がその画像を想像できるように記述してください
*検索に使われそうなキーワードを含めてください（猫の写真ならキャプションのどこかに「猫」という単語を含めてください）

多くの場合、キャプションは説明と（あるいはファイル名とさえも！）類似または同一になります。
例えば、File:Fire station Hallstatt - October 2017 - 02.jpgは、英語のキャプション"Hallstatt fire station in October 2017"を持っています。

&lt;span id="More_on_image_captions"&gt;&lt;/span&gt;
=== 画像のキャプションの詳細 ===

画像のキャプションは、[[commons:Main_Page|ウィキメディア・コモンズ]]で保管および保守されます。ウィキメディア・コモンズは、自由に利用できる画像、音声、その他のメディアおよびJSONファイルのオンラインリポジトリを提供してウィキペディアおよびその他のプロジェクトをサポートするウィキメディア財団のプロジェクトです。

&lt;span id="Image_tags"&gt;&lt;/span&gt;
== 画像タグ ==
:''関連項目: [[c:Special:MyLanguage/Commons:Depicts|Commons:題材]]''

&lt;span id="What_are_image_tags?"&gt;&lt;/span&gt;
===画像タグとは？===

「画像タグ」とはコモンズで[[c:Commons:Depicts|題材]]と呼ばれているものと同じです。

&lt;span id="What_are_image_tags_used_for?"&gt;&lt;/span&gt;
===画像タグは何に使われる？===

画像タグを追加することによって、ウィキペディアが記事の画像のために使用するフリーライセンス画像リポジトリ、コモンズでより簡単に画像を検索できるようにします。

&lt;span id="Tips_for_adding_image_tags"&gt;&lt;/span&gt;
===画像タグを追加するためのヒント===
'''タグは控えめに追加してください。''' 
明瞭かつ意図的に画像の題材とされている項目が複数あるならば、無理のない範囲内ですべてを個別のタグとして追加すべきです。 
例えば、[https://commons.wikimedia.org/wiki/File:Bonnieclyde_f.jpg ボニーとクライドの写真]は「ボニーとクライド」、「ボニー・パーカー」および「クライド・バロウ」でタグ付けされるべきです。 
画像で非常に重要なもの（複数可）を識別してください。

'''できるだけ具体的にしてください。'''
「+ タグを追加」をタップして最も関連性のあるタグを検索してください。検索結果にいくつも表示されるかもしれませんが、半端に関連性のあるタグを多数追加したいという衝動は抑えてください。 
以下に示す例は、ウィリアムズバーグ橋の写真ですが、タグが追加されていません。
「+ タグを追加」をタップし、「ウィリアムズバーグ橋」を検索することによって自分で追加します。

&lt;gallery&gt;
File:Android Depicts editor - search.png|alt=ウィキデータを検索してタグを追加する|さらに関連性のあるタグを検索する。
File:Android depicts editor - search.png|alt=検索ウィンドウを使用すると、ユーザーは特定の画像に最も関連性の高い Wikidata エンティティ ID を見つけることができます。|検索すると提案されるタグが更新される。
&lt;/gallery&gt;

&lt;span id="Article_images"&gt;&lt;/span&gt;
== 記事の画像 ==

&lt;span id="What_is_the_article_images_task?"&gt;&lt;/span&gt;
=== 記事の画像タスクとは？ ===
ウィキペディアの記事は世界中の何千人ものボランティアによって書かれて編集されています。
残念ながら、多くの記事に画像がありません。
記事の画像は、記事と画像を関連付けられた情報と共にAndroidログイン利用者に表示し、画像が表示されている記事の内容を図解するのに適しているか利用者が決定できる[[Wikimedia Apps/Suggested edits|提案編集]]タスクの一種です。 記事画像タスクの詳細については、[[Wikimedia Apps/Team/Android/Image Recommendations|image Recommendation]] プロジェクト ページを参照してください。

画像はアルゴリズムを使って提案されます。
アルゴリズムは他の情報源から画像を引き寄せて、画像がない記事との合致を提案します。

[[File:Suggested edits – Article images task (Add images).png|center|frameless|600x600px|「画像アルゴリズムのトレーニング」タスクには、「提案された編集」メイン画面からアクセスできます。]]

&lt;span id="Tips_for_adding_images_to_articles"&gt;&lt;/span&gt;
=== 記事に画像を追加するためのヒント ===
[[File:Add article images Suggested edits task.png|center|thumb|600x600px]]
画像が記事に適しているか最善の決定をするために以下のことを確認してください：

* 画像（より詳細に見るために拡大）
* 画像ファイル名
* 画像の解説
* 画像の提案理由
* 記事の内容

&lt;span id="Dialog_options"&gt;&lt;/span&gt;
==== ダイアログの選択肢 ====

タスクでは記事に画像を追加したいかという質問に対して、はい、いいえ、わからないを選択できます。

* '''はい'''は、その画像が読者がウィキペディアの記事のトピックを理解するのに役立つ良い図であることを示します
* '''いいえ'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けにならないことを示します。 画像が記事に適さない理由には以下のものがあります：
** '''関連性がない'''は、画像に描写されているトピックが表示されている記事と関係がないことを示します
** '''判断するのに十分な情報がありません'''は、読者が記事をより良く理解する助けになる画像であると自信を持って示すために十分な詳細を、画像と共有されているメタデータが提供していないことを示します
** '''画像は不快です'''、画像が不適切であることを示します
** '''画像の品質が低い'''は、画像が十分よく見えず、記事の図解に適していて読者がトピックを理解する助けになると自信を持って言うことができないことを示します
** '''この主題について知りません'''は、その画像がそのウィキペディアの記事のトピックを読者が理解する助けになるか判断するために必要な専門知識を自分が持っていないことを示します
** '''その他'''は、画像が記事に適していない他の理由があることを示します
* '''よくわかりません'''は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。

&lt;span id="Tips_for_adding_article_captions_and_alternative_text"&gt;&lt;/span&gt;
=== 記事のキャプションと代替テキストを追加するためのヒント ===
[[File:Suggested edits on Android image caption and alt text flow.png|center|thumb|600x600px]]
&lt;span id="Image_captions"&gt;&lt;/span&gt;
==== 画像キャプション ====
キャプションとは、画像の下に表示されるテキストです。ほとんどのキャプションは、テキストとの関係など、画像内であまり明らかではないものに注意を向けます。 優れた画像キャプションにはいくつかの基準があります。良いキャプション:

* 明白な部分を詳細に説明することなく、写真の主題を明確に識別します。
* 簡潔である
* 画像と記事の関連性を確立する
* 画像のコンテキストを提供します
* 読者を記事に引き込む

画像キャプションの詳細については、こちらをご覧ください。 [[:en:Wikipedia:Manual_of_Style/Captions|Wikipedia:Manual of Style/Captions]]

&lt;span id="Alternative_text"&gt;&lt;/span&gt;
==== 代替テキスト ====
代替テキスト (または代替テキスト) は、画像と同じ目的を果たし、同じ重要な情報を伝える画像に関連付けられたテキストです。
Web ブラウザーで画像がオフになっている場合や、視力が悪く画面読み上げツールを使用しているために画像が見えない場合でも、代替テキストを使用すると情報を見逃すことがなくなります。
良い代替テキスト:

* 画像の要点をわかりやすく説明しています。
* 短く、約 125 文字に制限されています
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is context-aware and considers the article or page’s content when described&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is functional, e.g. if an image is also a button, mention its function&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Is relevant and describes crucial parts of the image that is pertinent to the content&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on alternative text here:&lt;/span&gt;
[[w:Wikipedia:Manual_of_Style/Accessibility/Alternative text for images|w:Manual of Style/Accessibility/Alternative text for images]]

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
If you’d like to learn more about '''images on MediaWiki''' and its syntax, check out this resource: [[Special:MyLanguage/Help:Images|Help:Images]]
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
== Edit Patrol ==
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== What is the edit patrol task? ===
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;The Edit Patrol {{ll|Wikimedia Apps/Suggested edits|Suggested Edits}} task allows moderators to review and patrol recent changes to Wikipedia from their mobile devices.&lt;/span&gt; 
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Logged-in users with rollback rights can review a feed of recent edits from their mobile device and easily take action to:&lt;/span&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Revert, or undo edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Rollback edits&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Filter the edits displayed&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Thank users&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Check the user's other contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Leave a message to the user on their talk page&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Save a library of messages for later use&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Users can patrol in the language that is set as their primary or default language for the app.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to patrol in a different language, {{ll|Wikimedia Apps/Android FAQ#Set/change Wikipedia language|change your default app language.}}&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;For more information about the Edit Patrol task, check out the {{ll|Wikimedia Apps/Team/Android/Anti Vandalism|Anti Vandalism}} project page.&lt;/span&gt;

&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;{{ll|Patrolling}} is the term used to describe when multiple users are reviewing alterations to the wiki in order to verify that they comply with the wiki rules.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;This is performed in order to quickly undo undesirable edits, link spam, copyright violations and vandalism.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
=== Tips for patrolling using Edit Patrol ===
&lt;/div&gt;
[[File:List of edits in Edit Patrol.png|center|thumb|600x600px]]
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Skipping is ok''' - While reviewing edits, do not feel pressured to take action on every edit. If you are unsure, feel free to skip one edit and move onto the next one.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Be bold''' - If you see an edit that is obvious vandalism, undo the edit with an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;'''Prioritize communication''' - Leave a message or warning on the user’s talk page giving more context or guidance on why their edit was reverted. Communicate with empathy, and remember that there is another person behind the screen.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Follow [[m:Help:Reverting|tips for when to revert]]&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Actions ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
In the toolbar, there are 4 main options: Thank, Watch, Warn, Undo.
&lt;/div&gt;

[[File:Diff view in Edit Patrol suggested edit.png|thumb|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Diff view in Edit Patrol suggested edit&lt;/span&gt;]]

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose '''Thank''' to publicly send thanks to a user for their contributions&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use '''Watch''' to add that user and their talk page to your watchlist permanently, or for a short period of time&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Talk''' to leave a message on a user’s talk page.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select an existing message, or create a new message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose or edit your message, preview, and publish.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If you would like to save your message for later use, choose “Save as a new message” with a title for easy reference.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Select '''Undo''' to undo (revert) an edit.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;You will be prompted to leave an edit summary.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To Rollback edits: select '''Undo''' in the toolbar. Select rollback. Confirm your choice.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''Filter''' your feed: Use the filter option in the top right to filter by user registration and experience, latest revisitions, automated contributions, predictions, and significance.&lt;/span&gt;
** &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Note: it is not possible to filter out edits that have already been marked as “patrolled” on Web.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;(Patrolled Edits) Seeing “Patrolled” status is only available to users with sysop permission on Web, and not currently supported in the app.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To '''learn more about the user:''' From either the list view, or diff view, click on the user name to bring up links to their user page, talk page, information, and contributions.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Understanding the Quality &amp; Intent scores ([[ORES]]) ====
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
We display ORES predictions for Quality and Intent within the diff view.
&lt;/div&gt;

* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Quality – predicts if an edit causes damage. The higher the score, the more likely the edit is of high quality.&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Intent – predicts whether an edit was saved in good-faith. A higher score means that the model is more confident the edit was saved in good faith.&lt;/span&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
This will eventually be replaced with a [[m:Machine learning models/Proposed/Language-agnostic revert risk|Revert Risk]] score.
&lt;/div&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
==== Tips for using Saved Messages ====
&lt;/div&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Saved Messages is your personal library of reusable messages for posting on a user’s talk pages as you patrol.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;They can be accessed from the overflow (3-dot) menu, and edited or rearranged at any time.&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;There are two sections, "Your messages", and "Example messages".&lt;/span&gt;
&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Example messages is a set of 10 messages that can be used as a starting point for communicating with other users. If you edit an example message, it will be saved to "Your messages".&lt;/span&gt;

* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Edit, delete, or reorder saved messages&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Within Saved Messages, tap on any message to open and edit it. Swipe left or right to delete a message.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Choose “Edit” in the top right corner to delete multiple or reorder your messages.&lt;/span&gt;
* '''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Use a template within a message&lt;/span&gt;''' - &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;To use a preexisting warning message template, create a new message from within your Saved Messages.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Tap the template puzzle piece icon in the toolbar.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for the template by name (list of available [[d:Q3223292|User talk namespace templates]]), select and fill out form if needed.&lt;/span&gt; &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;These messages can also be saved into your library messages.&lt;/span&gt;

&lt;gallery&gt;
File:Composing message and inserting template.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Compose message, and open Template icon&lt;/span&gt;
File:Searching for templates.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Search for templates by name, recently used are displayed&lt;/span&gt;
File:Filling out template data.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Fill out template form and insert&lt;/span&gt;
File:Message with template inserted.png|&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Message with template inserted. Then follow same steps to, save, preview, publish&lt;/span&gt;
&lt;/gallery&gt;

&lt;div lang="en" dir="ltr" class="mw-content-ltr"&gt;
===== Message placeholders =====
&lt;/div&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{username}}}&lt;/nowiki&gt; it will be changed in to the recipient's username&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{diffLink}}}&lt;/nowiki&gt; it will display the relevant diff URL. You can use this to create a readable link: &lt;nowiki&gt;[{{{diffLink}}} recent contributions]&lt;/nowiki&gt;&lt;/span&gt;
* &lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;If users type &lt;nowiki&gt;{{{senderUserName}}}&lt;/nowiki&gt; it will be display the sender’s user name. To create a link to your talk page, use the format &lt;nowiki&gt;[[User talk: {{{senderUserName}}}|my talk page]]&lt;/nowiki&gt;&lt;/span&gt;

'''&lt;span lang="en" dir="ltr" class="mw-content-ltr"&gt;Read more on patrolling&lt;/span&gt;'''

* {{ll|Help:Patrolling}}
* {{ll|Help:Patrolled_edits}}
* [[w:Wikipedia:Recent changes patrol|Wikipedia:Recent changes patrol]]
* [[m:Special:MyLanguage/Help:Reverting|Help: Reverting]]</text>
    <sha1>981905ef946b8fe2662adb4280a95fa02cbc10d6</sha1>
  </revision>
</page>
<page arvcontinue="20240709100810|6624494">
  <title>Translations:Wikimedia Apps/Android Suggested edits/155/ja</title>
  <ns>1198</ns>
  <id>1919601</id>
  <revision>
    <id>6624496</id>
    <parentid>6383563</parentid>
    <timestamp>2024-07-09T10:09:15Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="84" xml:space="preserve">「「画像は不快です」」、画像が不適切であることを示します</text>
    <sha1>91992be8af0b7c2cd8862af60f830ff63658ed53</sha1>
  </revision>
  <revision>
    <id>6624498</id>
    <parentid>6624496</parentid>
    <timestamp>2024-07-09T10:09:41Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="78" xml:space="preserve">'''画像は不快です'''、画像が不適切であることを示します</text>
    <sha1>8a705f654aa23de3153f8d573298bf7cf18d38c3</sha1>
  </revision>
</page>
<page arvcontinue="20240709100810|6624494">
  <title>Translations:Wikimedia Apps/Android Suggested edits/160/ja</title>
  <ns>1198</ns>
  <id>1919597</id>
  <revision>
    <id>6624500</id>
    <parentid>6624456</parentid>
    <timestamp>2024-07-09T10:10:03Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="180" xml:space="preserve">'''よくわかりません'''は、その画像が読者がウィキペディアの記事の主題を理解するのに役立つかどうかわからないことを示します。</text>
    <sha1>6db0173106554d551ea1daf2cd465eb6c67ac437</sha1>
  </revision>
</page>
<page arvcontinue="20240709100810|6624494">
  <title>User talk:2001:14BA:9CD6:4200:D43C:5ABA:9AD8:104</title>
  <ns>3</ns>
  <id>1992400</id>
  <revision>
    <id>6624502</id>
    <timestamp>2024-07-09T10:10:37Z</timestamp>
    <contributor>
      <username>38.158.204.89</username>
      <id>0</id>
    </contributor>
    <comment>/* 2001:14BA:9CD6:4200:D43C:5ABA:9AD8:104 */ new section</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="163" xml:space="preserve">== 2001:14BA:9CD6:4200:D43C:5ABA:9AD8:104 ==

2001:14BA:9CD6:4200:D43C:5ABA:9AD8:104 [[Special:Contributions/38.158.204.89|38.158.204.89]] 10:10, 9 July 2024 (UTC)</text>
    <sha1>6c7585ac27e90f45a04967b08ecb81e52faf14c4</sha1>
  </revision>
</page>
<page arvcontinue="20240709100810|6624494">
  <title>Translations:Wikimedia Apps/Android Suggested edits/150/ja</title>
  <ns>1198</ns>
  <id>1919595</id>
  <revision>
    <id>6624503</id>
    <parentid>6383551</parentid>
    <timestamp>2024-07-09T10:11:32Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="156" xml:space="preserve">'''はい'''は、その画像が読者がウィキペディアの記事のトピックを理解するのに役立つ良い図であることを示します</text>
    <sha1>2e36f79b67f1d6e34cf37687f49677c9e0b67d37</sha1>
  </revision>
</page>
<page arvcontinue="20240709100810|6624494">
  <title>Translations:Wikimedia Apps/Android Suggested edits/254/ja</title>
  <ns>1198</ns>
  <id>1992401</id>
  <revision>
    <id>6624505</id>
    <timestamp>2024-07-09T10:12:37Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "==== 代替テキスト ===="</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="28" xml:space="preserve">==== 代替テキスト ====</text>
    <sha1>557e3dde53c80a151923db9daadd61f5043a104a</sha1>
  </revision>
</page>
<page arvcontinue="20240709100810|6624494">
  <title>Translations:Wikimedia Apps/Android Suggested edits/255/ja</title>
  <ns>1198</ns>
  <id>1992402</id>
  <revision>
    <id>6624507</id>
    <timestamp>2024-07-09T10:13:03Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "代替テキスト (または代替テキスト) は、画像と同じ目的を果たし、同じ重要な情報を伝える画像に関連付けられたテキストです。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="175" xml:space="preserve">代替テキスト (または代替テキスト) は、画像と同じ目的を果たし、同じ重要な情報を伝える画像に関連付けられたテキストです。</text>
    <sha1>fc44f222d560ec7d8b6e16866ddc1cac13c4bc31</sha1>
  </revision>
</page>
<page arvcontinue="20240709100810|6624494">
  <title>Translations:Wikimedia Apps/Android Suggested edits/256/ja</title>
  <ns>1198</ns>
  <id>1992403</id>
  <revision>
    <id>6624509</id>
    <timestamp>2024-07-09T10:13:19Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "Web ブラウザーで画像がオフになっている場合や、視力が悪く画面読み上げツールを使用しているために画像が見えない場合でも、代替テキストを使用すると情報を見逃すことがなくなります。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="259" xml:space="preserve">Web ブラウザーで画像がオフになっている場合や、視力が悪く画面読み上げツールを使用しているために画像が見えない場合でも、代替テキストを使用すると情報を見逃すことがなくなります。</text>
    <sha1>becb953f2e129fa5f5845d6de168fa78d7ce7897</sha1>
  </revision>
</page>
<page arvcontinue="20240709100810|6624494">
  <title>Translations:Wikimedia Apps/Android Suggested edits/257/ja</title>
  <ns>1198</ns>
  <id>1992404</id>
  <revision>
    <id>6624511</id>
    <timestamp>2024-07-09T10:13:39Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "良い代替テキスト:"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="25" xml:space="preserve">良い代替テキスト:</text>
    <sha1>07023a43252a79388a0532b0af4404bd12e9ac23</sha1>
  </revision>
</page>
<page arvcontinue="20240709100810|6624494">
  <title>Translations:Wikimedia Apps/Android Suggested edits/258/ja</title>
  <ns>1198</ns>
  <id>1992405</id>
  <revision>
    <id>6624513</id>
    <timestamp>2024-07-09T10:13:56Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "画像の要点をわかりやすく説明しています。"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="60" xml:space="preserve">画像の要点をわかりやすく説明しています。</text>
    <sha1>bd9d28418dc2180bff44379c6a0a85e867eeef1a</sha1>
  </revision>
</page>
<page arvcontinue="20240709100810|6624494">
  <title>Translations:Wikimedia Apps/Android Suggested edits/259/ja</title>
  <ns>1198</ns>
  <id>1992406</id>
  <revision>
    <id>6624515</id>
    <timestamp>2024-07-09T10:14:13Z</timestamp>
    <contributor>
      <username>2400:2413:2440:D200:298B:D6FA:A53A:90C9</username>
      <id>0</id>
    </contributor>
    <comment>Created page with "短く、約 125 文字に制限されています"</comment>
    <model>wikitext</model>
    <format>text/x-wiki</format>
    <text bytes="50" xml:space="preserve">短く、約 125 文字に制限されています</text>
    <sha1>f42047f960e8e72f41624223fdf09137688610a1</sha1>
  </revision>
</page>
</mediawiki>
